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 cl...@apache.org on 2021/05/07 23:12:34 UTC

[db-jdo] branch origin/2.0-rc1 created (now 93450cd)

This is an automated email from the ASF dual-hosted git repository.

clr pushed a change to branch origin/2.0-rc1
in repository https://gitbox.apache.org/repos/asf/db-jdo.git.


      at 93450cd  Updated COVERAGE

This branch includes the following new commits:

     new ad4a80d  Create 2.0-rc1 branch
     new 2a79ade  Clean up 2.0-rc1
     new f299993  Clean up 2.0-rc1
     new a188873  Added TCK coverage information
     new 7ad160f  Clean up 2.0-rc1
     new 93450cd  Updated COVERAGE

The 6 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


[db-jdo] 01/06: Create 2.0-rc1 branch

Posted by cl...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

clr pushed a commit to branch origin/2.0-rc1
in repository https://gitbox.apache.org/repos/asf/db-jdo.git

commit ad4a80d43165dc62ad3eb46a002bfec70ef97b0e
Author: Craig L Russell <cl...@apache.org>
AuthorDate: Wed Feb 22 23:54:36 2006 +0000

    Create 2.0-rc1 branch

[db-jdo] 03/06: Clean up 2.0-rc1

Posted by cl...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

clr pushed a commit to branch origin/2.0-rc1
in repository https://gitbox.apache.org/repos/asf/db-jdo.git

commit f299993bf6b731b1960939f8d722df2c53b0b202
Author: Craig L Russell <cl...@apache.org>
AuthorDate: Thu Feb 23 00:43:31 2006 +0000

    Clean up 2.0-rc1
---
 api20/project.xml                                |  2 +-
 btree/maven.xml                                  | 70 ------------------
 btree/project.properties                         | 29 --------
 btree/project.xml                                | 43 -----------
 btree/src/java/org/netbeans/mdr/util/Logger.java | 90 ------------------------
 core20/project.xml                               |  2 +-
 enhancer20/project.xml                           |  6 +-
 query20/project.xml                              |  8 +--
 runtime20/project.xml                            |  6 +-
 tck20/project.xml                                | 16 ++---
 10 files changed, 20 insertions(+), 252 deletions(-)

diff --git a/api20/project.xml b/api20/project.xml
index 5cabf9a..8644fa0 100644
--- a/api20/project.xml
+++ b/api20/project.xml
@@ -24,7 +24,7 @@
     <name>JDO2 API</name>
     <groupId>javax.jdo</groupId>
     <artifactId>jdo2-api</artifactId>
-    <currentVersion>SNAPSHOT</currentVersion>
+    <currentVersion>2.0-rc1</currentVersion>
     <package>javax.jdo</package>
     <shortDescription>Java Data Object 2.0 (JDO) API</shortDescription>
     <description>The Java Data Objects 2.0 (JDO) API is a standard interface-based 
diff --git a/btree/maven.xml b/btree/maven.xml
deleted file mode 100644
index 9d4775e..0000000
--- a/btree/maven.xml
+++ /dev/null
@@ -1,70 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-
-    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.
-
--->
-
-<project default="default"
-    xmlns:j="jelly:core"
-    xmlns:ant="jelly:ant"
-    xmlns:maven="jelly:maven"
-    >
-
-    <!-- ==================== -->
-    <!-- Default Global Goals -->
-    <!-- ==================== -->
-
-    <goal name="default">
-        <attainGoal name="jar:install"/>
-    </goal>
-
-    <goal name="build">
-        <attainGoal name="default"/>
-    </goal>
-
-    <goal name="rebuild">
-        <attainGoal name="clean"/>
-        <attainGoal name="build"/>
-    </goal>
-
-    <goal name="clobber">
-        <attainGoal name="clean"/>
-        <delete dir="mdr" includeEmptyDirs="true"/>
-    </goal>
-
-    <!-- Checkout btree sources from nebeans repository -->
-    <preGoal name="java:prepare-filesystem">
-        <echo>Using cvsroot ${netbeans.cvsroot}</echo>
-        <cvs cvsRoot="${netbeans.cvsroot}"
-             command="checkout -l ${netbeans.cvs.tag}"
-             package="mdr/src/org/netbeans/mdr/persistence"/>
-        <cvs cvsRoot="${netbeans.cvsroot}"
-             command="checkout ${netbeans.cvs.tag}"
-	     package="mdr/src/org/netbeans/mdr/persistence/btreeimpl"/>
-        <cvs cvsRoot="${netbeans.cvsroot}"
-             command="checkout ${netbeans.cvs.tag}"
-	     package="mdr/src/org/netbeans/mdr/util/MapEntryImpl.java"/>
-    </preGoal>
-
-    <!-- Need multiple source diretories: --> 
-    <!--   mdr - the netbeans sources     -->
-    <!--   src - local source files       -->
-    <preGoal name="java:compile">
-       <ant:path id="mdr.src" location="${basedir}/mdr/src"/>
-       <maven:addPath id="maven.compile.src.set" refid="mdr.src"/>
-    </preGoal>
-
-</project>
diff --git a/btree/project.properties b/btree/project.properties
deleted file mode 100644
index c95e87f..0000000
--- a/btree/project.properties
+++ /dev/null
@@ -1,29 +0,0 @@
-#
-#   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 cvsroot of the netbeans repository. 
-# The official netbeans cvs host is cvs.netbeans.org. This might not work if you
-# are behind a firewall that blocks the cvs port. Please consult 
-# http://www.netbeans.org/community/sources for more info. 
-# If you are inside SWAN you can use a proxy cvsnetbeansorg.sfbay.sun.com.
-
-netbeans.cvsroot=:pserver:anoncvs@cvs.netbeans.org:/cvs
-# SWAN proxy
-#netbeans.cvsroot=:pserver:anoncvs@cvsnetbeansorg.sfbay.sun.com:/cvs
-
-# We need btree sources that compile with -target 1.3, 
-# so use a specific btree version
-netbeans.cvs.tag=-r release36-BLD200409100900
diff --git a/btree/project.xml b/btree/project.xml
deleted file mode 100644
index 02dc0d5..0000000
--- a/btree/project.xml
+++ /dev/null
@@ -1,43 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-
-    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.
--->
-
-<project>
-    <pomVersion>3</pomVersion>
-    <extend>../project.xml</extend>
-    <!-- ============== -->
-    <!-- Identification -->
-    <!-- ============== -->
-    <name>Binary Tree for FOStore JDO</name>
-    <groupId>org.apache.jdo</groupId>
-    <artifactId>jdo-btree</artifactId>
-    <currentVersion>1.1</currentVersion>
-    <package>org.netbeans.mdr</package>
-    <shortDescription>Binary Tree for FOStore JDO</shortDescription>
-    <description>This project takes the Netbeans mdr btree implementation and provides it as a library.</description>
-    <repository />
-    <!-- ============ -->
-    <!-- Dependencies -->
-    <!-- ============ -->
-    <!-- =================== -->
-    <!-- Build Specification -->
-    <!-- =================== -->
-    <build>
-        <sourceDirectory>src/java</sourceDirectory>
-    </build>
-</project>
-
diff --git a/btree/src/java/org/netbeans/mdr/util/Logger.java b/btree/src/java/org/netbeans/mdr/util/Logger.java
deleted file mode 100644
index c28c512..0000000
--- a/btree/src/java/org/netbeans/mdr/util/Logger.java
+++ /dev/null
@@ -1,90 +0,0 @@
-/*
- * 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.
- */
-package org.netbeans.mdr.util;
-
-import java.io.PrintStream;
-
-/** 
- * Logger utility.
- * 
- * This class replaces the implementation of the Logger class in package 
- * org.netbeans.mdr.util from the NetBeans open source mdr project. 
- * The NetBeans implemenation uses a non-mdr class
- * (org.openide.ErrorManager). This imposes a dependency on other NetBeans 
- * modules which makes it harder to use the btree implemenatation as a
- * library. 
- * 
- * @author Michael Bouschen
- */
-public class Logger {
-
-    /** */
-    public static final int INFORMATIONAL = 0x00000001;
-    public static final int WARNING = 0x00000010;
-    public static final int USER = 0x00000100;
-    public static final int EXCEPTION = 0x00001000;
-    public static final int ERROR = 0x00010000;
-
-    /** */
-    public static final PrintStream out = System.out;
-    
-    /** */
-    private static final Logger logger = new Logger();
-    
-
-    /** The name of the boolean system property to enable btree logging. */
-    public static final String VERBOSE_PROPERTY = 
-        "org.netbeans.mdr.persistence.verbose";
-
-    /** */
-    private boolean verbose;
-
-    /** */
-    public static Logger getDefault() {
-        return logger;
-    }
-
-    /** */
-    protected Logger() {
-        verbose = Boolean.getBoolean(VERBOSE_PROPERTY);
-    }
-
-    /** */
-    public void notify(int level, Exception e) {
-        if (verbose && (e != null))
-            log(e.toString());
-    }
-    
-    /** */
-    public void log(String msg) {
-        if (verbose) out.println(msg);
-    }
-
-    /** */
-    public void log(int severity, String msg) {
-        if (verbose) out.println(msg);
-    }
-
-    /** */
-    public final Throwable annotate(Throwable t, String localizedMessage) {
-        return t;
-    }
-
-    /** */
-    public final Throwable annotate(Throwable target, Throwable t) {
-        return target;
-    }
-}
diff --git a/core20/project.xml b/core20/project.xml
index b3697ab..330cee8 100644
--- a/core20/project.xml
+++ b/core20/project.xml
@@ -25,7 +25,7 @@
     <name>JDO2 Implementation (Core)</name>
     <groupId>org.apache.jdo</groupId>
     <artifactId>jdo2-core</artifactId>
-    <currentVersion>SNAPSHOT</currentVersion>
+    <currentVersion>2.0-rc1</currentVersion>
     <package>org.apache.jdo</package>
     <shortDescription>Java Data Object 2.0 (JDO) Core</shortDescription>
     <description>The Java Data Objects 2.0 (JDO) API is a standard interface-based 
diff --git a/enhancer20/project.xml b/enhancer20/project.xml
index d0933c4..d232183 100644
--- a/enhancer20/project.xml
+++ b/enhancer20/project.xml
@@ -25,7 +25,7 @@
     <name>JDO2 Implementation (Enhancer)</name>
     <groupId>org.apache.jdo</groupId>
     <artifactId>jdo2-enhancer</artifactId>
-    <currentVersion>SNAPSHOT</currentVersion>
+    <currentVersion>2.0-rc1</currentVersion>
     <package>org.apache.jdo</package>
     <shortDescription>Java Data Object 2.0 (JDO) Enhancer</shortDescription>
     <description>The Java Data Objects 2.0 (JDO) API is a standard interface-based 
@@ -39,12 +39,12 @@ Request JSR 243 under the auspices of the Java Community Process.</description>
         <dependency>
             <groupId>javax.jdo</groupId>
             <artifactId>jdo2-api</artifactId>
-            <version>SNAPSHOT</version>
+            <version>2.0-rc1</version>
         </dependency>
         <dependency>
             <groupId>org.apache.jdo</groupId>
             <artifactId>jdo2-core</artifactId>
-            <version>SNAPSHOT</version>
+            <version>2.0-rc1</version>
         </dependency>
         <dependency>
             <id>commons-logging</id>
diff --git a/query20/project.xml b/query20/project.xml
index 4fed3d1..40f2299 100644
--- a/query20/project.xml
+++ b/query20/project.xml
@@ -25,7 +25,7 @@
     <name>JDO2 Implementation (Query)</name>
     <groupId>org.apache.jdo</groupId>
     <artifactId>jdo2-query</artifactId>
-    <currentVersion>SNAPSHOT</currentVersion>
+    <currentVersion>2.0-rc1</currentVersion>
     <package>org.apache.jdo</package>
     <shortDescription>Java Data Object 2.0 (JDO) Core</shortDescription>
     <description>The Java Data Objects 2.0 (JDO) API is a standard interface-based 
@@ -39,17 +39,17 @@ Request JSR 243 under the auspices of the Java Community Process.</description>
         <dependency>
             <groupId>javax.jdo</groupId>
             <artifactId>jdo2-api</artifactId>
-            <version>SNAPSHOT</version>
+            <version>2.0-rc1</version>
         </dependency>
         <dependency>
             <groupId>org.apache.jdo</groupId>
             <artifactId>jdo2-core</artifactId>
-            <version>SNAPSHOT</version>
+            <version>2.0-rc1</version>
         </dependency>
         <dependency>
             <groupId>org.apache.jdo</groupId>
             <artifactId>jdo2-runtime</artifactId>
-            <version>SNAPSHOT</version>
+            <version>2.0-rc1</version>
         </dependency>
         <dependency>
             <id>commons-logging</id>
diff --git a/runtime20/project.xml b/runtime20/project.xml
index 63b43f2..27c8a5f 100644
--- a/runtime20/project.xml
+++ b/runtime20/project.xml
@@ -25,7 +25,7 @@
     <name>JDO2 Implementation (Runtime)</name>
     <groupId>org.apache.jdo</groupId>
     <artifactId>jdo2-runtime</artifactId>
-    <currentVersion>SNAPSHOT</currentVersion>
+    <currentVersion>2.0-rc1</currentVersion>
     <package>org.apache.jdo</package>
     <shortDescription>Java Data Object 2.0 (JDO) Runtime</shortDescription>
     <description>The Java Data Objects 2.0 (JDO) API is a standard interface-based 
@@ -39,12 +39,12 @@ Request JSR 243 under the auspices of the Java Community Process.</description>
         <dependency>
             <groupId>javax.jdo</groupId>
             <artifactId>jdo2-api</artifactId>
-            <version>SNAPSHOT</version>
+            <version>2.0-rc1</version>
         </dependency>
         <dependency>
             <groupId>org.apache.jdo</groupId>
             <artifactId>jdo2-core</artifactId>
-            <version>SNAPSHOT</version>
+            <version>2.0-rc1</version>
         </dependency>
         <dependency>
             <id>commons-logging</id>
diff --git a/tck20/project.xml b/tck20/project.xml
index 4d37145..390d38d 100644
--- a/tck20/project.xml
+++ b/tck20/project.xml
@@ -23,7 +23,7 @@
     <name>JDO2 Technology Compatibility Kit</name>
     <groupId>org.apache.jdo</groupId>
     <artifactId>jdo2-tck</artifactId>
-    <currentVersion>SNAPSHOT</currentVersion>
+    <currentVersion>2.0-rc1</currentVersion>
     <package>org.apache.jdo.tck</package>
     <shortDescription>Java Data Object 2.0 (JDO) TCK</shortDescription>
     <description>The Java Data Objects 2.0 (JDO) API is a standard interface-based Java model abstraction of persistence, developed as Java Specification Request JSR 243 under the auspices of the Java Community Process.
@@ -39,28 +39,28 @@ NOTE!! There are no unit tests in this project.</description>
         <dependency>
             <groupId>javax.jdo</groupId>
             <artifactId>jdo2-api</artifactId>
-            <version>SNAPSHOT</version>
+            <version>2.0-rc1</version>
         </dependency>
         <dependency>
             <groupId>org.apache.jdo</groupId>
             <artifactId>jdo2-enhancer</artifactId>
-            <version>SNAPSHOT</version>
+            <version>2.0-rc1</version>
         </dependency>
         <dependency>
             <groupId>org.apache.jdo</groupId>
             <artifactId>jdo2-core</artifactId>
-            <version>SNAPSHOT</version>
+            <version>2.0-rc1</version>
         </dependency>
         <dependency>
             <groupId>jpox</groupId>
             <artifactId>jpox</artifactId>
-            <version>SNAPSHOT</version>
+            <version>1.1.0-rc-1</version>
             <url>http://www.jpox.org/docs/download.html</url>
         </dependency>
         <dependency>
             <groupId>jpox</groupId>
             <artifactId>jpox-enhancer</artifactId>
-            <version>SNAPSHOT</version>
+            <version>1.1.0-rc-1</version>
             <url>http://www.jpox.org/docs/download.html</url>
         </dependency>
         <dependency>
@@ -113,13 +113,13 @@ NOTE!! There are no unit tests in this project.</description>
         <dependency>
             <groupId>jpox</groupId>
             <artifactId>jpox-c3p0</artifactId>
-            <version>SNAPSHOT</version>
+            <version>1.1.0-rc-1</version>
             <url>http://www.jpox.org/docs/download.html</url>
         </dependency>
         <dependency>
             <groupId>jpox</groupId>
             <artifactId>jpox-dbcp</artifactId>
-            <version>SNAPSHOT</version>
+            <version>1.1.0-rc-1</version>
             <url>http://www.jpox.org/docs/download.html</url>
         </dependency>
         <dependency>

[db-jdo] 02/06: Clean up 2.0-rc1

Posted by cl...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

clr pushed a commit to branch origin/2.0-rc1
in repository https://gitbox.apache.org/repos/asf/db-jdo.git

commit 2a79ade9821717a54bba94172f64e41fbf424952
Author: Craig L Russell <cl...@apache.org>
AuthorDate: Thu Feb 23 00:18:15 2006 +0000

    Clean up 2.0-rc1
---
 api11/LICENSE.txt                                  |  202 -
 api11/maven.xml                                    |   50 -
 api11/project.properties                           |   19 -
 api11/project.xml                                  |   78 -
 api11/src/dtd/javax/jdo/jdo.dtd                    |   95 -
 api11/src/java/javax/jdo/Bundle.properties         |   34 -
 api11/src/java/javax/jdo/Extent.java               |   85 -
 api11/src/java/javax/jdo/InstanceCallbacks.java    |  107 -
 api11/src/java/javax/jdo/JDOCanRetryException.java |   96 -
 .../src/java/javax/jdo/JDODataStoreException.java  |   97 -
 api11/src/java/javax/jdo/JDOException.java         |  296 --
 .../java/javax/jdo/JDOFatalDataStoreException.java |   76 -
 api11/src/java/javax/jdo/JDOFatalException.java    |   97 -
 .../java/javax/jdo/JDOFatalInternalException.java  |   69 -
 .../src/java/javax/jdo/JDOFatalUserException.java  |   96 -
 api11/src/java/javax/jdo/JDOHelper.java            |  288 --
 .../java/javax/jdo/JDOObjectNotFoundException.java |   71 -
 .../jdo/JDOOptimisticVerificationException.java    |   70 -
 .../javax/jdo/JDOUnsupportedOptionException.java   |   68 -
 api11/src/java/javax/jdo/JDOUserException.java     |   96 -
 api11/src/java/javax/jdo/PersistenceManager.java   |  596 ---
 .../java/javax/jdo/PersistenceManagerFactory.java  |  328 --
 api11/src/java/javax/jdo/Query.java                |  313 --
 api11/src/java/javax/jdo/Transaction.java          |  175 -
 api11/src/java/javax/jdo/package.html              |   90 -
 api11/src/java/javax/jdo/spi/I18NHelper.java       |  398 --
 api11/src/java/javax/jdo/spi/JDOImplHelper.java    |  589 ---
 api11/src/java/javax/jdo/spi/JDOPermission.java    |  133 -
 .../src/java/javax/jdo/spi/PersistenceCapable.java |  543 ---
 .../src/java/javax/jdo/spi/RegisterClassEvent.java |  124 -
 .../java/javax/jdo/spi/RegisterClassListener.java  |   45 -
 api11/src/java/javax/jdo/spi/StateManager.java     |  462 --
 api11/src/java/javax/jdo/spi/package.html          |   47 -
 api11/test/java/javax/jdo/JDOHelperTest.java       |  142 -
 api11/test/java/javax/jdo/pc/PCPoint.java          |  448 --
 .../test/java/javax/jdo/spi/JDOImplHelperTest.java |  202 -
 api11/test/java/javax/jdo/util/AbstractTest.java   |   47 -
 .../java/javax/jdo/util/BatchResultPrinter.java    |  103 -
 .../test/java/javax/jdo/util/BatchTestRunner.java  |  163 -
 api11/xdocs/index.xml                              |   37 -
 api11/xdocs/navigation.xml                         |   37 -
 fostore20/LICENSE.txt                              |  202 -
 fostore20/maven.xml                                |  332 --
 fostore20/project.properties                       |  202 -
 fostore20/project.xml                              |  137 -
 fostore20/src/conf/commons-logging.properties      |   45 -
 fostore20/src/conf/logging.properties              |   68 -
 fostore20/src/conf/simplelog.properties            |   58 -
 .../src/java/org/apache/jdo/impl/fostore/AID.java  |  449 --
 .../apache/jdo/impl/fostore/AIDTranscriber.java    |  219 -
 .../jdo/impl/fostore/AbstractFieldManager.java     |  216 -
 .../jdo/impl/fostore/AbstractFieldRequest.java     |  207 -
 .../apache/jdo/impl/fostore/AbstractRequest.java   |  230 -
 .../jdo/impl/fostore/ActivateClassHandler.java     |  189 -
 .../jdo/impl/fostore/ActivateClassRequest.java     |  203 -
 .../apache/jdo/impl/fostore/BeginTxHandler.java    |   62 -
 .../apache/jdo/impl/fostore/BeginTxRequest.java    |   68 -
 .../java/org/apache/jdo/impl/fostore/Block.java    |  103 -
 .../jdo/impl/fostore/BooleanTranscriber.java       |   52 -
 .../jdo/impl/fostore/BufferedRequestFactory.java   |  175 -
 .../org/apache/jdo/impl/fostore/Bundle.properties  |  405 --
 .../apache/jdo/impl/fostore/ByteTranscriber.java   |   48 -
 .../src/java/org/apache/jdo/impl/fostore/CLID.java |  525 ---
 .../apache/jdo/impl/fostore/CharTranscriber.java   |   48 -
 .../org/apache/jdo/impl/fostore/CommitHandler.java |  106 -
 .../org/apache/jdo/impl/fostore/CommitRequest.java |   82 -
 .../apache/jdo/impl/fostore/CreateOIDHandler.java  |   80 -
 .../apache/jdo/impl/fostore/CreateOIDRequest.java  |   74 -
 .../java/org/apache/jdo/impl/fostore/DBClass.java  |  380 --
 .../java/org/apache/jdo/impl/fostore/DBExtent.java |  230 -
 .../java/org/apache/jdo/impl/fostore/DBInfo.java   |  430 --
 .../org/apache/jdo/impl/fostore/DeleteHandler.java |  103 -
 .../org/apache/jdo/impl/fostore/DeleteRequest.java |   87 -
 .../apache/jdo/impl/fostore/DoubleTranscriber.java |   48 -
 .../apache/jdo/impl/fostore/DummyTranscriber.java  |   42 -
 .../org/apache/jdo/impl/fostore/DumpHandler.java   |  261 --
 .../org/apache/jdo/impl/fostore/DumpOption.java    |  134 -
 .../org/apache/jdo/impl/fostore/DumpRequest.java   |  109 -
 .../java/org/apache/jdo/impl/fostore/Dumper.java   |  280 --
 .../fostore/FOStoreAbstractMethodException.java    |   31 -
 .../jdo/impl/fostore/FOStoreBtreeStorage.java      |  142 -
 .../jdo/impl/fostore/FOStoreClientConnection.java  |   82 -
 .../impl/fostore/FOStoreClientConnectionImpl.java  |  152 -
 .../apache/jdo/impl/fostore/FOStoreConnection.java |   25 -
 .../jdo/impl/fostore/FOStoreConnectionFactory.java |  715 ---
 .../jdo/impl/fostore/FOStoreConnectionId.java      |  180 -
 .../apache/jdo/impl/fostore/FOStoreConnector.java  |  277 --
 .../apache/jdo/impl/fostore/FOStoreDatabase.java   |  574 ---
 .../jdo/impl/fostore/FOStoreDatabaseException.java |   56 -
 .../org/apache/jdo/impl/fostore/FOStoreExtent.java |  314 --
 .../jdo/impl/fostore/FOStoreFatalIOException.java  |   35 -
 .../fostore/FOStoreFatalInternalException.java     |   61 -
 .../org/apache/jdo/impl/fostore/FOStoreInput.java  |  135 -
 .../jdo/impl/fostore/FOStoreLocalConnection.java   |   90 -
 .../jdo/impl/fostore/FOStoreLoginException.java    |   42 -
 .../org/apache/jdo/impl/fostore/FOStoreModel.java  |  271 --
 .../org/apache/jdo/impl/fostore/FOStoreOutput.java |  244 -
 .../org/apache/jdo/impl/fostore/FOStorePM.java     |  183 -
 .../org/apache/jdo/impl/fostore/FOStorePMF.java    |  847 ----
 .../apache/jdo/impl/fostore/FOStorePMFFactory.java |   65 -
 .../jdo/impl/fostore/FOStoreRemoteConnection.java  |  136 -
 .../apache/jdo/impl/fostore/FOStoreSchemaUID.java  |  238 -
 .../jdo/impl/fostore/FOStoreServerConnection.java  |  115 -
 .../impl/fostore/FOStoreServerConnectionImpl.java  |  355 --
 .../jdo/impl/fostore/FOStoreStoreManager.java      |  727 ---
 .../jdo/impl/fostore/FOStoreTranscriber.java       |  193 -
 .../impl/fostore/FOStoreTranscriberFactory.java    |   90 -
 .../jdo/impl/fostore/FOStoreURLStreamHandler.java  |   57 -
 .../impl/fostore/FOStoreUnsupportedException.java  |   34 -
 .../org/apache/jdo/impl/fostore/FetchHandler.java  |  143 -
 .../org/apache/jdo/impl/fostore/FetchRequest.java  |  137 -
 .../org/apache/jdo/impl/fostore/FieldFetcher.java  |  474 --
 .../org/apache/jdo/impl/fostore/FieldRequest.java  |   38 -
 .../apache/jdo/impl/fostore/FloatTranscriber.java  |   48 -
 .../apache/jdo/impl/fostore/GetClassHandler.java   |   95 -
 .../apache/jdo/impl/fostore/GetClassRequest.java   |   93 -
 .../apache/jdo/impl/fostore/GetExtentHandler.java  |  254 --
 .../apache/jdo/impl/fostore/GetExtentRequest.java  |  263 --
 .../jdo/impl/fostore/GetInstancesHandler.java      |  101 -
 .../jdo/impl/fostore/GetInstancesRequest.java      |  128 -
 .../src/java/org/apache/jdo/impl/fostore/I18N.java |   27 -
 .../org/apache/jdo/impl/fostore/InsertHandler.java |  324 --
 .../org/apache/jdo/impl/fostore/InsertRequest.java |  537 ---
 .../apache/jdo/impl/fostore/IntTranscriber.java    |   48 -
 .../org/apache/jdo/impl/fostore/LoginHandler.java  |  109 -
 .../org/apache/jdo/impl/fostore/LoginRequest.java  |  151 -
 .../apache/jdo/impl/fostore/LongTranscriber.java   |   48 -
 .../src/java/org/apache/jdo/impl/fostore/Main.java |  472 --
 .../java/org/apache/jdo/impl/fostore/Message.java  |  321 --
 .../src/java/org/apache/jdo/impl/fostore/OID.java  |  462 --
 .../apache/jdo/impl/fostore/ObjectTranscriber.java | 1858 --------
 .../java/org/apache/jdo/impl/fostore/Reply.java    |  388 --
 .../org/apache/jdo/impl/fostore/ReplyHandler.java  |  249 --
 .../java/org/apache/jdo/impl/fostore/Request.java  |   54 -
 .../apache/jdo/impl/fostore/RequestFactory.java    |  195 -
 .../apache/jdo/impl/fostore/RequestFinisher.java   |   31 -
 .../apache/jdo/impl/fostore/RequestHandler.java    |  391 --
 .../org/apache/jdo/impl/fostore/RequestId.java     |  120 -
 .../org/apache/jdo/impl/fostore/RequestType.java   |  146 -
 .../apache/jdo/impl/fostore/RollbackHandler.java   |   76 -
 .../apache/jdo/impl/fostore/RollbackRequest.java   |   71 -
 .../apache/jdo/impl/fostore/ShortTranscriber.java  |   48 -
 .../java/org/apache/jdo/impl/fostore/Status.java   |  134 -
 .../org/apache/jdo/impl/fostore/SubclassSet.java   |  115 -
 .../java/org/apache/jdo/impl/fostore/Tester.java   |  132 -
 .../org/apache/jdo/impl/fostore/UpdateHandler.java |  211 -
 .../org/apache/jdo/impl/fostore/UpdateRequest.java |  144 -
 .../org/apache/jdo/impl/fostore/VerifyHandler.java |   97 -
 .../org/apache/jdo/impl/fostore/VerifyRequest.java |  132 -
 .../java/org/apache/jdo/impl/fostore/package.html  |   84 -
 fostore20/test/conf/CF.properties.sav              |   16 -
 fostore20/test/conf/JDO20Policy                    |  176 -
 fostore20/test/conf/PMF.properties                 |   18 -
 fostore20/test/conf/commons-logging.properties     |   47 -
 fostore20/test/conf/jndi.properties                |   16 -
 fostore20/test/conf/logging.properties             |   74 -
 fostore20/test/conf/simplelog.properties           |   64 -
 fostore20/test/conf/tests.list                     |   97 -
 fostore20/test/fsuid2/build.xml                    |   85 -
 fostore20/test/fsuid2/dist.xml                     |   66 -
 .../test/fsuid2/org/apache/jdo/pc/PCPoint.java     |   97 -
 .../test/fsuid2/org/apache/jdo/pc/PCPoint.jdo      |   18 -
 .../fsuid2/org/apache/jdo/pc/fsuid2.jdoproperties  |   15 -
 .../org/apache/jdo/impl/fostore/Test_FSUID.java    |  103 -
 .../apache/jdo/impl/fostore/Test_Transcriber.java  |  279 --
 .../java/org/apache/jdo/pc/DepartmentFactory.java  |   46 -
 .../java/org/apache/jdo/pc/EmployeeFactory.java    |   46 -
 .../java/org/apache/jdo/pc/InsuranceFactory.java   |   46 -
 .../java/org/apache/jdo/pc/InterfacesFactory.java  |   50 -
 .../java/org/apache/jdo/pc/LargeObjFactory.java    |   59 -
 .../test/java/org/apache/jdo/pc/PCArrays.java      |  642 ---
 fostore20/test/java/org/apache/jdo/pc/PCBase.java  |   23 -
 .../test/java/org/apache/jdo/pc/PCCollection.java  |   69 -
 .../test/java/org/apache/jdo/pc/PCCollections.java |  593 ---
 fostore20/test/java/org/apache/jdo/pc/PCCycle.java |   69 -
 .../test/java/org/apache/jdo/pc/PCCycle2.java      |   60 -
 .../test/java/org/apache/jdo/pc/PCDepartment.java  |   89 -
 .../test/java/org/apache/jdo/pc/PCDepartment1.java |   92 -
 .../test/java/org/apache/jdo/pc/PCDerived.java     |   21 -
 .../test/java/org/apache/jdo/pc/PCEmployee.java    |  219 -
 .../test/java/org/apache/jdo/pc/PCEmployee1.java   |  227 -
 .../org/apache/jdo/pc/PCFullTimeEmployee1.java     |   65 -
 fostore20/test/java/org/apache/jdo/pc/PCId.java    |   58 -
 .../test/java/org/apache/jdo/pc/PCInsurance.java   |   92 -
 .../test/java/org/apache/jdo/pc/PCInsurance1.java  |  101 -
 .../test/java/org/apache/jdo/pc/PCInterfaces.java  |   66 -
 .../test/java/org/apache/jdo/pc/PCLargeObj.java    |   70 -
 fostore20/test/java/org/apache/jdo/pc/PCPoint.java |  108 -
 .../test/java/org/apache/jdo/pc/PCPoint1.java      |   74 -
 .../test/java/org/apache/jdo/pc/PCPoint1Key.java   |   46 -
 .../test/java/org/apache/jdo/pc/PCPrimitive.java   |  174 -
 .../test/java/org/apache/jdo/pc/PCProject.java     |   91 -
 .../test/java/org/apache/jdo/pc/PCProject1.java    |   93 -
 fostore20/test/java/org/apache/jdo/pc/PCRect.java  |   64 -
 .../test/java/org/apache/jdo/pc/PCRefArrays.java   |   71 -
 fostore20/test/java/org/apache/jdo/pc/PCSCO.java   |  154 -
 .../test/java/org/apache/jdo/pc/PCStroke.java      |   52 -
 .../test/java/org/apache/jdo/pc/PointFactory.java  |   48 -
 .../java/org/apache/jdo/pc/ProjectFactory.java     |   45 -
 .../test/java/org/apache/jdo/pc/RectFactory.java   |   52 -
 .../java/org/apache/jdo/pc/appid/PCDepartment.java |   89 -
 .../java/org/apache/jdo/pc/appid/PCEmployee.java   |  224 -
 .../apache/jdo/pc/appid/PCFullTimeEmployee.java    |   81 -
 .../java/org/apache/jdo/pc/appid/PCInsurance.java  |   92 -
 .../java/org/apache/jdo/pc/appid/PCObjectKey.java  |   93 -
 .../apache/jdo/pc/appid/PCPartTimeEmployee.java    |   80 -
 .../java/org/apache/jdo/pc/appid/PCPerson.java     |  107 -
 .../test/java/org/apache/jdo/pc/appid/PCPoint.java |   91 -
 .../java/org/apache/jdo/pc/appid/PCProject.java    |   91 -
 .../test/java/org/apache/jdo/pc/appid/PCRect.java  |   91 -
 .../org/apache/jdo/pc/empdept/PCDepartment.java    |   89 -
 .../java/org/apache/jdo/pc/empdept/PCEmployee.java |  217 -
 .../apache/jdo/pc/empdept/PCFullTimeEmployee.java  |   81 -
 .../org/apache/jdo/pc/empdept/PCInsurance.java     |   92 -
 .../apache/jdo/pc/empdept/PCPartTimeEmployee.java  |   80 -
 .../java/org/apache/jdo/pc/empdept/PCPerson.java   |  107 -
 .../java/org/apache/jdo/pc/empdept/PCProject.java  |   91 -
 .../org/apache/jdo/pc/serializable/PCClass1.java   |   83 -
 .../org/apache/jdo/pc/serializable/PCClass2A.java  |   89 -
 .../org/apache/jdo/pc/serializable/PCClass2B.java  |   87 -
 .../org/apache/jdo/pc/serializable/PCSub3.java     |   87 -
 .../org/apache/jdo/pc/serializable/PCSub4A.java    |   92 -
 .../org/apache/jdo/pc/serializable/PCSub4B.java    |   91 -
 .../org/apache/jdo/pc/serializable/PCSuper.java    |   66 -
 .../java/org/apache/jdo/pc/serializable/Readme.txt |   57 -
 .../org/apache/jdo/pc/serializable/Transient.java  |   33 -
 .../java/org/apache/jdo/pc/xempdept/Company.java   |  139 -
 .../org/apache/jdo/pc/xempdept/Department.java     |  125 -
 .../java/org/apache/jdo/pc/xempdept/Employee.java  |  259 --
 .../apache/jdo/pc/xempdept/FullTimeEmployee.java   |   77 -
 .../org/apache/jdo/pc/xempdept/Identifiable.java   |   22 -
 .../java/org/apache/jdo/pc/xempdept/Insurance.java |  112 -
 .../apache/jdo/pc/xempdept/PartTimeEmployee.java   |   77 -
 .../java/org/apache/jdo/pc/xempdept/Person.java    |   71 -
 .../org/apache/jdo/pc/xempdept/PrimitiveTypes.java |  321 --
 .../java/org/apache/jdo/pc/xempdept/Project.java   |  138 -
 .../java/org/apache/jdo/pc/xempdept/xempdept.jpg   |  Bin 92051 -> 0 bytes
 .../java/org/apache/jdo/test/EmpDeptSupport.java   |  177 -
 fostore20/test/java/org/apache/jdo/test/Point.java |   71 -
 .../java/org/apache/jdo/test/Test_4510817.java     |   57 -
 .../java/org/apache/jdo/test/Test_4515265.java     |   96 -
 .../java/org/apache/jdo/test/Test_6214617.java     |   56 -
 .../org/apache/jdo/test/Test_ActivateClass.java    |   55 -
 .../test/java/org/apache/jdo/test/Test_AppId.java  |  177 -
 .../test/java/org/apache/jdo/test/Test_Arrays.java |   80 -
 .../apache/jdo/test/Test_ClassRegistration.java    |  241 -
 .../java/org/apache/jdo/test/Test_ClosePMF.java    |  159 -
 .../java/org/apache/jdo/test/Test_Collections.java |   66 -
 .../java/org/apache/jdo/test/Test_Container.java   |  358 --
 .../test/java/org/apache/jdo/test/Test_Cycle.java  |  130 -
 .../test/java/org/apache/jdo/test/Test_Delete.java |  155 -
 .../java/org/apache/jdo/test/Test_DupAppId.java    |  103 -
 .../java/org/apache/jdo/test/Test_EmpDept.java     |  300 --
 .../org/apache/jdo/test/Test_EmpDeptAppId.java     |  357 --
 .../apache/jdo/test/Test_EmpDeptAppIdDelete.java   |   39 -
 .../apache/jdo/test/Test_EmpDeptAppIdInsert.java   |   39 -
 .../apache/jdo/test/Test_EmpDeptAppIdUpdate.java   |   40 -
 .../apache/jdo/test/Test_EmpDeptSerialization.java |  257 --
 .../test/java/org/apache/jdo/test/Test_Extent.java |  224 -
 .../test/java/org/apache/jdo/test/Test_FSUID2.java |  335 --
 .../test/java/org/apache/jdo/test/Test_Fetch.java  |   56 -
 .../test/java/org/apache/jdo/test/Test_Fetch2.java |   44 -
 .../org/apache/jdo/test/Test_FetchInserted.java    |  113 -
 .../java/org/apache/jdo/test/Test_Freezer.java     |  221 -
 .../org/apache/jdo/test/Test_GetObjectById.java    |   88 -
 .../org/apache/jdo/test/Test_GetObjectById2.java   |   88 -
 .../org/apache/jdo/test/Test_HollowUpdate.java     |  151 -
 .../java/org/apache/jdo/test/Test_Inheritance.java |  166 -
 .../test/java/org/apache/jdo/test/Test_Insert.java |   85 -
 .../java/org/apache/jdo/test/Test_Insert2.java     |  102 -
 .../java/org/apache/jdo/test/Test_Interfaces.java  |   80 -
 .../java/org/apache/jdo/test/Test_JDOModel.java    |  460 --
 .../org/apache/jdo/test/Test_KeyFieldNull.java     |  109 -
 .../java/org/apache/jdo/test/Test_LargeObj.java    |   54 -
 .../java/org/apache/jdo/test/Test_LifeCycle.java   |  854 ----
 .../org/apache/jdo/test/Test_LifeCycle_Opt.java    |  347 --
 .../org/apache/jdo/test/Test_LifeCycle_RetF.java   |  239 -
 .../apache/jdo/test/Test_LifeCycle_RetFOpt.java    |  274 --
 .../test/java/org/apache/jdo/test/Test_Many.java   |   46 -
 .../java/org/apache/jdo/test/Test_Navigate.java    |  116 -
 .../test/java/org/apache/jdo/test/Test_NegAll.java |  212 -
 .../java/org/apache/jdo/test/Test_NonTxAccess.java |  170 -
 .../java/org/apache/jdo/test/Test_ObjectId.java    |  131 -
 .../java/org/apache/jdo/test/Test_Optimistic.java  |  220 -
 .../jdo/test/Test_OptimisticNullNotNull.java       |   90 -
 .../java/org/apache/jdo/test/Test_PCDerived.java   |   42 -
 .../org/apache/jdo/test/Test_PMFProperties.java    |  170 -
 .../java/org/apache/jdo/test/Test_ParallelPMs.java |  276 --
 .../java/org/apache/jdo/test/Test_Primitives.java  |   84 -
 .../test/java/org/apache/jdo/test/Test_Query.java  |  948 ----
 .../org/apache/jdo/test/Test_Reachability.java     |  304 --
 .../test/java/org/apache/jdo/test/Test_Rect.java   |  116 -
 .../java/org/apache/jdo/test/Test_RectAppId.java   |  137 -
 .../java/org/apache/jdo/test/Test_RefArrays.java   |  122 -
 .../java/org/apache/jdo/test/Test_Rollback.java    |  196 -
 .../apache/jdo/test/Test_RollbackFlushedNew.java   |   82 -
 .../test/java/org/apache/jdo/test/Test_SCO.java    |   57 -
 .../org/apache/jdo/test/Test_SCOArrayList.java     |  181 -
 .../jdo/test/Test_SCOArrayListOptimistic.java      |  215 -
 .../java/org/apache/jdo/test/Test_SCODate.java     |  200 -
 .../java/org/apache/jdo/test/Test_SCOHashMap.java  |  153 -
 .../java/org/apache/jdo/test/Test_SCOHashSet.java  |  170 -
 .../org/apache/jdo/test/Test_SCOHashtable.java     |  171 -
 .../org/apache/jdo/test/Test_SCOLinkedList.java    |  221 -
 .../java/org/apache/jdo/test/Test_SCORollback.java |  225 -
 .../java/org/apache/jdo/test/Test_SCOSqlDate.java  |  169 -
 .../java/org/apache/jdo/test/Test_SCOTreeMap.java  |  182 -
 .../java/org/apache/jdo/test/Test_SCOTreeSet.java  |  194 -
 .../java/org/apache/jdo/test/Test_SCOVector.java   |  233 -
 .../java/org/apache/jdo/test/Test_SCO_Base.java    |  419 --
 .../java/org/apache/jdo/test/Test_SerialPMs.java   |   96 -
 .../java/org/apache/jdo/test/Test_Serialize.java   |   93 -
 .../org/apache/jdo/test/Test_SerializeComplex.java |  225 -
 .../org/apache/jdo/test/Test_SerializeInher.java   |  109 -
 .../java/org/apache/jdo/test/Test_StringOID.java   |   74 -
 .../test/java/org/apache/jdo/test/Test_Stroke.java |  127 -
 .../test/java/org/apache/jdo/test/Test_Update.java |  168 -
 .../org/apache/jdo/test/Test_UserHashCode.java     |  184 -
 .../java/org/apache/jdo/test/Test_WeakHashSet.java |  326 --
 .../org/apache/jdo/test/Test_WeakValueHashMap.java |  572 ---
 .../org/apache/jdo/test/query/AdvancedTest.java    | 1856 --------
 .../org/apache/jdo/test/query/ArithmeticTest.java  |  324 --
 .../java/org/apache/jdo/test/query/BasicTest.java  | 1473 ------
 .../org/apache/jdo/test/query/CollectionTest.java  | 1902 --------
 .../org/apache/jdo/test/query/InheritanceTest.java |  352 --
 .../org/apache/jdo/test/query/NavigationTest.java  | 1173 -----
 .../org/apache/jdo/test/query/NegativeTest.java    |  226 -
 .../org/apache/jdo/test/query/OrderingTest.java    |  949 ----
 .../org/apache/jdo/test/query/ParameterTest.java   | 1059 -----
 .../org/apache/jdo/test/query/PositiveTest.java    |  485 --
 .../org/apache/jdo/test/query/QueryApiTest.java    |  531 ---
 .../org/apache/jdo/test/query/QueryErrorTest.java  |  204 -
 .../java/org/apache/jdo/test/query/QueryTest.java  |   43 -
 .../org/apache/jdo/test/query/ScopingTest.java     |  564 ---
 .../apache/jdo/test/query/SemanticErrorTest.java   | 1363 ------
 .../org/apache/jdo/test/query/SyntaxErrorTest.java | 1336 ------
 .../java/org/apache/jdo/test/query/TreeTest.java   |  613 ---
 .../org/apache/jdo/test/query/UnsupportedTest.java |  220 -
 .../org/apache/jdo/test/util/AbstractTest.java     |  778 ----
 .../apache/jdo/test/util/BatchResultPrinter.java   |  103 -
 .../java/org/apache/jdo/test/util/Container.java   |  285 --
 .../java/org/apache/jdo/test/util/DumpExtent.java  |  109 -
 .../java/org/apache/jdo/test/util/Factory.java     |   45 -
 .../org/apache/jdo/test/util/JDORITestRunner.java  |  175 -
 .../org/apache/jdo/test/util/OIDComparator.java    |   39 -
 .../org/apache/jdo/test/util/SwingTestRunner.java  |  132 -
 .../org/apache/jdo/test/util/TestListSuite.java    |  165 -
 .../org/apache/jdo/test/util/TestSelector.java     |  284 --
 .../test/java/org/apache/jdo/test/util/Util.java   |  256 --
 .../org/apache/jdo/pc/appid/appid.jdoproperties    |   58 -
 .../test/jdo/org/apache/jdo/pc/appid/package.jdo   |   95 -
 .../apache/jdo/pc/empdept/empdept.jdoproperties    |   45 -
 .../test/jdo/org/apache/jdo/pc/empdept/package.jdo |   68 -
 fostore20/test/jdo/org/apache/jdo/pc/package.jdo   |  441 --
 .../test/jdo/org/apache/jdo/pc/pc.jdoproperties    |  401 --
 .../jdo/org/apache/jdo/pc/serializable/package.jdo |   60 -
 .../jdo/pc/serializable/serializable.jdoproperties |   40 -
 .../jdo/org/apache/jdo/pc/xempdept/Company.jdo     |   15 -
 .../jdo/org/apache/jdo/pc/xempdept/Department.jdo  |   15 -
 .../jdo/org/apache/jdo/pc/xempdept/Employee.jdo    |   30 -
 .../apache/jdo/pc/xempdept/FullTimeEmployee.jdo    |   11 -
 .../jdo/org/apache/jdo/pc/xempdept/Insurance.jdo   |   12 -
 .../apache/jdo/pc/xempdept/PartTimeEmployee.jdo    |   11 -
 .../test/jdo/org/apache/jdo/pc/xempdept/Person.jdo |   12 -
 .../org/apache/jdo/pc/xempdept/PrimitiveTypes.jdo  |   31 -
 .../jdo/org/apache/jdo/pc/xempdept/Project.jdo     |   18 -
 .../apache/jdo/pc/xempdept/xempdept.jdoproperties  |   99 -
 fostore20/test/runtest.xml                         | 1749 --------
 ri11/LICENSE.txt                                   |  202 -
 ri11/maven.xml                                     |  371 --
 ri11/project.properties                            |  205 -
 ri11/project.xml                                   |  117 -
 ri11/src/conf/commons-logging.properties           |   44 -
 ri11/src/conf/logging.properties                   |   62 -
 ri11/src/conf/simplelog.properties                 |   52 -
 ri11/src/java/org/apache/jdo/ejb/EJBHelper.java    |  130 -
 .../src/java/org/apache/jdo/ejb/EJBImplHelper.java |  138 -
 ri11/src/java/org/apache/jdo/ejb/package.html      |   26 -
 .../java/org/apache/jdo/enhancer/EnhancerMain.java |  387 --
 ri11/src/java/org/apache/jdo/enhancer/Main.java    |  957 ----
 ri11/src/java/org/apache/jdo/enhancer/package.html |   26 -
 .../org/apache/jdo/impl/enhancer/Bundle.properties |  220 -
 .../org/apache/jdo/impl/enhancer/ClassArgMain.java |  180 -
 .../apache/jdo/impl/enhancer/ClassArgOptions.java  |  220 -
 .../jdo/impl/enhancer/ClassFileEnhancer.java       |   65 -
 .../jdo/impl/enhancer/ClassFileEnhancerHelper.java |  204 -
 .../jdo/impl/enhancer/ClassFileEnhancerTimer.java  |   70 -
 .../jdo/impl/enhancer/EnhancerClassLoader.java     |  584 ---
 .../jdo/impl/enhancer/EnhancerFatalError.java      |   70 -
 .../apache/jdo/impl/enhancer/EnhancerOptions.java  |  149 -
 .../jdo/impl/enhancer/EnhancerUserException.java   |  173 -
 .../org/apache/jdo/impl/enhancer/GenericMain.java  |  115 -
 .../apache/jdo/impl/enhancer/GenericOptions.java   |   79 -
 .../org/apache/jdo/impl/enhancer/JdoMetaMain.java  |  161 -
 .../apache/jdo/impl/enhancer/JdoMetaOptions.java   |  112 -
 .../org/apache/jdo/impl/enhancer/LogSupport.java   |  166 -
 .../org/apache/jdo/impl/enhancer/OptionSet.java    |  715 ---
 .../jdo/impl/enhancer/OutputStreamWrapper.java     |   85 -
 .../jdo/impl/enhancer/PersistenceLauncher.java     |  284 --
 .../classfile/AnnotatedClassAttribute.java         |  132 -
 .../classfile/AnnotatedMethodAttribute.java        |  140 -
 .../impl/enhancer/classfile/AttributeVector.java   |  213 -
 .../impl/enhancer/classfile/ClassAttribute.java    |  177 -
 .../jdo/impl/enhancer/classfile/ClassField.java    |  150 -
 .../jdo/impl/enhancer/classfile/ClassFile.java     |  681 ---
 .../jdo/impl/enhancer/classfile/ClassMember.java   |  116 -
 .../jdo/impl/enhancer/classfile/ClassMethod.java   |  255 --
 .../jdo/impl/enhancer/classfile/ClassPrint.java    |   34 -
 .../jdo/impl/enhancer/classfile/CodeAttribute.java |  440 --
 .../jdo/impl/enhancer/classfile/CodeEnv.java       |   54 -
 .../jdo/impl/enhancer/classfile/ConstBasic.java    |   86 -
 .../enhancer/classfile/ConstBasicMemberRef.java    |  124 -
 .../jdo/impl/enhancer/classfile/ConstClass.java    |  136 -
 .../jdo/impl/enhancer/classfile/ConstDouble.java   |  110 -
 .../jdo/impl/enhancer/classfile/ConstFieldRef.java |   53 -
 .../jdo/impl/enhancer/classfile/ConstFloat.java    |  105 -
 .../jdo/impl/enhancer/classfile/ConstInteger.java  |  105 -
 .../classfile/ConstInterfaceMethodRef.java         |   61 -
 .../jdo/impl/enhancer/classfile/ConstLong.java     |  105 -
 .../impl/enhancer/classfile/ConstMethodRef.java    |   60 -
 .../impl/enhancer/classfile/ConstNameAndType.java  |  143 -
 .../jdo/impl/enhancer/classfile/ConstString.java   |  119 -
 .../jdo/impl/enhancer/classfile/ConstUnicode.java  |  106 -
 .../jdo/impl/enhancer/classfile/ConstUtf8.java     |  100 -
 .../jdo/impl/enhancer/classfile/ConstValue.java    |   37 -
 .../jdo/impl/enhancer/classfile/ConstantPool.java  |  447 --
 .../enhancer/classfile/ConstantValueAttribute.java |  100 -
 .../jdo/impl/enhancer/classfile/Descriptor.java    |  556 ---
 .../impl/enhancer/classfile/ExceptionRange.java    |  157 -
 .../impl/enhancer/classfile/ExceptionTable.java    |  113 -
 .../enhancer/classfile/ExceptionsAttribute.java    |  160 -
 .../impl/enhancer/classfile/GenericAttribute.java  |  106 -
 .../apache/jdo/impl/enhancer/classfile/Insn.java   |  661 ---
 .../jdo/impl/enhancer/classfile/InsnConstOp.java   |  328 --
 .../jdo/impl/enhancer/classfile/InsnError.java     |   28 -
 .../jdo/impl/enhancer/classfile/InsnIInc.java      |  156 -
 .../jdo/impl/enhancer/classfile/InsnIntOp.java     |  209 -
 .../enhancer/classfile/InsnInterfaceInvoke.java    |  146 -
 .../impl/enhancer/classfile/InsnLookupSwitch.java  |  227 -
 .../enhancer/classfile/InsnMultiDimArrayNew.java   |  170 -
 .../jdo/impl/enhancer/classfile/InsnReadEnv.java   |  116 -
 .../jdo/impl/enhancer/classfile/InsnSingle.java    |  268 --
 .../impl/enhancer/classfile/InsnTableSwitch.java   |  213 -
 .../jdo/impl/enhancer/classfile/InsnTarget.java    |  113 -
 .../jdo/impl/enhancer/classfile/InsnTargetOp.java  |  162 -
 .../jdo/impl/enhancer/classfile/InsnUtils.java     |  351 --
 .../classfile/LineNumberTableAttribute.java        |  107 -
 .../jdo/impl/enhancer/classfile/LocalVariable.java |   89 -
 .../classfile/LocalVariableTableAttribute.java     |   90 -
 .../enhancer/classfile/SignatureAttribute.java     |   98 -
 .../enhancer/classfile/SourceFileAttribute.java    |   78 -
 .../enhancer/classfile/SyntheticAttribute.java     |   69 -
 .../jdo/impl/enhancer/classfile/VMConstants.java   |  288 --
 .../apache/jdo/impl/enhancer/classfile/VMOp.java   |  547 ---
 .../apache/jdo/impl/enhancer/core/Analyzer.java    | 1586 -------
 .../apache/jdo/impl/enhancer/core/Annotater.java   |  354 --
 .../apache/jdo/impl/enhancer/core/Augmenter.java   |  612 ---
 .../org/apache/jdo/impl/enhancer/core/Builder.java | 4716 --------------------
 .../apache/jdo/impl/enhancer/core/Controller.java  |  271 --
 .../jdo/impl/enhancer/core/EnhancerConstants.java  | 1494 -------
 .../jdo/impl/enhancer/core/EnhancerFilter.java     |  275 --
 .../apache/jdo/impl/enhancer/core/Environment.java |  245 -
 .../jdo/impl/enhancer/generator/CodeWriter.java    |  319 --
 .../jdo/impl/enhancer/generator/ImplHelper.java    |  950 ----
 .../apache/jdo/impl/enhancer/generator/Main.java   | 1138 -----
 .../jdo/impl/enhancer/generator/NameHelper.java    |   72 -
 .../jdo/impl/enhancer/meta/EnhancerMetaData.java   |  434 --
 .../enhancer/meta/EnhancerMetaDataFatalError.java  |   72 -
 .../meta/EnhancerMetaDataUserException.java        |   72 -
 .../jdo/impl/enhancer/meta/ExtendedMetaData.java   |  111 -
 .../enhancer/meta/model/EnhancerJavaModel.java     |  158 -
 .../impl/enhancer/meta/model/EnhancerJavaType.java |   64 -
 .../meta/model/EnhancerMetaDataJDOModelImpl.java   |  551 ---
 .../meta/prop/EnhancerMetaDataPropertyImpl.java    |  482 --
 .../jdo/impl/enhancer/meta/prop/JDOClass.java      |  349 --
 .../jdo/impl/enhancer/meta/prop/JDOField.java      |  231 -
 .../enhancer/meta/prop/MetaDataProperties.java     |  859 ----
 .../jdo/impl/enhancer/meta/prop/NameHelper.java    |   50 -
 .../meta/util/EnhancerMetaDataBaseModel.java       |  262 --
 .../enhancer/meta/util/EnhancerMetaDataTimer.java  |  325 --
 .../jdo/impl/enhancer/util/AnnotationTest.java     |  418 --
 .../apache/jdo/impl/enhancer/util/Assertion.java   |   45 -
 .../impl/enhancer/util/AugmentationDiffTest.java   |  428 --
 .../jdo/impl/enhancer/util/AugmentationTest.java   | 1380 ------
 .../enhancer/util/CombinedResourceLocator.java     |   69 -
 .../jdo/impl/enhancer/util/Disassembler.java       |  196 -
 .../jdo/impl/enhancer/util/InternalError.java      |   31 -
 .../impl/enhancer/util/ListResourceLocator.java    |  119 -
 .../impl/enhancer/util/PathResourceLocator.java    |  137 -
 .../jdo/impl/enhancer/util/ResourceLocator.java    |   36 -
 .../impl/enhancer/util/ResourceLocatorBase.java    |   56 -
 .../impl/enhancer/util/ResourceLocatorTimer.java   |   50 -
 .../org/apache/jdo/impl/enhancer/util/Support.java |  214 -
 .../org/apache/jdo/impl/enhancer/util/Timer.java   |  187 -
 ri11/src/java/org/apache/jdo/impl/fostore/AID.java |  449 --
 .../apache/jdo/impl/fostore/AIDTranscriber.java    |  219 -
 .../jdo/impl/fostore/AbstractFieldManager.java     |  216 -
 .../jdo/impl/fostore/AbstractFieldRequest.java     |  207 -
 .../apache/jdo/impl/fostore/AbstractRequest.java   |  230 -
 .../jdo/impl/fostore/ActivateClassHandler.java     |  189 -
 .../jdo/impl/fostore/ActivateClassRequest.java     |  203 -
 .../apache/jdo/impl/fostore/BeginTxHandler.java    |   62 -
 .../apache/jdo/impl/fostore/BeginTxRequest.java    |   68 -
 .../java/org/apache/jdo/impl/fostore/Block.java    |  103 -
 .../jdo/impl/fostore/BooleanTranscriber.java       |   52 -
 .../jdo/impl/fostore/BufferedRequestFactory.java   |  175 -
 .../org/apache/jdo/impl/fostore/Bundle.properties  |  407 --
 .../apache/jdo/impl/fostore/ByteTranscriber.java   |   48 -
 .../src/java/org/apache/jdo/impl/fostore/CLID.java |  525 ---
 .../apache/jdo/impl/fostore/CharTranscriber.java   |   48 -
 .../org/apache/jdo/impl/fostore/CommitHandler.java |  106 -
 .../org/apache/jdo/impl/fostore/CommitRequest.java |   82 -
 .../apache/jdo/impl/fostore/CreateOIDHandler.java  |   80 -
 .../apache/jdo/impl/fostore/CreateOIDRequest.java  |   74 -
 .../java/org/apache/jdo/impl/fostore/DBClass.java  |  380 --
 .../java/org/apache/jdo/impl/fostore/DBExtent.java |  230 -
 .../java/org/apache/jdo/impl/fostore/DBInfo.java   |  430 --
 .../org/apache/jdo/impl/fostore/DeleteHandler.java |  103 -
 .../org/apache/jdo/impl/fostore/DeleteRequest.java |   87 -
 .../apache/jdo/impl/fostore/DoubleTranscriber.java |   48 -
 .../apache/jdo/impl/fostore/DummyTranscriber.java  |   42 -
 .../org/apache/jdo/impl/fostore/DumpHandler.java   |  261 --
 .../org/apache/jdo/impl/fostore/DumpOption.java    |  134 -
 .../org/apache/jdo/impl/fostore/DumpRequest.java   |  109 -
 .../java/org/apache/jdo/impl/fostore/Dumper.java   |  280 --
 .../fostore/FOStoreAbstractMethodException.java    |   31 -
 .../jdo/impl/fostore/FOStoreBtreeStorage.java      |  142 -
 .../jdo/impl/fostore/FOStoreClientConnection.java  |   82 -
 .../impl/fostore/FOStoreClientConnectionImpl.java  |  152 -
 .../apache/jdo/impl/fostore/FOStoreConnection.java |   25 -
 .../jdo/impl/fostore/FOStoreConnectionFactory.java |  715 ---
 .../jdo/impl/fostore/FOStoreConnectionId.java      |  180 -
 .../apache/jdo/impl/fostore/FOStoreConnector.java  |  277 --
 .../apache/jdo/impl/fostore/FOStoreDatabase.java   |  574 ---
 .../jdo/impl/fostore/FOStoreDatabaseException.java |   56 -
 .../org/apache/jdo/impl/fostore/FOStoreExtent.java |  304 --
 .../jdo/impl/fostore/FOStoreFatalIOException.java  |   35 -
 .../fostore/FOStoreFatalInternalException.java     |   61 -
 .../org/apache/jdo/impl/fostore/FOStoreInput.java  |  135 -
 .../jdo/impl/fostore/FOStoreLocalConnection.java   |   90 -
 .../jdo/impl/fostore/FOStoreLoginException.java    |   42 -
 .../org/apache/jdo/impl/fostore/FOStoreModel.java  |  271 --
 .../org/apache/jdo/impl/fostore/FOStoreOutput.java |  244 -
 .../org/apache/jdo/impl/fostore/FOStorePM.java     |  160 -
 .../org/apache/jdo/impl/fostore/FOStorePMF.java    |  836 ----
 .../apache/jdo/impl/fostore/FOStorePMFFactory.java |   65 -
 .../jdo/impl/fostore/FOStoreRemoteConnection.java  |  136 -
 .../apache/jdo/impl/fostore/FOStoreSchemaUID.java  |  238 -
 .../jdo/impl/fostore/FOStoreServerConnection.java  |  115 -
 .../impl/fostore/FOStoreServerConnectionImpl.java  |  355 --
 .../jdo/impl/fostore/FOStoreStoreManager.java      |  720 ---
 .../jdo/impl/fostore/FOStoreTranscriber.java       |  193 -
 .../impl/fostore/FOStoreTranscriberFactory.java    |   90 -
 .../jdo/impl/fostore/FOStoreURLStreamHandler.java  |   57 -
 .../impl/fostore/FOStoreUnsupportedException.java  |   34 -
 .../org/apache/jdo/impl/fostore/FetchHandler.java  |  143 -
 .../org/apache/jdo/impl/fostore/FetchRequest.java  |  137 -
 .../org/apache/jdo/impl/fostore/FieldFetcher.java  |  474 --
 .../org/apache/jdo/impl/fostore/FieldRequest.java  |   38 -
 .../apache/jdo/impl/fostore/FloatTranscriber.java  |   48 -
 .../apache/jdo/impl/fostore/GetClassHandler.java   |   95 -
 .../apache/jdo/impl/fostore/GetClassRequest.java   |   93 -
 .../apache/jdo/impl/fostore/GetExtentHandler.java  |  254 --
 .../apache/jdo/impl/fostore/GetExtentRequest.java  |  263 --
 .../jdo/impl/fostore/GetInstancesHandler.java      |  101 -
 .../jdo/impl/fostore/GetInstancesRequest.java      |  128 -
 .../src/java/org/apache/jdo/impl/fostore/I18N.java |   27 -
 .../org/apache/jdo/impl/fostore/InsertHandler.java |  324 --
 .../org/apache/jdo/impl/fostore/InsertRequest.java |  537 ---
 .../apache/jdo/impl/fostore/IntTranscriber.java    |   48 -
 .../org/apache/jdo/impl/fostore/LoginHandler.java  |  109 -
 .../org/apache/jdo/impl/fostore/LoginRequest.java  |  151 -
 .../apache/jdo/impl/fostore/LongTranscriber.java   |   48 -
 .../src/java/org/apache/jdo/impl/fostore/Main.java |  472 --
 .../java/org/apache/jdo/impl/fostore/Message.java  |  321 --
 ri11/src/java/org/apache/jdo/impl/fostore/OID.java |  462 --
 .../apache/jdo/impl/fostore/ObjectTranscriber.java | 1858 --------
 .../java/org/apache/jdo/impl/fostore/Reply.java    |  388 --
 .../org/apache/jdo/impl/fostore/ReplyHandler.java  |  249 --
 .../java/org/apache/jdo/impl/fostore/Request.java  |   54 -
 .../apache/jdo/impl/fostore/RequestFactory.java    |  195 -
 .../apache/jdo/impl/fostore/RequestFinisher.java   |   31 -
 .../apache/jdo/impl/fostore/RequestHandler.java    |  391 --
 .../org/apache/jdo/impl/fostore/RequestId.java     |  120 -
 .../org/apache/jdo/impl/fostore/RequestType.java   |  146 -
 .../apache/jdo/impl/fostore/RollbackHandler.java   |   76 -
 .../apache/jdo/impl/fostore/RollbackRequest.java   |   71 -
 .../apache/jdo/impl/fostore/ShortTranscriber.java  |   48 -
 .../java/org/apache/jdo/impl/fostore/Status.java   |  134 -
 .../org/apache/jdo/impl/fostore/SubclassSet.java   |  115 -
 .../java/org/apache/jdo/impl/fostore/Tester.java   |  132 -
 .../org/apache/jdo/impl/fostore/UpdateHandler.java |  211 -
 .../org/apache/jdo/impl/fostore/UpdateRequest.java |  144 -
 .../org/apache/jdo/impl/fostore/VerifyHandler.java |   97 -
 .../org/apache/jdo/impl/fostore/VerifyRequest.java |  132 -
 .../java/org/apache/jdo/impl/fostore/package.html  |   84 -
 .../org/apache/jdo/impl/jdoql/Bundle.properties    |  225 -
 .../jdo/impl/jdoql/JDOQLQueryFactoryImpl.java      |  116 -
 .../org/apache/jdo/impl/jdoql/MemoryQuery.java     | 1484 ------
 .../apache/jdo/impl/jdoql/OrderingComparator.java  |  125 -
 .../java/org/apache/jdo/impl/jdoql/QueryImpl.java  |  732 ---
 .../jdo/impl/jdoql/QueryResultHelperImpl.java      |  226 -
 .../org/apache/jdo/impl/jdoql/jdoqlc/.cvsignore    |   10 -
 .../org/apache/jdo/impl/jdoql/jdoqlc/ErrorMsg.java |  143 -
 .../java/org/apache/jdo/impl/jdoql/jdoqlc/JDOQL.g  |  843 ----
 .../org/apache/jdo/impl/jdoql/jdoqlc/JDOQLAST.java |  220 -
 .../jdo/impl/jdoql/jdoqlc/JDOQLASTFactory.java     |   95 -
 .../org/apache/jdo/impl/jdoql/jdoqlc/JDOQLC.java   |  326 --
 .../org/apache/jdo/impl/jdoql/jdoqlc/Optimizer.g   | 1313 ------
 .../org/apache/jdo/impl/jdoql/jdoqlc/Semantic.g    | 1727 -------
 .../jdo/impl/jdoql/jdoqlc/SimpleFieldManager.java  |  189 -
 .../apache/jdo/impl/jdoql/jdoqlc/TypeSupport.java  |  428 --
 .../jdo/impl/jdoql/jdoqlc/VariableChecker.java     |  290 --
 .../jdo/impl/jdoql/scope/AbstractValueTable.java   |  175 -
 .../jdo/impl/jdoql/scope/ParameterTable.java       |  173 -
 .../apache/jdo/impl/jdoql/scope/SymbolTable.java   |   87 -
 .../org/apache/jdo/impl/jdoql/scope/TypeNames.java |  156 -
 .../org/apache/jdo/impl/jdoql/scope/UNDEFINED.java |   62 -
 .../apache/jdo/impl/jdoql/scope/VariableTable.java |   66 -
 .../org/apache/jdo/impl/jdoql/tree/AndExpr.java    |   94 -
 .../jdo/impl/jdoql/tree/AscendingOrderingExpr.java |   79 -
 .../org/apache/jdo/impl/jdoql/tree/BinaryExpr.java |  166 -
 .../jdo/impl/jdoql/tree/BooleanLiteralExpr.java    |   93 -
 .../jdo/impl/jdoql/tree/ByteLiteralExpr.java       |   92 -
 .../jdo/impl/jdoql/tree/CandidateClassImpl.java    |   94 -
 .../org/apache/jdo/impl/jdoql/tree/CastExpr.java   |  116 -
 .../jdo/impl/jdoql/tree/CharLiteralExpr.java       |   92 -
 .../apache/jdo/impl/jdoql/tree/ComplementExpr.java |   78 -
 .../jdo/impl/jdoql/tree/ConditionalAndExpr.java    |   96 -
 .../jdo/impl/jdoql/tree/ConditionalOrExpr.java     |   96 -
 .../apache/jdo/impl/jdoql/tree/ConstantExpr.java   |  127 -
 .../jdo/impl/jdoql/tree/ContainsCallExpr.java      |  121 -
 .../java/org/apache/jdo/impl/jdoql/tree/Decl.java  |   87 -
 .../impl/jdoql/tree/DescendingOrderingExpr.java    |   79 -
 .../org/apache/jdo/impl/jdoql/tree/DivideExpr.java |   95 -
 .../jdo/impl/jdoql/tree/DoubleLiteralExpr.java     |   92 -
 .../jdo/impl/jdoql/tree/EndsWithCallExpr.java      |  119 -
 .../org/apache/jdo/impl/jdoql/tree/EqualsExpr.java |   94 -
 .../java/org/apache/jdo/impl/jdoql/tree/Expr.java  |   50 -
 .../jdo/impl/jdoql/tree/FieldAccessExpr.java       |  204 -
 .../impl/jdoql/tree/FilterExpressionDumper.java    |  497 ---
 .../jdo/impl/jdoql/tree/FloatLiteralExpr.java      |   92 -
 .../jdo/impl/jdoql/tree/GreaterThanEqualsExpr.java |   96 -
 .../jdo/impl/jdoql/tree/GreaterThanExpr.java       |   95 -
 .../apache/jdo/impl/jdoql/tree/IdentifierExpr.java |  100 -
 .../apache/jdo/impl/jdoql/tree/IntLiteralExpr.java |   92 -
 .../jdo/impl/jdoql/tree/IsEmptyCallExpr.java       |   89 -
 .../jdo/impl/jdoql/tree/LessThanEqualsExpr.java    |   96 -
 .../apache/jdo/impl/jdoql/tree/LessThanExpr.java   |   94 -
 .../jdo/impl/jdoql/tree/LongLiteralExpr.java       |   92 -
 .../apache/jdo/impl/jdoql/tree/MethodCallExpr.java |  114 -
 .../org/apache/jdo/impl/jdoql/tree/MinusExpr.java  |   94 -
 .../org/apache/jdo/impl/jdoql/tree/NodeImpl.java   |  259 --
 .../apache/jdo/impl/jdoql/tree/NotEqualsExpr.java  |   96 -
 .../org/apache/jdo/impl/jdoql/tree/NotExpr.java    |   77 -
 .../org/apache/jdo/impl/jdoql/tree/OrExpr.java     |   94 -
 .../apache/jdo/impl/jdoql/tree/OrderingExpr.java   |   64 -
 .../jdo/impl/jdoql/tree/ParameterAccessExpr.java   |   81 -
 .../apache/jdo/impl/jdoql/tree/ParameterDecl.java  |   77 -
 .../org/apache/jdo/impl/jdoql/tree/PlusExpr.java   |   94 -
 .../jdo/impl/jdoql/tree/ShortLiteralExpr.java      |   92 -
 .../jdo/impl/jdoql/tree/StartsWithCallExpr.java    |  119 -
 .../jdo/impl/jdoql/tree/StaticFieldAccessExpr.java |  166 -
 .../org/apache/jdo/impl/jdoql/tree/ThisExpr.java   |   76 -
 .../org/apache/jdo/impl/jdoql/tree/TimesExpr.java  |   95 -
 .../java/org/apache/jdo/impl/jdoql/tree/Tree.java  | 1021 -----
 .../org/apache/jdo/impl/jdoql/tree/TypeImpl.java   |   93 -
 .../org/apache/jdo/impl/jdoql/tree/UnaryExpr.java  |   64 -
 .../apache/jdo/impl/jdoql/tree/UnaryMinusExpr.java |   77 -
 .../apache/jdo/impl/jdoql/tree/UnaryPlusExpr.java  |   76 -
 .../jdo/impl/jdoql/tree/VariableAccessExpr.java    |   81 -
 .../apache/jdo/impl/jdoql/tree/VariableDecl.java   |   77 -
 .../jdo/impl/model/java/AbstractJavaField.java     |  154 -
 .../jdo/impl/model/java/AbstractJavaModel.java     |  175 -
 .../impl/model/java/AbstractJavaModelFactory.java  |  144 -
 .../jdo/impl/model/java/AbstractJavaType.java      |  110 -
 .../impl/model/java/BaseReflectionJavaField.java   |  172 -
 .../impl/model/java/BaseReflectionJavaType.java    |  170 -
 .../apache/jdo/impl/model/java/Bundle.properties   |   82 -
 .../org/apache/jdo/impl/model/java/ErrorType.java  |   64 -
 .../jdo/impl/model/java/FloatingPointType.java     |   63 -
 .../apache/jdo/impl/model/java/IntegralType.java   |   67 -
 .../model/java/JDOSupportedCollectionType.java     |   94 -
 .../jdo/impl/model/java/JDOSupportedMapType.java   |   87 -
 .../apache/jdo/impl/model/java/JavaModel-Impl.jpg  |  Bin 89929 -> 0 bytes
 .../jdo/impl/model/java/MutableValueClassType.java |   67 -
 .../org/apache/jdo/impl/model/java/NullType.java   |   64 -
 .../apache/jdo/impl/model/java/PredefinedType.java |  249 --
 .../apache/jdo/impl/model/java/PrimitiveType.java  |  103 -
 .../apache/jdo/impl/model/java/ValueClassType.java |   78 -
 .../jdo/impl/model/java/WrapperClassType.java      |   77 -
 .../org/apache/jdo/impl/model/java/package.html    |   46 -
 .../model/java/reflection/ReflectionJavaField.java |  130 -
 .../model/java/reflection/ReflectionJavaModel.java |  187 -
 .../reflection/ReflectionJavaModelFactory.java     |  106 -
 .../model/java/reflection/ReflectionJavaType.java  |  259 --
 .../jdo/impl/model/java/runtime/Bundle.properties  |   60 -
 .../model/java/runtime/RegisterClassListener.java  |  178 -
 .../impl/model/java/runtime/RuntimeJavaModel.java  |  176 -
 .../java/runtime/RuntimeJavaModelFactory.java      |  242 -
 .../impl/model/java/runtime/RuntimeJavaType.java   |   78 -
 .../jdo/impl/model/java/runtime/package.html       |   27 -
 .../apache/jdo/impl/model/jdo/Bundle.properties    |   84 -
 .../jdo/impl/model/jdo/JDOArrayImplDynamic.java    |   80 -
 .../jdo/impl/model/jdo/JDOClassImplDynamic.java    | 1043 -----
 .../impl/model/jdo/JDOCollectionImplDynamic.java   |  138 -
 .../apache/jdo/impl/model/jdo/JDOElementImpl.java  |  152 -
 .../jdo/impl/model/jdo/JDOExtensionImpl.java       |   86 -
 .../jdo/impl/model/jdo/JDOFieldImplDynamic.java    |  566 ---
 .../jdo/impl/model/jdo/JDOMapImplDynamic.java      |  228 -
 .../apache/jdo/impl/model/jdo/JDOMemberImpl.java   |  165 -
 .../impl/model/jdo/JDOModelFactoryImplDynamic.java |  115 -
 .../jdo/impl/model/jdo/JDOModelImplDynamic.java    |  717 ---
 .../apache/jdo/impl/model/jdo/JDOPackageImpl.java  |   74 -
 .../jdo/impl/model/jdo/JDOReferenceImpl.java       |   31 -
 .../jdo/impl/model/jdo/JDORelationshipImpl.java    |  109 -
 .../model/jdo/caching/JDOArrayImplCaching.java     |   64 -
 .../model/jdo/caching/JDOClassImplCaching.java     |  443 --
 .../jdo/caching/JDOCollectionImplCaching.java      |   62 -
 .../model/jdo/caching/JDOFieldImplCaching.java     |  243 -
 .../impl/model/jdo/caching/JDOMapImplCaching.java  |   84 -
 .../jdo/caching/JDOModelFactoryImplCaching.java    |   69 -
 .../model/jdo/caching/JDOModelImplCaching.java     |  126 -
 .../org/apache/jdo/impl/model/jdo/package.html     |   27 -
 .../jdo/impl/model/jdo/util/PrintSupport.java      |  294 --
 .../jdo/impl/model/jdo/util/TypeSupport.java       |  170 -
 .../apache/jdo/impl/model/jdo/xml/JDOHandler.java  |  140 -
 .../jdo/impl/model/jdo/xml/JDOHandlerImpl.java     |  616 ---
 .../apache/jdo/impl/model/jdo/xml/JDOParser.java   |  312 --
 .../apache/jdo/impl/model/jdo/xml/XMLExists.java   |  307 --
 .../java/org/apache/jdo/impl/pm/Bundle.properties  |  102 -
 .../org/apache/jdo/impl/pm/CacheManagerImpl.java   |  630 ---
 .../jdo/impl/pm/PersistenceManagerFactoryImpl.java | 1677 -------
 .../apache/jdo/impl/pm/PersistenceManagerImpl.java | 2147 ---------
 .../jdo/impl/pm/PersistenceManagerWrapper.java     |  764 ----
 .../org/apache/jdo/impl/pm/TransactionImpl.java    | 1160 -----
 .../jdo/impl/pm/TransactionSynchronization.java    |   60 -
 ri11/src/java/org/apache/jdo/impl/pm/package.html  |   28 -
 .../java/org/apache/jdo/impl/sco/ArrayList.java    |  605 ---
 .../java/org/apache/jdo/impl/sco/Bundle.properties |   34 -
 ri11/src/java/org/apache/jdo/impl/sco/Date.java    |  247 -
 ri11/src/java/org/apache/jdo/impl/sco/Freezer.java |  403 --
 ri11/src/java/org/apache/jdo/impl/sco/HashMap.java |  607 ---
 ri11/src/java/org/apache/jdo/impl/sco/HashSet.java |  589 ---
 .../java/org/apache/jdo/impl/sco/Hashtable.java    |  614 ---
 .../java/org/apache/jdo/impl/sco/LinkedList.java   |  669 ---
 .../java/org/apache/jdo/impl/sco/SCOHelper.java    |  206 -
 ri11/src/java/org/apache/jdo/impl/sco/SqlDate.java |  203 -
 ri11/src/java/org/apache/jdo/impl/sco/SqlTime.java |  204 -
 .../java/org/apache/jdo/impl/sco/SqlTimestamp.java |  288 --
 ri11/src/java/org/apache/jdo/impl/sco/TreeMap.java |  603 ---
 ri11/src/java/org/apache/jdo/impl/sco/TreeSet.java |  596 ---
 ri11/src/java/org/apache/jdo/impl/sco/Vector.java  |  737 ---
 ri11/src/java/org/apache/jdo/impl/sco/package.html |   27 -
 .../apache/jdo/impl/state/AutoPersistentNew.java   |  118 -
 .../jdo/impl/state/AutoPersistentNewFlushed.java   |  118 -
 .../impl/state/AutoPersistentNewFlushedDirty.java  |  101 -
 .../jdo/impl/state/AutoPersistentPending.java      |   88 -
 .../org/apache/jdo/impl/state/Bundle.properties    |   68 -
 .../src/java/org/apache/jdo/impl/state/Hollow.java |  219 -
 .../org/apache/jdo/impl/state/LifeCycleState.java  |  573 ---
 .../org/apache/jdo/impl/state/PersistentClean.java |  148 -
 .../impl/state/PersistentCleanTransactional.java   |   70 -
 .../apache/jdo/impl/state/PersistentDeleted.java   |  110 -
 .../jdo/impl/state/PersistentDeletedFlushed.java   |   58 -
 .../org/apache/jdo/impl/state/PersistentDirty.java |  110 -
 .../jdo/impl/state/PersistentDirtyFlushed.java     |   92 -
 .../org/apache/jdo/impl/state/PersistentNew.java   |  108 -
 .../jdo/impl/state/PersistentNewDeleted.java       |  105 -
 .../jdo/impl/state/PersistentNewFlushed.java       |   92 -
 .../impl/state/PersistentNewFlushedDeleted.java    |   68 -
 .../jdo/impl/state/PersistentNewFlushedDirty.java  |   70 -
 .../jdo/impl/state/PersistentNonTransactional.java |  282 --
 .../apache/jdo/impl/state/ReachabilityHandler.java |  255 --
 .../org/apache/jdo/impl/state/SCOProcessor.java    |  437 --
 .../apache/jdo/impl/state/SimpleFieldManager.java  |  212 -
 .../apache/jdo/impl/state/StateFieldManager.java   |  207 -
 .../apache/jdo/impl/state/StateManagerFactory.java |   66 -
 .../apache/jdo/impl/state/StateManagerImpl.java    | 2471 ----------
 .../org/apache/jdo/impl/state/TransientClean.java  |  127 -
 .../org/apache/jdo/impl/state/TransientDirty.java  |   96 -
 .../org/apache/jdo/jdoql/JDOQLQueryFactory.java    |  151 -
 .../org/apache/jdo/jdoql/JDOQueryException.java    |   61 -
 ri11/src/java/org/apache/jdo/jdoql/package.html    |   27 -
 .../apache/jdo/jdoql/tree/AbstractNodeVisitor.java | 1586 -------
 .../org/apache/jdo/jdoql/tree/AndExpression.java   |   29 -
 .../jdoql/tree/AscendingOrderingExpression.java    |   29 -
 .../apache/jdo/jdoql/tree/BinaryExpression.java    |   52 -
 .../jdo/jdoql/tree/BooleanLiteralExpression.java   |   32 -
 .../jdo/jdoql/tree/ByteLiteralExpression.java      |   31 -
 .../org/apache/jdo/jdoql/tree/CandidateClass.java  |   29 -
 .../org/apache/jdo/jdoql/tree/CastExpression.java  |   39 -
 .../jdo/jdoql/tree/CharLiteralExpression.java      |   31 -
 .../jdo/jdoql/tree/ComplementExpression.java       |   28 -
 .../jdo/jdoql/tree/ConditionalAndExpression.java   |   28 -
 .../jdo/jdoql/tree/ConditionalOrExpression.java    |   28 -
 .../apache/jdo/jdoql/tree/ConstantExpression.java  |   33 -
 .../jdo/jdoql/tree/ContainsCallExpression.java     |   29 -
 .../org/apache/jdo/jdoql/tree/Declaration.java     |   41 -
 .../jdoql/tree/DescendingOrderingExpression.java   |   29 -
 .../apache/jdo/jdoql/tree/DivideExpression.java    |   28 -
 .../jdo/jdoql/tree/DoubleLiteralExpression.java    |   31 -
 .../jdo/jdoql/tree/EndsWithCallExpression.java     |   29 -
 .../apache/jdo/jdoql/tree/EqualsExpression.java    |   28 -
 .../java/org/apache/jdo/jdoql/tree/Expression.java |   29 -
 .../apache/jdo/jdoql/tree/ExpressionFactory.java   |  330 --
 .../jdo/jdoql/tree/FieldAccessExpression.java      |   52 -
 .../jdo/jdoql/tree/FloatLiteralExpression.java     |   31 -
 .../jdoql/tree/GreaterThanEqualsExpression.java    |   28 -
 .../jdo/jdoql/tree/GreaterThanExpression.java      |   28 -
 .../jdo/jdoql/tree/IdentifierExpression.java       |   40 -
 .../jdo/jdoql/tree/IntLiteralExpression.java       |   31 -
 .../jdo/jdoql/tree/IsEmptyCallExpression.java      |   28 -
 .../jdo/jdoql/tree/LessThanEqualsExpression.java   |   28 -
 .../apache/jdo/jdoql/tree/LessThanExpression.java  |   28 -
 .../jdo/jdoql/tree/LongLiteralExpression.java      |   31 -
 .../jdo/jdoql/tree/MethodCallExpression.java       |   50 -
 .../org/apache/jdo/jdoql/tree/MinusExpression.java |   27 -
 ri11/src/java/org/apache/jdo/jdoql/tree/Node.java  |  119 -
 .../org/apache/jdo/jdoql/tree/NodeVisitor.java     | 1676 -------
 .../apache/jdo/jdoql/tree/NotEqualsExpression.java |   28 -
 .../org/apache/jdo/jdoql/tree/NotExpression.java   |   28 -
 .../org/apache/jdo/jdoql/tree/OrExpression.java    |   29 -
 .../apache/jdo/jdoql/tree/OrderingExpression.java  |   33 -
 .../jdo/jdoql/tree/ParameterAccessExpression.java  |   27 -
 .../jdo/jdoql/tree/ParameterDeclaration.java       |   27 -
 .../org/apache/jdo/jdoql/tree/PlusExpression.java  |   27 -
 .../java/org/apache/jdo/jdoql/tree/QueryTree.java  |  127 -
 .../jdo/jdoql/tree/ShortLiteralExpression.java     |   31 -
 .../jdo/jdoql/tree/StartsWithCallExpression.java   |   29 -
 .../jdoql/tree/StaticFieldAccessExpression.java    |   43 -
 .../org/apache/jdo/jdoql/tree/ThisExpression.java  |   27 -
 .../org/apache/jdo/jdoql/tree/TimesExpression.java |   28 -
 .../java/org/apache/jdo/jdoql/tree/TreeWalker.java |   69 -
 ri11/src/java/org/apache/jdo/jdoql/tree/Type.java  |   41 -
 .../org/apache/jdo/jdoql/tree/UnaryExpression.java |   33 -
 .../jdo/jdoql/tree/UnaryMinusExpression.java       |   28 -
 .../apache/jdo/jdoql/tree/UnaryPlusExpression.java |   28 -
 .../java/org/apache/jdo/jdoql/tree/ValueTable.java |   63 -
 .../jdo/jdoql/tree/VariableAccessExpression.java   |   27 -
 .../apache/jdo/jdoql/tree/VariableDeclaration.java |   27 -
 .../java/org/apache/jdo/jdoql/tree/package.html    |   26 -
 .../java/org/apache/jdo/model/Bundle.properties    |   33 -
 .../java/org/apache/jdo/model/ModelException.java  |  190 -
 .../org/apache/jdo/model/ModelFatalException.java  |  191 -
 .../apache/jdo/model/ModelValidationException.java |  163 -
 .../org/apache/jdo/model/ModelVetoException.java   |   66 -
 .../java/org/apache/jdo/model/java/JavaField.java  |   85 -
 .../org/apache/jdo/model/java/JavaModel-API.jpg    |  Bin 83136 -> 0 bytes
 .../java/org/apache/jdo/model/java/JavaModel.java  |  115 -
 .../java/org/apache/jdo/model/java/JavaModel.mdl   | 2929 ------------
 .../apache/jdo/model/java/JavaModelFactory.java    |   91 -
 .../java/org/apache/jdo/model/java/JavaType.java   |  286 --
 .../java/org/apache/jdo/model/java/package.html    |   28 -
 .../java/org/apache/jdo/model/jdo/JDOArray.java    |   58 -
 .../java/org/apache/jdo/model/jdo/JDOClass.java    |  511 ---
 .../org/apache/jdo/model/jdo/JDOCollection.java    |   80 -
 .../java/org/apache/jdo/model/jdo/JDOElement.java  |   87 -
 .../org/apache/jdo/model/jdo/JDOExtension.java     |   63 -
 .../java/org/apache/jdo/model/jdo/JDOField.java    |  285 --
 .../org/apache/jdo/model/jdo/JDOIdentityType.java  |   79 -
 ri11/src/java/org/apache/jdo/model/jdo/JDOMap.java |  124 -
 .../java/org/apache/jdo/model/jdo/JDOMember.java   |   59 -
 .../java/org/apache/jdo/model/jdo/JDOModel.java    |  168 -
 .../src/java/org/apache/jdo/model/jdo/JDOModel.jpg |  Bin 180667 -> 0 bytes
 .../src/java/org/apache/jdo/model/jdo/JDOModel.mdl | 3271 --------------
 .../org/apache/jdo/model/jdo/JDOModelFactory.java  |   68 -
 .../org/apache/jdo/model/jdo/JDOModelHelper.jpg    |  Bin 29718 -> 0 bytes
 .../java/org/apache/jdo/model/jdo/JDOPackage.java  |   54 -
 .../org/apache/jdo/model/jdo/JDOReference.java     |   28 -
 .../org/apache/jdo/model/jdo/JDORelationship.java  |  103 -
 .../apache/jdo/model/jdo/NullValueTreatment.java   |   88 -
 .../apache/jdo/model/jdo/PersistenceModifier.java  |   88 -
 .../src/java/org/apache/jdo/model/jdo/package.html |   27 -
 ri11/src/java/org/apache/jdo/model/package.html    |   26 -
 ri11/src/java/org/apache/jdo/pm/Accessor.java      |   37 -
 .../jdo/pm/PersistenceManagerFactoryInternal.java  |   78 -
 .../apache/jdo/pm/PersistenceManagerInternal.java  |  257 --
 ri11/src/java/org/apache/jdo/pm/package.html       |   27 -
 .../org/apache/jdo/query/BasicQueryResult.java     |  310 --
 .../java/org/apache/jdo/query/Bundle.properties    |   28 -
 .../src/java/org/apache/jdo/query/QueryResult.java |   42 -
 .../org/apache/jdo/query/QueryResultHelper.java    |   83 -
 .../org/apache/jdo/query/QueryResultIterator.java  |   40 -
 ri11/src/java/org/apache/jdo/sco/SCO.java          |   64 -
 .../src/java/org/apache/jdo/sco/SCOCollection.java |  116 -
 ri11/src/java/org/apache/jdo/sco/SCODate.java      |   36 -
 ri11/src/java/org/apache/jdo/sco/SCOMap.java       |  142 -
 ri11/src/java/org/apache/jdo/sco/package.html      |   26 -
 .../java/org/apache/jdo/state/FieldManager.java    |  137 -
 .../org/apache/jdo/state/StateManagerInternal.java |  275 --
 ri11/src/java/org/apache/jdo/state/package.html    |   26 -
 .../java/org/apache/jdo/store/Bundle.properties    |   30 -
 ri11/src/java/org/apache/jdo/store/Connector.java  |   85 -
 .../java/org/apache/jdo/store/StoreManager.java    |  263 --
 .../org/apache/jdo/store/StoreManagerImpl.java     |  124 -
 .../src/java/org/apache/jdo/store/Transcriber.java |   26 -
 .../org/apache/jdo/store/TranscriberFactory.java   |   26 -
 ri11/src/java/org/apache/jdo/store/package.html    |   26 -
 .../src/java/org/apache/jdo/util/Bundle.properties |   51 -
 ri11/src/java/org/apache/jdo/util/I18NHelper.java  |  376 --
 .../java/org/apache/jdo/util/JDOJdk14Logger.java   |   91 -
 .../src/java/org/apache/jdo/util/JDORIVersion.java |  124 -
 ri11/src/java/org/apache/jdo/util/Pool.java        |  155 -
 ri11/src/java/org/apache/jdo/util/WeakHashSet.java |  173 -
 .../java/org/apache/jdo/util/WeakValueHashMap.java |  440 --
 ri11/src/java/org/apache/jdo/util/package.html     |   26 -
 ri11/test/conf/CF.properties.sav                   |   16 -
 ri11/test/conf/JDO101Policy                        |   81 -
 ri11/test/conf/JDO102Policy                        |   94 -
 ri11/test/conf/JDO10Policy                         |   79 -
 ri11/test/conf/JDO11Policy                         |  132 -
 ri11/test/conf/JDO20Policy                         |  125 -
 ri11/test/conf/PMF.properties                      |   18 -
 ri11/test/conf/commons-logging.properties          |   46 -
 ri11/test/conf/jndi.properties                     |   16 -
 ri11/test/conf/logging.properties                  |   68 -
 ri11/test/conf/simplelog.properties                |   59 -
 ri11/test/conf/tests.list                          |   97 -
 ri11/test/enhancer/common.xml                      |  255 --
 ri11/test/enhancer/sempdept/build.xml              |   70 -
 .../enhancer/sempdept/src/empdept.jdoproperties    |   35 -
 .../enhancer/sempdept/src/empdept/Department.java  |   99 -
 .../enhancer/sempdept/src/empdept/Employee.java    |  110 -
 .../sempdept/src/empdept/FullTimeEmployee.java     |   47 -
 .../sempdept/src/empdept/PartTimeEmployee.java     |   90 -
 .../test/enhancer/sempdept/src/empdept/package.jdo |   61 -
 ri11/test/fsuid2/build.xml                         |   84 -
 ri11/test/fsuid2/dist.xml                          |   64 -
 ri11/test/fsuid2/org/apache/jdo/pc/PCPoint.java    |   97 -
 ri11/test/fsuid2/org/apache/jdo/pc/PCPoint.jdo     |   18 -
 .../fsuid2/org/apache/jdo/pc/fsuid2.jdoproperties  |   15 -
 .../org/apache/jdo/impl/fostore/Test_FSUID.java    |  103 -
 .../apache/jdo/impl/fostore/Test_Transcriber.java  |  279 --
 .../java/org/apache/jdo/pc/DepartmentFactory.java  |   46 -
 .../java/org/apache/jdo/pc/EmployeeFactory.java    |   46 -
 .../java/org/apache/jdo/pc/InsuranceFactory.java   |   46 -
 .../java/org/apache/jdo/pc/InterfacesFactory.java  |   50 -
 .../java/org/apache/jdo/pc/LargeObjFactory.java    |   59 -
 ri11/test/java/org/apache/jdo/pc/PCArrays.java     |  642 ---
 ri11/test/java/org/apache/jdo/pc/PCBase.java       |   23 -
 ri11/test/java/org/apache/jdo/pc/PCCollection.java |   69 -
 .../test/java/org/apache/jdo/pc/PCCollections.java |  593 ---
 ri11/test/java/org/apache/jdo/pc/PCCycle.java      |   69 -
 ri11/test/java/org/apache/jdo/pc/PCCycle2.java     |   60 -
 ri11/test/java/org/apache/jdo/pc/PCDepartment.java |   89 -
 .../test/java/org/apache/jdo/pc/PCDepartment1.java |   92 -
 ri11/test/java/org/apache/jdo/pc/PCDerived.java    |   21 -
 ri11/test/java/org/apache/jdo/pc/PCEmployee.java   |  219 -
 ri11/test/java/org/apache/jdo/pc/PCEmployee1.java  |  227 -
 .../org/apache/jdo/pc/PCFullTimeEmployee1.java     |   65 -
 ri11/test/java/org/apache/jdo/pc/PCId.java         |   58 -
 ri11/test/java/org/apache/jdo/pc/PCInsurance.java  |   92 -
 ri11/test/java/org/apache/jdo/pc/PCInsurance1.java |  101 -
 ri11/test/java/org/apache/jdo/pc/PCInterfaces.java |   66 -
 ri11/test/java/org/apache/jdo/pc/PCLargeObj.java   |   70 -
 ri11/test/java/org/apache/jdo/pc/PCPoint.java      |  108 -
 ri11/test/java/org/apache/jdo/pc/PCPoint1.java     |   74 -
 ri11/test/java/org/apache/jdo/pc/PCPoint1Key.java  |   46 -
 ri11/test/java/org/apache/jdo/pc/PCPrimitive.java  |  174 -
 ri11/test/java/org/apache/jdo/pc/PCProject.java    |   91 -
 ri11/test/java/org/apache/jdo/pc/PCProject1.java   |   93 -
 ri11/test/java/org/apache/jdo/pc/PCRect.java       |   64 -
 ri11/test/java/org/apache/jdo/pc/PCRefArrays.java  |   71 -
 ri11/test/java/org/apache/jdo/pc/PCSCO.java        |  154 -
 ri11/test/java/org/apache/jdo/pc/PCStroke.java     |   52 -
 ri11/test/java/org/apache/jdo/pc/PointFactory.java |   48 -
 .../java/org/apache/jdo/pc/ProjectFactory.java     |   45 -
 ri11/test/java/org/apache/jdo/pc/RectFactory.java  |   52 -
 .../java/org/apache/jdo/pc/appid/PCDepartment.java |   89 -
 .../java/org/apache/jdo/pc/appid/PCEmployee.java   |  224 -
 .../apache/jdo/pc/appid/PCFullTimeEmployee.java    |   81 -
 .../java/org/apache/jdo/pc/appid/PCInsurance.java  |   92 -
 .../java/org/apache/jdo/pc/appid/PCObjectKey.java  |   93 -
 .../apache/jdo/pc/appid/PCPartTimeEmployee.java    |   80 -
 .../java/org/apache/jdo/pc/appid/PCPerson.java     |  107 -
 .../test/java/org/apache/jdo/pc/appid/PCPoint.java |   91 -
 .../java/org/apache/jdo/pc/appid/PCProject.java    |   91 -
 ri11/test/java/org/apache/jdo/pc/appid/PCRect.java |   91 -
 .../org/apache/jdo/pc/appid/appid.jdoproperties    |   58 -
 ri11/test/java/org/apache/jdo/pc/appid/package.jdo |   95 -
 .../org/apache/jdo/pc/empdept/PCDepartment.java    |   89 -
 .../java/org/apache/jdo/pc/empdept/PCEmployee.java |  217 -
 .../apache/jdo/pc/empdept/PCFullTimeEmployee.java  |   81 -
 .../org/apache/jdo/pc/empdept/PCInsurance.java     |   92 -
 .../apache/jdo/pc/empdept/PCPartTimeEmployee.java  |   80 -
 .../java/org/apache/jdo/pc/empdept/PCPerson.java   |  107 -
 .../java/org/apache/jdo/pc/empdept/PCProject.java  |   91 -
 .../apache/jdo/pc/empdept/empdept.jdoproperties    |   45 -
 .../java/org/apache/jdo/pc/empdept/package.jdo     |   68 -
 ri11/test/java/org/apache/jdo/pc/package.jdo       |  441 --
 ri11/test/java/org/apache/jdo/pc/pc.jdoproperties  |  401 --
 .../org/apache/jdo/pc/serializable/PCClass1.java   |   83 -
 .../org/apache/jdo/pc/serializable/PCClass2A.java  |   89 -
 .../org/apache/jdo/pc/serializable/PCClass2B.java  |   87 -
 .../org/apache/jdo/pc/serializable/PCSub3.java     |   87 -
 .../org/apache/jdo/pc/serializable/PCSub4A.java    |   92 -
 .../org/apache/jdo/pc/serializable/PCSub4B.java    |   91 -
 .../org/apache/jdo/pc/serializable/PCSuper.java    |   66 -
 .../java/org/apache/jdo/pc/serializable/Readme.txt |   57 -
 .../org/apache/jdo/pc/serializable/Transient.java  |   33 -
 .../java/org/apache/jdo/pc/serializable/build.xml  |  128 -
 .../org/apache/jdo/pc/serializable/package.jdo     |   60 -
 .../jdo/pc/serializable/serializable.jdoproperties |   40 -
 .../java/org/apache/jdo/pc/xempdept/Company.java   |  139 -
 .../java/org/apache/jdo/pc/xempdept/Company.jdo    |   15 -
 .../org/apache/jdo/pc/xempdept/Department.java     |  125 -
 .../java/org/apache/jdo/pc/xempdept/Department.jdo |   15 -
 .../java/org/apache/jdo/pc/xempdept/Employee.java  |  259 --
 .../java/org/apache/jdo/pc/xempdept/Employee.jdo   |   30 -
 .../apache/jdo/pc/xempdept/FullTimeEmployee.java   |   77 -
 .../apache/jdo/pc/xempdept/FullTimeEmployee.jdo    |   11 -
 .../org/apache/jdo/pc/xempdept/Identifiable.java   |   22 -
 .../java/org/apache/jdo/pc/xempdept/Insurance.java |  112 -
 .../java/org/apache/jdo/pc/xempdept/Insurance.jdo  |   12 -
 .../apache/jdo/pc/xempdept/PartTimeEmployee.java   |   77 -
 .../apache/jdo/pc/xempdept/PartTimeEmployee.jdo    |   11 -
 .../java/org/apache/jdo/pc/xempdept/Person.java    |   71 -
 .../java/org/apache/jdo/pc/xempdept/Person.jdo     |   12 -
 .../org/apache/jdo/pc/xempdept/PrimitiveTypes.java |  321 --
 .../org/apache/jdo/pc/xempdept/PrimitiveTypes.jdo  |   31 -
 .../java/org/apache/jdo/pc/xempdept/Project.java   |  138 -
 .../java/org/apache/jdo/pc/xempdept/Project.jdo    |   18 -
 .../apache/jdo/pc/xempdept/xempdept.jdoproperties  |   99 -
 .../java/org/apache/jdo/pc/xempdept/xempdept.jpg   |  Bin 92051 -> 0 bytes
 .../java/org/apache/jdo/test/EmpDeptSupport.java   |  177 -
 ri11/test/java/org/apache/jdo/test/Point.java      |   71 -
 .../java/org/apache/jdo/test/Test_4510817.java     |   57 -
 .../java/org/apache/jdo/test/Test_4515265.java     |   96 -
 .../java/org/apache/jdo/test/Test_6214617.java     |   56 -
 .../org/apache/jdo/test/Test_ActivateClass.java    |   55 -
 ri11/test/java/org/apache/jdo/test/Test_AppId.java |  177 -
 .../test/java/org/apache/jdo/test/Test_Arrays.java |   80 -
 .../apache/jdo/test/Test_ClassRegistration.java    |  229 -
 .../java/org/apache/jdo/test/Test_ClosePMF.java    |  159 -
 .../java/org/apache/jdo/test/Test_Collections.java |   66 -
 .../java/org/apache/jdo/test/Test_Container.java   |  358 --
 ri11/test/java/org/apache/jdo/test/Test_Cycle.java |  130 -
 .../test/java/org/apache/jdo/test/Test_Delete.java |  155 -
 .../java/org/apache/jdo/test/Test_DupAppId.java    |  103 -
 .../java/org/apache/jdo/test/Test_EmpDept.java     |  300 --
 .../org/apache/jdo/test/Test_EmpDeptAppId.java     |  357 --
 .../apache/jdo/test/Test_EmpDeptAppIdDelete.java   |   39 -
 .../apache/jdo/test/Test_EmpDeptAppIdInsert.java   |   39 -
 .../apache/jdo/test/Test_EmpDeptAppIdUpdate.java   |   40 -
 .../apache/jdo/test/Test_EmpDeptSerialization.java |  257 --
 .../test/java/org/apache/jdo/test/Test_Extent.java |  224 -
 .../test/java/org/apache/jdo/test/Test_FSUID2.java |  335 --
 ri11/test/java/org/apache/jdo/test/Test_Fetch.java |   56 -
 .../test/java/org/apache/jdo/test/Test_Fetch2.java |   44 -
 .../org/apache/jdo/test/Test_FetchInserted.java    |  113 -
 .../java/org/apache/jdo/test/Test_Freezer.java     |  221 -
 .../org/apache/jdo/test/Test_GetObjectById.java    |   88 -
 .../org/apache/jdo/test/Test_GetObjectById2.java   |   88 -
 .../org/apache/jdo/test/Test_HollowUpdate.java     |  151 -
 .../java/org/apache/jdo/test/Test_Inheritance.java |  166 -
 .../test/java/org/apache/jdo/test/Test_Insert.java |   85 -
 .../java/org/apache/jdo/test/Test_Insert2.java     |  102 -
 .../java/org/apache/jdo/test/Test_Interfaces.java  |   80 -
 .../java/org/apache/jdo/test/Test_JDOModel.java    |  460 --
 .../org/apache/jdo/test/Test_KeyFieldNull.java     |  109 -
 .../java/org/apache/jdo/test/Test_LargeObj.java    |   54 -
 .../java/org/apache/jdo/test/Test_LifeCycle.java   |  854 ----
 .../org/apache/jdo/test/Test_LifeCycle_Opt.java    |  347 --
 .../org/apache/jdo/test/Test_LifeCycle_RetF.java   |  239 -
 .../apache/jdo/test/Test_LifeCycle_RetFOpt.java    |  274 --
 ri11/test/java/org/apache/jdo/test/Test_Many.java  |   46 -
 .../java/org/apache/jdo/test/Test_Navigate.java    |  116 -
 .../test/java/org/apache/jdo/test/Test_NegAll.java |  212 -
 .../java/org/apache/jdo/test/Test_NonTxAccess.java |  170 -
 .../java/org/apache/jdo/test/Test_ObjectId.java    |  131 -
 .../java/org/apache/jdo/test/Test_Optimistic.java  |  220 -
 .../jdo/test/Test_OptimisticNullNotNull.java       |   90 -
 .../java/org/apache/jdo/test/Test_PCDerived.java   |   42 -
 .../org/apache/jdo/test/Test_PMFProperties.java    |  170 -
 .../java/org/apache/jdo/test/Test_ParallelPMs.java |  276 --
 .../java/org/apache/jdo/test/Test_Primitives.java  |   84 -
 ri11/test/java/org/apache/jdo/test/Test_Query.java |  948 ----
 .../org/apache/jdo/test/Test_Reachability.java     |  304 --
 ri11/test/java/org/apache/jdo/test/Test_Rect.java  |  116 -
 .../java/org/apache/jdo/test/Test_RectAppId.java   |  137 -
 .../java/org/apache/jdo/test/Test_RefArrays.java   |  122 -
 .../java/org/apache/jdo/test/Test_Rollback.java    |  196 -
 .../apache/jdo/test/Test_RollbackFlushedNew.java   |   82 -
 ri11/test/java/org/apache/jdo/test/Test_SCO.java   |   57 -
 .../org/apache/jdo/test/Test_SCOArrayList.java     |  181 -
 .../jdo/test/Test_SCOArrayListOptimistic.java      |  215 -
 .../java/org/apache/jdo/test/Test_SCODate.java     |  200 -
 .../java/org/apache/jdo/test/Test_SCOHashMap.java  |  153 -
 .../java/org/apache/jdo/test/Test_SCOHashSet.java  |  170 -
 .../org/apache/jdo/test/Test_SCOHashtable.java     |  171 -
 .../org/apache/jdo/test/Test_SCOLinkedList.java    |  221 -
 .../java/org/apache/jdo/test/Test_SCORollback.java |  225 -
 .../java/org/apache/jdo/test/Test_SCOSqlDate.java  |  169 -
 .../java/org/apache/jdo/test/Test_SCOTreeMap.java  |  182 -
 .../java/org/apache/jdo/test/Test_SCOTreeSet.java  |  194 -
 .../java/org/apache/jdo/test/Test_SCOVector.java   |  233 -
 .../java/org/apache/jdo/test/Test_SCO_Base.java    |  419 --
 .../java/org/apache/jdo/test/Test_SerialPMs.java   |   96 -
 .../java/org/apache/jdo/test/Test_Serialize.java   |   93 -
 .../org/apache/jdo/test/Test_SerializeComplex.java |  225 -
 .../org/apache/jdo/test/Test_SerializeInher.java   |  109 -
 .../java/org/apache/jdo/test/Test_StringOID.java   |   74 -
 .../test/java/org/apache/jdo/test/Test_Stroke.java |  127 -
 .../test/java/org/apache/jdo/test/Test_Update.java |  168 -
 .../org/apache/jdo/test/Test_UserHashCode.java     |  184 -
 .../java/org/apache/jdo/test/Test_WeakHashSet.java |  326 --
 .../org/apache/jdo/test/Test_WeakValueHashMap.java |  572 ---
 .../org/apache/jdo/test/query/AdvancedTest.java    | 1856 --------
 .../org/apache/jdo/test/query/ArithmeticTest.java  |  324 --
 .../java/org/apache/jdo/test/query/BasicTest.java  | 1473 ------
 .../org/apache/jdo/test/query/CollectionTest.java  | 1902 --------
 .../org/apache/jdo/test/query/InheritanceTest.java |  352 --
 .../org/apache/jdo/test/query/NavigationTest.java  | 1173 -----
 .../org/apache/jdo/test/query/NegativeTest.java    |  226 -
 .../org/apache/jdo/test/query/OrderingTest.java    |  949 ----
 .../org/apache/jdo/test/query/ParameterTest.java   | 1059 -----
 .../org/apache/jdo/test/query/PositiveTest.java    |  485 --
 .../org/apache/jdo/test/query/QueryApiTest.java    |  531 ---
 .../org/apache/jdo/test/query/QueryErrorTest.java  |  204 -
 .../java/org/apache/jdo/test/query/QueryTest.java  |   43 -
 .../org/apache/jdo/test/query/ScopingTest.java     |  564 ---
 .../apache/jdo/test/query/SemanticErrorTest.java   | 1363 ------
 .../org/apache/jdo/test/query/SyntaxErrorTest.java | 1336 ------
 .../java/org/apache/jdo/test/query/TreeTest.java   |  613 ---
 .../org/apache/jdo/test/query/UnsupportedTest.java |  220 -
 .../org/apache/jdo/test/util/AbstractTest.java     |  778 ----
 .../apache/jdo/test/util/BatchResultPrinter.java   |  103 -
 .../java/org/apache/jdo/test/util/Container.java   |  285 --
 .../java/org/apache/jdo/test/util/DumpExtent.java  |  109 -
 .../java/org/apache/jdo/test/util/Factory.java     |   45 -
 .../org/apache/jdo/test/util/JDORITestRunner.java  |  175 -
 .../org/apache/jdo/test/util/OIDComparator.java    |   39 -
 .../org/apache/jdo/test/util/SwingTestRunner.java  |  132 -
 .../org/apache/jdo/test/util/TestListSuite.java    |  165 -
 .../org/apache/jdo/test/util/TestSelector.java     |  284 --
 ri11/test/java/org/apache/jdo/test/util/Util.java  |  256 --
 .../org/apache/jdo/pc/appid/appid.jdoproperties    |   58 -
 ri11/test/jdo/org/apache/jdo/pc/appid/package.jdo  |   95 -
 .../apache/jdo/pc/empdept/empdept.jdoproperties    |   45 -
 .../test/jdo/org/apache/jdo/pc/empdept/package.jdo |   68 -
 ri11/test/jdo/org/apache/jdo/pc/package.jdo        |  441 --
 ri11/test/jdo/org/apache/jdo/pc/pc.jdoproperties   |  401 --
 .../jdo/org/apache/jdo/pc/serializable/package.jdo |   60 -
 .../jdo/pc/serializable/serializable.jdoproperties |   40 -
 .../jdo/org/apache/jdo/pc/xempdept/Company.jdo     |   15 -
 .../jdo/org/apache/jdo/pc/xempdept/Department.jdo  |   15 -
 .../jdo/org/apache/jdo/pc/xempdept/Employee.jdo    |   30 -
 .../apache/jdo/pc/xempdept/FullTimeEmployee.jdo    |   11 -
 .../jdo/org/apache/jdo/pc/xempdept/Insurance.jdo   |   12 -
 .../apache/jdo/pc/xempdept/PartTimeEmployee.jdo    |   11 -
 .../test/jdo/org/apache/jdo/pc/xempdept/Person.jdo |   12 -
 .../org/apache/jdo/pc/xempdept/PrimitiveTypes.jdo  |   31 -
 .../jdo/org/apache/jdo/pc/xempdept/Project.jdo     |   18 -
 .../apache/jdo/pc/xempdept/xempdept.jdoproperties  |   99 -
 ri11/test/runtest.xml                              | 1772 --------
 ri11/xdocs/index.xml                               |   35 -
 ri11/xdocs/navigation.xml                          |   37 -
 tck11/assertions/JdoTckAssertionsTable.sxc         |  Bin 92450 -> 0 bytes
 tck11/maven.xml                                    |  387 --
 tck11/project.properties                           |  308 --
 tck11/project.xml                                  |  127 -
 tck11/test/conf/JDOTCKTestCases.list               |  387 --
 tck11/test/conf/alltests.list                      |  345 --
 tck11/test/conf/applicationidentity.conf           |    3 -
 tck11/test/conf/commons-logging.properties         |   34 -
 tck11/test/conf/datastoreidentity.conf             |    3 -
 tck11/test/conf/enhancement-test.properties        |   19 -
 tck11/test/conf/jdori.properties                   |   24 -
 tck11/test/conf/jdori2.properties                  |   24 -
 tck11/test/conf/logging.properties                 |   43 -
 tck11/test/conf/simplelog.properties               |   35 -
 tck11/test/java/org/apache/jdo/tck/JDO_Test.java   |  571 ---
 .../AccessOtherInstancesInPrestore.java            |  107 -
 .../AccessingFieldsInPredelete.java                |  178 -
 .../api/instancecallbacks/CallingJdoPostload.java  |  148 -
 .../api/instancecallbacks/CallingJdoPreclear.java  |  136 -
 .../api/instancecallbacks/CallingJdoPredelete.java |  146 -
 .../api/instancecallbacks/CallingJdoPrestore.java  |  212 -
 ...ationOfNontransactionalNonpersistentFields.java |  176 -
 .../NoAccessToFieldsAfterPredelete.java            |  159 -
 .../jdo/tck/api/instancecallbacks/TestParts.java   |  139 -
 .../apache/jdo/tck/api/jdohelper/GetObjectId.java  |   81 -
 .../jdo/tck/api/jdohelper/GetObjectIdForNull.java  |   76 -
 .../tck/api/jdohelper/GetObjectIdForTransient.java |   75 -
 .../GetObjectIdNotPersistenceCapable.java          |   76 -
 .../tck/api/jdohelper/GetPersistenceManager.java   |   83 -
 .../jdohelper/GetPersistenceManagerForNull.java    |   77 -
 .../GetPersistenceManagerForTransient.java         |   75 -
 ...GetPersistenceManagerNotPersistenceCapable.java |   75 -
 .../api/jdohelper/GetTransactionalObjectId.java    |   78 -
 .../jdohelper/GetTransactionalObjectIdForNull.java |   75 -
 .../GetTransactionalObjectIdForTransient.java      |   76 -
 ...TransactionalObjectIdNotPersistenceCapable.java |   73 -
 .../apache/jdo/tck/api/jdohelper/IsDeleted.java    |   78 -
 .../jdo/tck/api/jdohelper/IsDeletedFalse.java      |   79 -
 .../jdo/tck/api/jdohelper/IsDeletedForNull.java    |   75 -
 .../tck/api/jdohelper/IsDeletedForTransient.java   |   75 -
 .../jdohelper/IsDeletedNotPersistenceCapable.java  |   75 -
 .../org/apache/jdo/tck/api/jdohelper/IsDirty.java  |   78 -
 .../apache/jdo/tck/api/jdohelper/IsDirtyFalse.java |   81 -
 .../jdo/tck/api/jdohelper/IsDirtyForNull.java      |   74 -
 .../jdo/tck/api/jdohelper/IsDirtyForTransient.java |   75 -
 .../jdohelper/IsDirtyNotPersistenceCapable.java    |   75 -
 .../org/apache/jdo/tck/api/jdohelper/IsNew.java    |   76 -
 .../apache/jdo/tck/api/jdohelper/IsNewFalse.java   |   80 -
 .../apache/jdo/tck/api/jdohelper/IsNewForNull.java |   74 -
 .../jdo/tck/api/jdohelper/IsNewForTransient.java   |   75 -
 .../api/jdohelper/IsNewNotPersistenceCapable.java  |   75 -
 .../apache/jdo/tck/api/jdohelper/IsPersistent.java |   76 -
 .../jdo/tck/api/jdohelper/IsPersistentFalse.java   |   75 -
 .../jdo/tck/api/jdohelper/IsPersistentForNull.java |   74 -
 .../api/jdohelper/IsPersistentForTransient.java    |   76 -
 .../IsPersistentNotPersistenceCapable.java         |   75 -
 .../jdo/tck/api/jdohelper/IsTransactional.java     |   83 -
 .../tck/api/jdohelper/IsTransactionalFalse.java    |   88 -
 .../tck/api/jdohelper/IsTransactionalForNull.java  |   72 -
 .../api/jdohelper/IsTransactionalForTransient.java |   73 -
 .../IsTransactionalNotPersistenceCapable.java      |   74 -
 .../apache/jdo/tck/api/jdohelper/MakeDirty.java    |   83 -
 .../jdo/tck/api/jdohelper/MakeDirtyForNull.java    |   75 -
 .../tck/api/jdohelper/MakeDirtyForTransient.java   |   78 -
 .../jdohelper/MakeDirtyNotPersistenceCapable.java  |   76 -
 .../AfterCloseAllMethodsThrowException.java        |  100 -
 ...llingEvictAllWithCollectionContainingNulls.java |  137 -
 ...ingRefreshAllWithCollectionContainingNulls.java |  140 -
 .../ChangingObjectIdHasNoEffectOnInstance.java     |   67 -
 .../CloseThrowsExceptionWhenActiveTx.java          |   67 -
 .../ConcurrentPersistenceManagers.java             |   92 -
 .../ConcurrentPersistenceManagersSameClasses.java  |  136 -
 .../api/persistencemanager/CurrentTransaction.java |   63 -
 .../api/persistencemanager/DeletePersistent.java   |  254 --
 .../DeletePersistentAllFails.java                  |  155 -
 ...DeletePersistentFailsIfInstanceIsTransient.java |  146 -
 ...InstanceManagedByAnotherPersistenceManager.java |  179 -
 ...etePersistentHasNoEffectOnDeletedInstances.java |  161 -
 .../EvictAllWithNoParameters.java                  |  141 -
 .../EvictingCollectionOfInstancesSideEffects.java  |  201 -
 .../EvictingWithRestoreValuesFalse.java            |  127 -
 .../EvictingWithRetainValuesFalse.java             |  134 -
 ...WithInstancesMadePersistentViaReachability.java |  113 -
 .../GetExtentWithNoSubclasses.java                 |  111 -
 .../GetExtentWithSubclasses.java                   |  128 -
 .../tck/api/persistencemanager/GetIgnoreCache.java |   74 -
 .../tck/api/persistencemanager/GetObjectById.java  |  140 -
 .../GetObjectByIdNoValidationInstanceInCache.java  |   84 -
 ...IdNoValidationInstanceInCacheNoStateChange.java |   83 -
 ...etObjectByIdNoValidationInstanceNotInCache.java |   87 -
 ...jectByIdNoValidationInstanceNotInCacheNoTx.java |   88 -
 ...jectByIdNoValidationInstanceNotInDatastore.java |   81 -
 .../GetObjectByIdNotResolved.java                  |   85 -
 ...GetObjectByIdWithValidationInstanceInCache.java |   87 -
 ...ithValidationInstanceInCacheNotInDatastore.java |   87 -
 ...ValidationInstanceNotInCacheNotInDatastore.java |   75 -
 .../tck/api/persistencemanager/GetObjectId.java    |   80 -
 .../api/persistencemanager/GetObjectIdClass.java   |  100 -
 ...assForAbstractOrNonPersistenceCapableClass.java |   77 -
 .../GetObjectIdForNullOrNotPersistent.java         |   80 -
 ...etObjectIdWithApplicationModifyingIdentity.java |   97 -
 .../GetPersistenceManagerFactory.java              |   63 -
 .../api/persistencemanager/GetSetUserObject.java   |   80 -
 ...nsactionalObjectIdWhenObjectIdBeingChanged.java |   95 -
 .../GetTransactionalObjectIdWithNoTransaction.java |   80 -
 .../IsClosedIsFalseUponConstruction.java           |   58 -
 .../IsClosedIsFalseUponRetrievalFromPool.java      |   61 -
 .../IsClosedIsTrueAfterClose.java                  |   61 -
 .../MakeNontransactionalAllFails.java              |  173 -
 .../MakeNontransactionalDirtyInstance.java         |  304 --
 .../MakeNontransactionalIsImmediate.java           |  243 -
 ...akeNontransactionalPersistentCleanInstance.java |  239 -
 ...MakeNontransactionalTransientCleanInstance.java |  218 -
 .../tck/api/persistencemanager/MakePersistent.java |  220 -
 .../persistencemanager/MakePersistentAllFails.java |  131 -
 .../MakePersistentAndInstancesNotReachable.java    |  122 -
 .../MakePersistentAssignsObjectId.java             |  183 -
 ...InstanceManagedByAnotherPersistenceManager.java |  184 -
 ...PersistentHasNoEffectOnPersistentInstances.java |  165 -
 .../api/persistencemanager/MakeTransactional.java  |  160 -
 ...ctionalANontransactionalPersistentInstance.java |  310 --
 .../MakeTransactionalAllFails.java                 |  133 -
 .../MakeTransactionalIsImmediate.java              |  184 -
 ...eTransactionalPriorToTransactionRolledback.java |  213 -
 ...keTransactionalWithinTransactionRolledback.java |  185 -
 .../tck/api/persistencemanager/MakeTransient.java  |  177 -
 .../persistencemanager/MakeTransientAllFails.java  |  134 -
 .../MakeTransientCausesLossOfIdentity.java         |  183 -
 .../MakeTransientFailsWithDirtyInstance.java       |  190 -
 .../MakeTransientFieldsPreservedUnchanged.java     |  243 -
 ...keTransientHasNoEffectOnTransientInstances.java |  150 -
 .../MakeTransientNotSubjectToRollback.java         |  184 -
 .../NoPersistenceManagerIfTransient.java           |   57 -
 .../ObjectIdUniqueAmongInstances.java              |  100 -
 .../OneInstanceOfObjectPerPersistenceManager.java  |  112 -
 ...sistenceManagerIfPersistentOrTransactional.java |   55 -
 .../api/persistencemanager/OptimisticFailure.java  |  232 -
 .../PassingNullToEvictAllThrowsException.java      |  112 -
 .../PassingNullToEvictHasNoEffect.java             |   79 -
 .../PassingNullToRefreshAllThrowsException.java    |  115 -
 .../PassingNullToRefreshHasNoEffect.java           |   80 -
 .../persistencemanager/PersistenceManagerTest.java |  181 -
 .../RefreshAllNoParameterSideEffects.java          |  261 --
 .../RefreshAllWithArraySideEffects.java            |  254 --
 .../RefreshAllWithCollectionSideEffects.java       |  252 --
 .../RefreshAllWithNoParameters.java                |  101 -
 .../api/persistencemanager/RefreshSideEffects.java |  237 -
 .../jdo/tck/api/persistencemanager/Retrieve.java   |  334 --
 ...ionInstanceForAllCallsToCurrentTransaction.java |   80 -
 .../persistencemanager/SetIgnoreCacheToFalse.java  |   83 -
 .../persistencemanager/SetIgnoreCacheToTrue.java   |   84 -
 .../persistencemanager/SetMultithreadedFalse.java  |   82 -
 .../persistencemanager/SetMultithreadedTrue.java   |   81 -
 .../SettingFlagsWithTransactionInstance.java       |   71 -
 .../jdo/tck/api/persistencemanager/ThreadSafe.java |  172 -
 ...TransactionalInstanceRetainsValuesAtCommit.java |  164 -
 .../AfterCloseGetPMThrowsException.java            |   76 -
 .../AfterCloseSetMethodsThrowException.java        |  196 -
 ...erGetPersistenceManagerNoSetMethodsSucceed.java |  231 -
 .../tck/api/persistencemanagerfactory/Close.java   |   66 -
 .../CloseFailsIfTransactionActive.java             |  203 -
 ...seWithoutPermissionThrowsSecurityException.java |   87 -
 .../GetPersistenceManager.java                     |  101 -
 ...sistenceManagerFactoryByPropertiesInstance.java |   70 -
 .../GetPersistenceManagerForUser.java              |   98 -
 .../persistencemanagerfactory/GetProperties.java   |   77 -
 .../SetConnectionPassword.java                     |   84 -
 .../SetConnectionURL.java                          |   93 -
 .../SetConnectionUserName.java                     |   94 -
 .../persistencemanagerfactory/SetIgnoreCache.java  |  103 -
 .../SetMultithreaded.java                          |  104 -
 .../SetNonTransactionalRead.java                   |  105 -
 .../SetNonTransactionalWrite.java                  |  104 -
 .../persistencemanagerfactory/SetOptimistic.java   |  102 -
 .../persistencemanagerfactory/SetRetainValues.java |  104 -
 .../SupportedOptions.java                          |   75 -
 .../apache/jdo/tck/enhancement/EnhancerTest.java   |  100 -
 .../jdo/tck/enhancement/FieldAccessModified.java   |  107 -
 .../enhancement/ImplementsPersistenceCapable.java  |  100 -
 .../java/org/apache/jdo/tck/extents/CloseAll.java  |   85 -
 .../CloseOfExtentIteratorIsIteratorSpecific.java   |   77 -
 .../org/apache/jdo/tck/extents/ExtentTest.java     |  260 --
 .../apache/jdo/tck/extents/GetCandidateClass.java  |   60 -
 .../jdo/tck/extents/GetPersistenceManager.java     |   62 -
 .../apache/jdo/tck/extents/HasSubclassesFalse.java |   61 -
 .../apache/jdo/tck/extents/HasSubclassesTrue.java  |   61 -
 ...nstancesDeletedPriorToIterationNotReturned.java |   84 -
 ...InstancesPersistedPriorToIterationReturned.java |   84 -
 .../IteratorHasNextFalseAfterExtentClose.java      |   97 -
 .../jdo/tck/extents/IteratorMutatingMethods.java   |   73 -
 .../tck/extents/IteratorNextAfterExtentClose.java  |  112 -
 .../extents/IteratorNextAfterExtentCloseAll.java   |  101 -
 .../java/org/apache/jdo/tck/extents/Iterators.java |   70 -
 .../tck/lifecycle/HollowInstanceMaintainsPK.java   |   92 -
 ...ltiplePMsReturnInstancesRepresentingSamePC.java |  143 -
 ...tIdNotModifiedWhenObjectIdInstanceModified.java |  108 -
 .../PMReturnsIdenticalInstancesForEqualObjIds.java |  110 -
 .../PMsCanSharePCClassesButNotPCInstances.java     |  230 -
 .../apache/jdo/tck/lifecycle/StateTransitions.java |  768 ----
 .../TransientTransactionalStateCommit.java         |  122 -
 .../TransientTransactionalStateRollback.java       |  131 -
 ...NontransactionalInstanceOutsideTransaction.java |  202 -
 .../SecondClassObjectsTrackTheirChanges.java       |  135 -
 .../FirstSetOfTestValuesForCollection.java         |  141 -
 .../SecondSetOfTestValuesForCollection.java        |  141 -
 .../models/fieldtypes/TestArrayCollections.java    |  174 -
 .../fieldtypes/TestArrayListCollections.java       |  150 -
 .../fieldtypes/TestCollectionCollections.java      |  144 -
 .../models/fieldtypes/TestFieldsOfBigDecimal.java  |  136 -
 .../models/fieldtypes/TestFieldsOfBigInteger.java  |  136 -
 .../tck/models/fieldtypes/TestFieldsOfBoolean.java |  132 -
 .../tck/models/fieldtypes/TestFieldsOfByte.java    |  133 -
 .../models/fieldtypes/TestFieldsOfCharacter.java   |  133 -
 .../tck/models/fieldtypes/TestFieldsOfDate.java    |  133 -
 .../tck/models/fieldtypes/TestFieldsOfDouble.java  |  132 -
 .../tck/models/fieldtypes/TestFieldsOfFloat.java   |  133 -
 .../tck/models/fieldtypes/TestFieldsOfInteger.java |  131 -
 .../tck/models/fieldtypes/TestFieldsOfLocale.java  |  134 -
 .../tck/models/fieldtypes/TestFieldsOfLong.java    |  132 -
 .../tck/models/fieldtypes/TestFieldsOfObject.java  |  133 -
 .../fieldtypes/TestFieldsOfPrimitiveboolean.java   |  128 -
 .../fieldtypes/TestFieldsOfPrimitivebyte.java      |  129 -
 .../fieldtypes/TestFieldsOfPrimitivechar.java      |  129 -
 .../fieldtypes/TestFieldsOfPrimitivedouble.java    |  129 -
 .../fieldtypes/TestFieldsOfPrimitivefloat.java     |  129 -
 .../fieldtypes/TestFieldsOfPrimitiveint.java       |  127 -
 .../fieldtypes/TestFieldsOfPrimitivelong.java      |  130 -
 .../fieldtypes/TestFieldsOfPrimitiveshort.java     |  128 -
 .../tck/models/fieldtypes/TestFieldsOfShort.java   |  133 -
 .../models/fieldtypes/TestFieldsOfSimpleClass.java |  129 -
 .../fieldtypes/TestFieldsOfSimpleInterface.java    |  131 -
 .../tck/models/fieldtypes/TestFieldsOfString.java  |  133 -
 .../TestHashMapStringKeyCollections.java           |  194 -
 .../TestHashMapStringValueCollections.java         |  199 -
 .../models/fieldtypes/TestHashSetCollections.java  |  144 -
 .../TestHashtableStringKeyCollections.java         |  191 -
 .../TestHashtableStringValueCollections.java       |  191 -
 .../fieldtypes/TestLinkedListCollections.java      |  152 -
 .../tck/models/fieldtypes/TestListCollections.java |  158 -
 .../fieldtypes/TestMapStringKeyCollections.java    |  196 -
 .../fieldtypes/TestMapStringValueCollections.java  |  202 -
 .../tck/models/fieldtypes/TestSetCollections.java  |  143 -
 .../TestTreeMapStringKeyCollections.java           |  191 -
 .../TestTreeMapStringValueCollections.java         |  191 -
 .../models/fieldtypes/TestTreeSetCollections.java  |  157 -
 .../apache/jdo/tck/models/fieldtypes/TestUtil.java |   88 -
 .../models/fieldtypes/TestVectorCollections.java   |  149 -
 .../inheritance/FieldWithSameNameInSuperclass.java |  235 -
 ...rsistentFieldsAreNonPersistentInSubclasses.java |  124 -
 .../inheritance/NonpersistentSuperClass.java       |  224 -
 ...ceCapableFlexibilityInInheritanceHierarchy.java |  227 -
 .../PersistentFieldsArePersistentInSubClasses.java |  224 -
 .../jdo/tck/models/inheritance/TestParts.java      |  125 -
 ...actionalFieldsAreTransactionalInSubclasses.java |  124 -
 .../org/apache/jdo/tck/pc/company/Address.java     |  292 --
 .../org/apache/jdo/tck/pc/company/Company.java     |  303 --
 .../jdo/tck/pc/company/CompanyModelReader.java     |  216 -
 .../apache/jdo/tck/pc/company/DentalInsurance.java |   95 -
 .../org/apache/jdo/tck/pc/company/Department.java  |  365 --
 .../org/apache/jdo/tck/pc/company/Employee.java    |  414 --
 .../jdo/tck/pc/company/FullTimeEmployee.java       |   95 -
 .../org/apache/jdo/tck/pc/company/Insurance.java   |  251 --
 .../jdo/tck/pc/company/MedicalInsurance.java       |  115 -
 .../jdo/tck/pc/company/PartTimeEmployee.java       |   93 -
 .../java/org/apache/jdo/tck/pc/company/Person.java |  378 --
 .../org/apache/jdo/tck/pc/company/Project.java     |  319 --
 .../java/org/apache/jdo/tck/pc/company/company.jpg |  Bin 91979 -> 0 bytes
 .../org/apache/jdo/tck/pc/fieldtypes/AllTypes.java |  320 --
 .../jdo/tck/pc/fieldtypes/ArrayCollections.java    |  273 --
 .../tck/pc/fieldtypes/ArrayListCollections.java    |  370 --
 .../tck/pc/fieldtypes/CollectionCollections.java   |  370 --
 .../jdo/tck/pc/fieldtypes/FieldsOfBigDecimal.java  | 1090 -----
 .../jdo/tck/pc/fieldtypes/FieldsOfBigInteger.java  | 1090 -----
 .../jdo/tck/pc/fieldtypes/FieldsOfBoolean.java     | 1089 -----
 .../apache/jdo/tck/pc/fieldtypes/FieldsOfByte.java | 1089 -----
 .../jdo/tck/pc/fieldtypes/FieldsOfCharacter.java   | 1089 -----
 .../apache/jdo/tck/pc/fieldtypes/FieldsOfDate.java | 1090 -----
 .../jdo/tck/pc/fieldtypes/FieldsOfDouble.java      | 1089 -----
 .../jdo/tck/pc/fieldtypes/FieldsOfFloat.java       | 1089 -----
 .../jdo/tck/pc/fieldtypes/FieldsOfInteger.java     | 1088 -----
 .../jdo/tck/pc/fieldtypes/FieldsOfLocale.java      | 1090 -----
 .../apache/jdo/tck/pc/fieldtypes/FieldsOfLong.java | 1089 -----
 .../jdo/tck/pc/fieldtypes/FieldsOfObject.java      | 1089 -----
 .../pc/fieldtypes/FieldsOfPrimitiveboolean.java    | 1089 -----
 .../tck/pc/fieldtypes/FieldsOfPrimitivebyte.java   | 1088 -----
 .../tck/pc/fieldtypes/FieldsOfPrimitivechar.java   | 1089 -----
 .../tck/pc/fieldtypes/FieldsOfPrimitivedouble.java | 1088 -----
 .../tck/pc/fieldtypes/FieldsOfPrimitivefloat.java  | 1089 -----
 .../tck/pc/fieldtypes/FieldsOfPrimitiveint.java    | 1089 -----
 .../tck/pc/fieldtypes/FieldsOfPrimitivelong.java   | 1088 -----
 .../tck/pc/fieldtypes/FieldsOfPrimitiveshort.java  | 1089 -----
 .../jdo/tck/pc/fieldtypes/FieldsOfShort.java       | 1089 -----
 .../jdo/tck/pc/fieldtypes/FieldsOfSimpleClass.java | 1089 -----
 .../tck/pc/fieldtypes/FieldsOfSimpleInterface.java | 1089 -----
 .../jdo/tck/pc/fieldtypes/FieldsOfString.java      | 1089 -----
 .../pc/fieldtypes/HashMapStringKeyCollections.java |  958 ----
 .../fieldtypes/HashMapStringValueCollections.java  |  896 ----
 .../jdo/tck/pc/fieldtypes/HashSetCollections.java  |  370 --
 .../fieldtypes/HashtableStringKeyCollections.java  |  958 ----
 .../HashtableStringValueCollections.java           |  895 ----
 .../tck/pc/fieldtypes/LinkedListCollections.java   |  369 --
 .../jdo/tck/pc/fieldtypes/ListCollections.java     |  370 --
 .../tck/pc/fieldtypes/MapStringKeyCollections.java |  958 ----
 .../pc/fieldtypes/MapStringValueCollections.java   |  895 ----
 .../jdo/tck/pc/fieldtypes/SetCollections.java      |  370 --
 .../apache/jdo/tck/pc/fieldtypes/SimpleClass.java  |  120 -
 .../jdo/tck/pc/fieldtypes/SimpleInterface.java     |   31 -
 .../pc/fieldtypes/TreeMapStringKeyCollections.java |  957 ----
 .../fieldtypes/TreeMapStringValueCollections.java  |  895 ----
 .../jdo/tck/pc/fieldtypes/TreeSetCollections.java  |  349 --
 .../jdo/tck/pc/fieldtypes/VectorCollections.java   |  370 --
 .../apache/jdo/tck/pc/inheritance/AllPersist.java  |   85 -
 .../apache/jdo/tck/pc/inheritance/AllPersist2.java |   39 -
 .../apache/jdo/tck/pc/inheritance/AllPersist3.java |   35 -
 .../apache/jdo/tck/pc/inheritance/AllPersist4.java |   39 -
 .../apache/jdo/tck/pc/inheritance/Constants.java   |   37 -
 .../jdo/tck/pc/inheritance/FieldSameName.java      |   97 -
 .../jdo/tck/pc/inheritance/FieldSameName2.java     |   62 -
 .../jdo/tck/pc/inheritance/FieldSameName3.java     |   58 -
 .../jdo/tck/pc/inheritance/FieldSameName4.java     |   62 -
 .../jdo/tck/pc/inheritance/TopNonPersist.java      |   33 -
 .../jdo/tck/pc/inheritance/TopNonPersistB.java     |   72 -
 .../jdo/tck/pc/inheritance/TopNonPersistC.java     |   33 -
 .../jdo/tck/pc/inheritance/TopNonPersistD.java     |   33 -
 .../jdo/tck/pc/inheritance/TopNonPersistE.java     |   33 -
 .../jdo/tck/pc/inheritance/TopNonPersistF.java     |   35 -
 .../jdo/tck/pc/inheritance/TopNonPersistG.java     |   35 -
 .../jdo/tck/pc/inheritance/TopNonPersistH.java     |   35 -
 .../apache/jdo/tck/pc/inheritance/TopPersist.java  |   74 -
 .../apache/jdo/tck/pc/inheritance/TopPersistC.java |   33 -
 .../apache/jdo/tck/pc/inheritance/TopPersistD.java |   33 -
 .../apache/jdo/tck/pc/inheritance/TopPersistE.java |   33 -
 .../apache/jdo/tck/pc/inheritance/TopPersistF.java |   35 -
 .../apache/jdo/tck/pc/inheritance/TopPersistG.java |   35 -
 .../apache/jdo/tck/pc/inheritance/TopPersistH.java |   34 -
 .../instancecallbacks/InstanceCallbackClass.java   |  238 -
 .../InstanceCallbackNonPersistFdsClass.java        |  307 --
 .../jdo/tck/pc/lifecycle/StateTransitionObj.java   |   49 -
 .../java/org/apache/jdo/tck/pc/mylib/PCPoint.java  |  121 -
 .../java/org/apache/jdo/tck/pc/mylib/PCPoint2.java |  148 -
 .../java/org/apache/jdo/tck/pc/mylib/PCRect.java   |  105 -
 .../java/org/apache/jdo/tck/pc/mylib/Point.java    |   65 -
 .../apache/jdo/tck/pc/mylib/PrimitiveTypes.java    |  330 --
 ...nmentPrePostIncrementDecrementNotSupported.java |  141 -
 .../apache/jdo/tck/query/BoundParameterCheck.java  |   93 -
 tck11/test/java/org/apache/jdo/tck/query/Cast.java |  103 -
 .../test/java/org/apache/jdo/tck/query/Close.java  |  135 -
 .../java/org/apache/jdo/tck/query/CloseAll.java    |  104 -
 .../tck/query/ComparingCollectionFieldToNull.java  |  102 -
 ...omparingPersistentAndNonPersistentInstance.java |  117 -
 .../org/apache/jdo/tck/query/CompileQuery.java     |   97 -
 .../org/apache/jdo/tck/query/DeclareImports.java   |  148 -
 .../apache/jdo/tck/query/DeclareParameters.java    |  156 -
 .../org/apache/jdo/tck/query/DeclareVariables.java |  114 -
 .../jdo/tck/query/DenoteUniquenessInFilter.java    |  132 -
 .../org/apache/jdo/tck/query/ExecuteQuery.java     |  161 -
 ...ExecuteQueryWhenPersistenceManagerIsClosed.java |   95 -
 .../jdo/tck/query/ExecuteQueryWithArray.java       |  138 -
 .../apache/jdo/tck/query/ExecuteQueryWithMap.java  |  140 -
 ...gMultipleQueriesSimultaneouslyIsThreadSafe.java |  189 -
 ...eryWhenNoTransactionNoNontransactionalRead.java |   84 -
 .../org/apache/jdo/tck/query/GetIgnoreCache.java   |  139 -
 .../jdo/tck/query/GetPersistenceManager.java       |  128 -
 ...sistenceManagerFromRestoredSerializedQuery.java |  129 -
 .../org/apache/jdo/tck/query/IgnoreCacheFalse.java |  179 -
 .../apache/jdo/tck/query/ImmutableQueryResult.java |  184 -
 .../MethodsAndObjectConstructionNotSupported.java  |   85 -
 ...ctiveQueryInstanceInSamePersistenceManager.java |  128 -
 .../jdo/tck/query/MultipleIdenticalImports.java    |  115 -
 .../jdo/tck/query/NamespaceOfIdentifiers.java      |   98 -
 .../query/NavigationThroughACollectionField.java   |   94 -
 .../query/NavigationThroughANullValuedField.java   |  111 -
 ...NavigationThroughReferencesUsesDotOperator.java |  102 -
 ...ryFromExistingQueryBoundToPMFromSameVendor.java |  157 -
 .../query/NewQueryFromRestoredSerializedQuery.java |  128 -
 .../jdo/tck/query/NewQueryWithCandidateClass.java  |   86 -
 .../NewQueryWithCandidateClassAndCollection.java   |   85 -
 .../query/NewQueryWithCandidateClassAndExtent.java |   92 -
 .../query/NewQueryWithCandidateClassAndFilter.java |   94 -
 ...NewQueryWithCandidateClassCollectionFilter.java |   92 -
 .../apache/jdo/tck/query/NewQueryWithExtent.java   |   87 -
 .../jdo/tck/query/NewQueryWithExtentAndFilter.java |   93 -
 .../NewQueryWithSpecifiedLanguageAndQuery.java     |  111 -
 .../query/NullCollectionsAndContainsMethod.java    |  109 -
 .../jdo/tck/query/NullCollectionsAndIsEmpty.java   |   98 -
 .../jdo/tck/query/OrderingSpecification.java       |  191 -
 .../jdo/tck/query/ParameterBoundToDifferentPM.java |  105 -
 ...eclaredWithSameNameAsFieldOfCandidateClass.java |  151 -
 .../query/ParenthesesMarkOperatorPrecedence.java   |  379 --
 .../tck/query/PrimitiveParameterPassedAsNull.java  |   94 -
 .../apache/jdo/tck/query/QueryIsSerializable.java  |  187 -
 .../tck/query/QueryResultPassedToAnotherQuery.java |  189 -
 .../java/org/apache/jdo/tck/query/QueryTest.java   |  400 --
 .../apache/jdo/tck/query/QueryWithNoFilter.java    |  105 -
 ...ializedQueryInstanceLosesAssociationWithPM.java |  103 -
 .../tck/query/SeparateNamespaceForTypeNames.java   |  111 -
 .../jdo/tck/query/SetCandidateCollection.java      |  107 -
 .../apache/jdo/tck/query/SetCandidateExtent.java   |  105 -
 .../java/org/apache/jdo/tck/query/SetFilter.java   |   98 -
 .../org/apache/jdo/tck/query/SetIgnoreCache.java   |  163 -
 .../java/org/apache/jdo/tck/query/SetOrdering.java |  135 -
 .../jdo/tck/query/SetterReplacePreviousValues.java |  113 -
 .../jdo/tck/query/StartsWithAndEndsWith.java       |  102 -
 .../jdo/tck/query/SupportedCollectionMethods.java  |  124 -
 .../ThisIsReservedWordForElementOfCollection.java  |   86 -
 .../jdo/tck/query/UseOfThisToAcessHiddenField.java |  137 -
 ...eclaredWithSameNameAsFieldOfCandidateClass.java |  104 -
 .../query/WhiteSpaceIsACharacterAndIgnored.java    |  133 -
 .../test/java/org/apache/jdo/tck/query/company.xml |  103 -
 .../jdo/tck/query/operators/BinaryAddition.java    |  125 -
 .../jdo/tck/query/operators/BinarySubtraction.java |  130 -
 .../jdo/tck/query/operators/BitwiseComplement.java |  111 -
 .../jdo/tck/query/operators/BooleanLogicalAND.java |  174 -
 .../jdo/tck/query/operators/BooleanLogicalOR.java  |  178 -
 .../jdo/tck/query/operators/ComparisonTests.java   |  143 -
 .../jdo/tck/query/operators/ConditionalAND.java    |  139 -
 .../jdo/tck/query/operators/ConditionalOR.java     |  139 -
 .../apache/jdo/tck/query/operators/Division.java   |  131 -
 .../apache/jdo/tck/query/operators/Equality.java   | 1287 ------
 ...dComparisonsBetweenDateFieldsAndParameters.java |  129 -
 ...risonsBetweenPrimitivesAndWrapperInstances.java |  111 -
 ...omparisonsBetweenStringFieldsAndParameters.java |  114 -
 .../jdo/tck/query/operators/GreaterThan.java       | 1194 -----
 .../tck/query/operators/GreaterThanOrEqual.java    | 1200 -----
 .../apache/jdo/tck/query/operators/LessThan.java   | 1200 -----
 .../jdo/tck/query/operators/LessThanOrEqual.java   | 1206 -----
 .../jdo/tck/query/operators/LogicalComplement.java |  108 -
 .../jdo/tck/query/operators/Multiplication.java    |  122 -
 .../apache/jdo/tck/query/operators/NotEquals.java  | 1282 ------
 .../operators/PromotionOfNumericOperands.java      |  106 -
 .../jdo/tck/query/operators/SignInversion.java     |  127 -
 .../tck/query/operators/StringConcatenation.java   |  104 -
 .../apache/jdo/tck/query/operators/UnaryPlus.java  |   93 -
 .../AfterCompletionMethodCalledWhenCommitted.java  |  128 -
 .../AfterCompletionMethodCalledWhenRolledback.java |  128 -
 .../transactions/BeforeCompletionMethodCalled.java |  119 -
 ...oreCompletionMethodNotCalledBeforeRollback.java |  114 -
 .../org/apache/jdo/tck/transactions/Commit.java    |  143 -
 .../apache/jdo/tck/transactions/GetOptimistic.java |  112 -
 .../tck/transactions/GetPersistenceManager.java    |   92 -
 .../jdo/tck/transactions/GetRetainValues.java      |  103 -
 .../jdo/tck/transactions/GetSynchronization.java   |  126 -
 .../org/apache/jdo/tck/transactions/IsActive.java  |  101 -
 .../IsActiveUntilAfterCompletionMethodCalled.java  |  128 -
 .../org/apache/jdo/tck/transactions/Rollback.java  |  154 -
 .../tck/transactions/SetNontransactionalRead.java  |  155 -
 ...ntransactionalReadCalledDuringTxCompletion.java |  144 -
 ...etNontransactionalReadTrueWhenNotSupported.java |   94 -
 ...transactionalWriteCalledDuringTxCompletion.java |  140 -
 .../apache/jdo/tck/transactions/SetOptimistic.java |   90 -
 .../SetOptimisticCalledDuringTxCompletion.java     |  134 -
 .../SetOptimisticDuringTransaction.java            |  107 -
 .../SetOptimisticTrueWhenNotSupported.java         |   90 -
 .../jdo/tck/transactions/SetRetainValues.java      |   89 -
 .../SetRetainValuesCalledDuringTxCompletion.java   |  137 -
 .../SetRetainValuesTrueWhenNotSupported.java       |   90 -
 .../jdo/tck/transactions/SetSynchronization.java   |  125 -
 .../tck/transactions/SetSynchronizationToNull.java |  104 -
 .../WhenNontransactionalReadIsFalse.java           |  140 -
 .../apache/jdo/tck/util/BatchResultPrinter.java    |  103 -
 .../org/apache/jdo/tck/util/BatchTestRunner.java   |  175 -
 .../org/apache/jdo/tck/util/ClassGenerator.java    |  916 ----
 .../java/org/apache/jdo/tck/util/DeepEquality.java |   67 -
 .../org/apache/jdo/tck/util/EqualityHelper.java    |  340 --
 .../apache/jdo/tck/util/GetSupportedOptions.java   |   43 -
 .../org/apache/jdo/tck/util/JDOJdk14Logger.java    |   93 -
 .../org/apache/jdo/tck/util/SwingTestRunner.java   |  132 -
 .../org/apache/jdo/tck/util/TestListSuite.java     |  165 -
 .../java/org/apache/jdo/tck/util/TestSelector.java |  284 --
 .../jdo/tck/util/ThreadExceptionHandler.java       |   63 -
 .../apache/jdo/tck/pc/company/jdoTest.properties   |   98 -
 .../org/apache/jdo/tck/pc/company/package.jdo      |  104 -
 .../org/apache/jdo/tck/pc/fieldtypes/AllTypes.jdo  |   10 -
 .../jdo/tck/pc/fieldtypes/ArrayCollections.jdo     |  122 -
 .../jdo/tck/pc/fieldtypes/ArrayListCollections.jdo |  178 -
 .../tck/pc/fieldtypes/CollectionCollections.jdo    |  178 -
 .../jdo/tck/pc/fieldtypes/FieldsOfBigDecimal.jdo   |  202 -
 .../jdo/tck/pc/fieldtypes/FieldsOfBigInteger.jdo   |  202 -
 .../jdo/tck/pc/fieldtypes/FieldsOfBoolean.jdo      |  202 -
 .../apache/jdo/tck/pc/fieldtypes/FieldsOfByte.jdo  |  202 -
 .../jdo/tck/pc/fieldtypes/FieldsOfCharacter.jdo    |  202 -
 .../apache/jdo/tck/pc/fieldtypes/FieldsOfDate.jdo  |  202 -
 .../jdo/tck/pc/fieldtypes/FieldsOfDouble.jdo       |  202 -
 .../apache/jdo/tck/pc/fieldtypes/FieldsOfFloat.jdo |  202 -
 .../jdo/tck/pc/fieldtypes/FieldsOfInteger.jdo      |  202 -
 .../jdo/tck/pc/fieldtypes/FieldsOfLocale.jdo       |  202 -
 .../apache/jdo/tck/pc/fieldtypes/FieldsOfLong.jdo  |  202 -
 .../jdo/tck/pc/fieldtypes/FieldsOfObject.jdo       |  202 -
 .../tck/pc/fieldtypes/FieldsOfPrimitiveboolean.jdo |  202 -
 .../tck/pc/fieldtypes/FieldsOfPrimitivebyte.jdo    |  202 -
 .../tck/pc/fieldtypes/FieldsOfPrimitivechar.jdo    |  202 -
 .../tck/pc/fieldtypes/FieldsOfPrimitivedouble.jdo  |  202 -
 .../tck/pc/fieldtypes/FieldsOfPrimitivefloat.jdo   |  202 -
 .../jdo/tck/pc/fieldtypes/FieldsOfPrimitiveint.jdo |  202 -
 .../tck/pc/fieldtypes/FieldsOfPrimitivelong.jdo    |  202 -
 .../tck/pc/fieldtypes/FieldsOfPrimitiveshort.jdo   |  202 -
 .../apache/jdo/tck/pc/fieldtypes/FieldsOfShort.jdo |  202 -
 .../jdo/tck/pc/fieldtypes/FieldsOfSimpleClass.jdo  |  202 -
 .../tck/pc/fieldtypes/FieldsOfSimpleInterface.jdo  |  202 -
 .../jdo/tck/pc/fieldtypes/FieldsOfString.jdo       |  202 -
 .../pc/fieldtypes/HashMapStringKeyCollections.jdo  |  514 ---
 .../fieldtypes/HashMapStringValueCollections.jdo   |  478 --
 .../jdo/tck/pc/fieldtypes/HashSetCollections.jdo   |  178 -
 .../fieldtypes/HashtableStringKeyCollections.jdo   |  514 ---
 .../fieldtypes/HashtableStringValueCollections.jdo |  478 --
 .../tck/pc/fieldtypes/LinkedListCollections.jdo    |  178 -
 .../jdo/tck/pc/fieldtypes/ListCollections.jdo      |  178 -
 .../tck/pc/fieldtypes/MapStringKeyCollections.jdo  |  514 ---
 .../pc/fieldtypes/MapStringValueCollections.jdo    |  478 --
 .../jdo/tck/pc/fieldtypes/SetCollections.jdo       |  178 -
 .../apache/jdo/tck/pc/fieldtypes/SimpleClass.jdo   |   10 -
 .../pc/fieldtypes/TreeMapStringKeyCollections.jdo  |  514 ---
 .../fieldtypes/TreeMapStringValueCollections.jdo   |  478 --
 .../jdo/tck/pc/fieldtypes/TreeSetCollections.jdo   |  166 -
 .../jdo/tck/pc/fieldtypes/VectorCollections.jdo    |  178 -
 .../jdo/tck/pc/inheritance/jdoTest.properties      |  101 -
 .../org/apache/jdo/tck/pc/inheritance/package.jdo  |  133 -
 .../tck/pc/instancecallbacks/jdoTest.properties    |   49 -
 .../jdo/tck/pc/instancecallbacks/package.jdo       |   26 -
 .../jdo/tck/pc/lifecycle/StateTransitionObj.jdo    |    9 -
 .../org/apache/jdo/tck/pc/mylib/package.jdo        |   63 -
 .../apache/jdo/tck/pc/company/jdoTest.properties   |   98 -
 .../org/apache/jdo/tck/pc/company/package.jdo      |   71 -
 .../org/apache/jdo/tck/pc/fieldtypes/AllTypes.jdo  |    7 -
 .../jdo/tck/pc/fieldtypes/ArrayCollections.jdo     |  120 -
 .../jdo/tck/pc/fieldtypes/ArrayListCollections.jdo |  176 -
 .../tck/pc/fieldtypes/CollectionCollections.jdo    |  176 -
 .../jdo/tck/pc/fieldtypes/FieldsOfBigDecimal.jdo   |  200 -
 .../jdo/tck/pc/fieldtypes/FieldsOfBigInteger.jdo   |  200 -
 .../jdo/tck/pc/fieldtypes/FieldsOfBoolean.jdo      |  200 -
 .../apache/jdo/tck/pc/fieldtypes/FieldsOfByte.jdo  |  200 -
 .../jdo/tck/pc/fieldtypes/FieldsOfCharacter.jdo    |  200 -
 .../apache/jdo/tck/pc/fieldtypes/FieldsOfDate.jdo  |  200 -
 .../jdo/tck/pc/fieldtypes/FieldsOfDouble.jdo       |  200 -
 .../apache/jdo/tck/pc/fieldtypes/FieldsOfFloat.jdo |  200 -
 .../jdo/tck/pc/fieldtypes/FieldsOfInteger.jdo      |  200 -
 .../jdo/tck/pc/fieldtypes/FieldsOfLocale.jdo       |  200 -
 .../apache/jdo/tck/pc/fieldtypes/FieldsOfLong.jdo  |  200 -
 .../jdo/tck/pc/fieldtypes/FieldsOfObject.jdo       |  200 -
 .../tck/pc/fieldtypes/FieldsOfPrimitiveboolean.jdo |  200 -
 .../tck/pc/fieldtypes/FieldsOfPrimitivebyte.jdo    |  200 -
 .../tck/pc/fieldtypes/FieldsOfPrimitivechar.jdo    |  200 -
 .../tck/pc/fieldtypes/FieldsOfPrimitivedouble.jdo  |  200 -
 .../tck/pc/fieldtypes/FieldsOfPrimitivefloat.jdo   |  200 -
 .../jdo/tck/pc/fieldtypes/FieldsOfPrimitiveint.jdo |  200 -
 .../tck/pc/fieldtypes/FieldsOfPrimitivelong.jdo    |  200 -
 .../tck/pc/fieldtypes/FieldsOfPrimitiveshort.jdo   |  200 -
 .../apache/jdo/tck/pc/fieldtypes/FieldsOfShort.jdo |  200 -
 .../jdo/tck/pc/fieldtypes/FieldsOfSimpleClass.jdo  |  200 -
 .../tck/pc/fieldtypes/FieldsOfSimpleInterface.jdo  |  200 -
 .../jdo/tck/pc/fieldtypes/FieldsOfString.jdo       |  200 -
 .../pc/fieldtypes/HashMapStringKeyCollections.jdo  |  512 ---
 .../fieldtypes/HashMapStringValueCollections.jdo   |  476 --
 .../jdo/tck/pc/fieldtypes/HashSetCollections.jdo   |  176 -
 .../fieldtypes/HashtableStringKeyCollections.jdo   |  512 ---
 .../fieldtypes/HashtableStringValueCollections.jdo |  476 --
 .../tck/pc/fieldtypes/LinkedListCollections.jdo    |  176 -
 .../jdo/tck/pc/fieldtypes/ListCollections.jdo      |  176 -
 .../tck/pc/fieldtypes/MapStringKeyCollections.jdo  |  512 ---
 .../pc/fieldtypes/MapStringValueCollections.jdo    |  476 --
 .../jdo/tck/pc/fieldtypes/SetCollections.jdo       |  176 -
 .../apache/jdo/tck/pc/fieldtypes/SimpleClass.jdo   |    8 -
 .../pc/fieldtypes/TreeMapStringKeyCollections.jdo  |  512 ---
 .../fieldtypes/TreeMapStringValueCollections.jdo   |  476 --
 .../jdo/tck/pc/fieldtypes/TreeSetCollections.jdo   |  164 -
 .../jdo/tck/pc/fieldtypes/VectorCollections.jdo    |  176 -
 .../jdo/tck/pc/inheritance/jdoTest.properties      |  101 -
 .../org/apache/jdo/tck/pc/inheritance/package.jdo  |  125 -
 .../tck/pc/instancecallbacks/jdoTest.properties    |   49 -
 .../jdo/tck/pc/instancecallbacks/package.jdo       |   22 -
 .../jdo/tck/pc/lifecycle/StateTransitionObj.jdo    |    9 -
 .../org/apache/jdo/tck/pc/mylib/package.jdo        |   57 -
 1730 files changed, 363168 deletions(-)

diff --git a/api11/LICENSE.txt b/api11/LICENSE.txt
deleted file mode 100644
index d645695..0000000
--- a/api11/LICENSE.txt
+++ /dev/null
@@ -1,202 +0,0 @@
-
-                                 Apache License
-                           Version 2.0, January 2004
-                        http://www.apache.org/licenses/
-
-   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
-   1. Definitions.
-
-      "License" shall mean the terms and conditions for use, reproduction,
-      and distribution as defined by Sections 1 through 9 of this document.
-
-      "Licensor" shall mean the copyright owner or entity authorized by
-      the copyright owner that is granting the License.
-
-      "Legal Entity" shall mean the union of the acting entity and all
-      other entities that control, are controlled by, or are under common
-      control with that entity. For the purposes of this definition,
-      "control" means (i) the power, direct or indirect, to cause the
-      direction or management of such entity, whether by contract or
-      otherwise, or (ii) ownership of fifty percent (50%) or more of the
-      outstanding shares, or (iii) beneficial ownership of such entity.
-
-      "You" (or "Your") shall mean an individual or Legal Entity
-      exercising permissions granted by this License.
-
-      "Source" form shall mean the preferred form for making modifications,
-      including but not limited to software source code, documentation
-      source, and configuration files.
-
-      "Object" form shall mean any form resulting from mechanical
-      transformation or translation of a Source form, including but
-      not limited to compiled object code, generated documentation,
-      and conversions to other media types.
-
-      "Work" shall mean the work of authorship, whether in Source or
-      Object form, made available under the License, as indicated by a
-      copyright notice that is included in or attached to the work
-      (an example is provided in the Appendix below).
-
-      "Derivative Works" shall mean any work, whether in Source or Object
-      form, that is based on (or derived from) the Work and for which the
-      editorial revisions, annotations, elaborations, or other modifications
-      represent, as a whole, an original work of authorship. For the purposes
-      of this License, Derivative Works shall not include works that remain
-      separable from, or merely link (or bind by name) to the interfaces of,
-      the Work and Derivative Works thereof.
-
-      "Contribution" shall mean any work of authorship, including
-      the original version of the Work and any modifications or additions
-      to that Work or Derivative Works thereof, that is intentionally
-      submitted to Licensor for inclusion in the Work by the copyright owner
-      or by an individual or Legal Entity authorized to submit on behalf of
-      the copyright owner. For the purposes of this definition, "submitted"
-      means any form of electronic, verbal, or written communication sent
-      to the Licensor or its representatives, including but not limited to
-      communication on electronic mailing lists, source code control systems,
-      and issue tracking systems that are managed by, or on behalf of, the
-      Licensor for the purpose of discussing and improving the Work, but
-      excluding communication that is conspicuously marked or otherwise
-      designated in writing by the copyright owner as "Not a Contribution."
-
-      "Contributor" shall mean Licensor and any individual or Legal Entity
-      on behalf of whom a Contribution has been received by Licensor and
-      subsequently incorporated within the Work.
-
-   2. Grant of Copyright License. Subject to the terms and conditions of
-      this License, each Contributor hereby grants to You a perpetual,
-      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
-      copyright license to reproduce, prepare Derivative Works of,
-      publicly display, publicly perform, sublicense, and distribute the
-      Work and such Derivative Works in Source or Object form.
-
-   3. Grant of Patent License. Subject to the terms and conditions of
-      this License, each Contributor hereby grants to You a perpetual,
-      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
-      (except as stated in this section) patent license to make, have made,
-      use, offer to sell, sell, import, and otherwise transfer the Work,
-      where such license applies only to those patent claims licensable
-      by such Contributor that are necessarily infringed by their
-      Contribution(s) alone or by combination of their Contribution(s)
-      with the Work to which such Contribution(s) was submitted. If You
-      institute patent litigation against any entity (including a
-      cross-claim or counterclaim in a lawsuit) alleging that the Work
-      or a Contribution incorporated within the Work constitutes direct
-      or contributory patent infringement, then any patent licenses
-      granted to You under this License for that Work shall terminate
-      as of the date such litigation is filed.
-
-   4. Redistribution. You may reproduce and distribute copies of the
-      Work or Derivative Works thereof in any medium, with or without
-      modifications, and in Source or Object form, provided that You
-      meet the following conditions:
-
-      (a) You must give any other recipients of the Work or
-          Derivative Works a copy of this License; and
-
-      (b) You must cause any modified files to carry prominent notices
-          stating that You changed the files; and
-
-      (c) You must retain, in the Source form of any Derivative Works
-          that You distribute, all copyright, patent, trademark, and
-          attribution notices from the Source form of the Work,
-          excluding those notices that do not pertain to any part of
-          the Derivative Works; and
-
-      (d) If the Work includes a "NOTICE" text file as part of its
-          distribution, then any Derivative Works that You distribute must
-          include a readable copy of the attribution notices contained
-          within such NOTICE file, excluding those notices that do not
-          pertain to any part of the Derivative Works, in at least one
-          of the following places: within a NOTICE text file distributed
-          as part of the Derivative Works; within the Source form or
-          documentation, if provided along with the Derivative Works; or,
-          within a display generated by the Derivative Works, if and
-          wherever such third-party notices normally appear. The contents
-          of the NOTICE file are for informational purposes only and
-          do not modify the License. You may add Your own attribution
-          notices within Derivative Works that You distribute, alongside
-          or as an addendum to the NOTICE text from the Work, provided
-          that such additional attribution notices cannot be construed
-          as modifying the License.
-
-      You may add Your own copyright statement to Your modifications and
-      may provide additional or different license terms and conditions
-      for use, reproduction, or distribution of Your modifications, or
-      for any such Derivative Works as a whole, provided Your use,
-      reproduction, and distribution of the Work otherwise complies with
-      the conditions stated in this License.
-
-   5. Submission of Contributions. Unless You explicitly state otherwise,
-      any Contribution intentionally submitted for inclusion in the Work
-      by You to the Licensor shall be under the terms and conditions of
-      this License, without any additional terms or conditions.
-      Notwithstanding the above, nothing herein shall supersede or modify
-      the terms of any separate license agreement you may have executed
-      with Licensor regarding such Contributions.
-
-   6. Trademarks. This License does not grant permission to use the trade
-      names, trademarks, service marks, or product names of the Licensor,
-      except as required for reasonable and customary use in describing the
-      origin of the Work and reproducing the content of the NOTICE file.
-
-   7. Disclaimer of Warranty. Unless required by applicable law or
-      agreed to in writing, Licensor provides the Work (and each
-      Contributor provides its Contributions) on an "AS IS" BASIS,
-      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
-      implied, including, without limitation, any warranties or conditions
-      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
-      PARTICULAR PURPOSE. You are solely responsible for determining the
-      appropriateness of using or redistributing the Work and assume any
-      risks associated with Your exercise of permissions under this License.
-
-   8. Limitation of Liability. In no event and under no legal theory,
-      whether in tort (including negligence), contract, or otherwise,
-      unless required by applicable law (such as deliberate and grossly
-      negligent acts) or agreed to in writing, shall any Contributor be
-      liable to You for damages, including any direct, indirect, special,
-      incidental, or consequential damages of any character arising as a
-      result of this License or out of the use or inability to use the
-      Work (including but not limited to damages for loss of goodwill,
-      work stoppage, computer failure or malfunction, or any and all
-      other commercial damages or losses), even if such Contributor
-      has been advised of the possibility of such damages.
-
-   9. Accepting Warranty or Additional Liability. While redistributing
-      the Work or Derivative Works thereof, You may choose to offer,
-      and charge a fee for, acceptance of support, warranty, indemnity,
-      or other liability obligations and/or rights consistent with this
-      License. However, in accepting such obligations, You may act only
-      on Your own behalf and on Your sole responsibility, not on behalf
-      of any other Contributor, and only if You agree to indemnify,
-      defend, and hold each Contributor harmless for any liability
-      incurred by, or claims asserted against, such Contributor by reason
-      of your accepting any such warranty or additional liability.
-
-   END OF TERMS AND CONDITIONS
-
-   APPENDIX: How to apply the Apache License to your work.
-
-      To apply the Apache License to your work, attach the following
-      boilerplate notice, with the fields enclosed by brackets "[]"
-      replaced with your own identifying information. (Don't include
-      the brackets!)  The text should be enclosed in the appropriate
-      comment syntax for the file format. We also recommend that a
-      file or class name and description of purpose be included on the
-      same "printed page" as the copyright notice for easier
-      identification within third-party archives.
-
-   Copyright [yyyy] [name of copyright owner]
-
-   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.
diff --git a/api11/maven.xml b/api11/maven.xml
deleted file mode 100644
index c0f77c7..0000000
--- a/api11/maven.xml
+++ /dev/null
@@ -1,50 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-
-    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.
-
--->
-
-<project default="default"
-    xmlns:j="jelly:core"
-    xmlns:ant="jelly:ant"
-    >
-
-    <!-- ==================== -->
-    <!-- Default Global Goals -->
-    <!-- ==================== -->
-
-    <goal name="default">
-        <attainGoal name="jar:install"/>
-    </goal>
-
-    <goal name="build">
-        <attainGoal name="javadoc"/>
-        <attainGoal name="default"/>
-    </goal>
-
-    <goal name="rebuild">
-        <attainGoal name="clean"/>
-        <attainGoal name="build"/>
-    </goal>
-
-    <goal name="clobber">
-        <attainGoal name="clean"/>
-        <delete>
-            <fileset dir="." defaultexcludes="no" includes="**/*~"/>
-        </delete>
-    </goal>
-
-</project>
diff --git a/api11/project.properties b/api11/project.properties
deleted file mode 100644
index 12448c7..0000000
--- a/api11/project.properties
+++ /dev/null
@@ -1,19 +0,0 @@
-#
-#   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.
-#
-
-# Make sure the API classes support J2SE 1.3 applications
-maven.compile.source = 1.3
-maven.compile.target = 1.3
diff --git a/api11/project.xml b/api11/project.xml
deleted file mode 100644
index 196b1e2..0000000
--- a/api11/project.xml
+++ /dev/null
@@ -1,78 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-    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.
--->
-
-<project>
-    <pomVersion>3</pomVersion>
-    <extend>../project.xml</extend>
-    <!-- ============== -->
-    <!-- Identification -->
-    <!-- ============== -->
-    <name>JDO1 API</name>
-    <groupId>javax.jdo</groupId>
-    <artifactId>jdo1-api</artifactId>
-    <currentVersion>SNAPSHOT</currentVersion>
-    <package>javax.jdo</package>
-    <shortDescription>Java Data Object (JDO) API</shortDescription>
-    <description>The Java Data Objects (JDO) API is a standard interface-based 
-Java model abstraction of persistence, developed as Java Specification 
-Request 12 under the auspices of the Java Community Process.</description>
-    <repository />
-    <!-- ============ -->
-    <!-- Dependencies -->
-    <!-- ============ -->
-    <dependencies>
-        <dependency>
-            <groupId>geronimo-spec</groupId>
-            <artifactId>geronimo-spec-jta</artifactId>
-            <version>1.0.1B-rc2</version>
-        </dependency>
-    </dependencies>
-    <!-- =================== -->
-    <!-- Build Specification -->
-    <!-- =================== -->
-    <build>
-        <sourceDirectory>src/java</sourceDirectory>
-        <unitTestSourceDirectory>test/java</unitTestSourceDirectory>
-        <!-- Unit test cases -->
-        <unitTest>
-            <includes>
-                <include>**/*Test.java</include>
-            </includes>
-            <excludes>
-                <exclude>javax/jdo/util/AbstractTest.java</exclude>
-                <exclude>javax/jdo/pc/*.java</exclude>
-            </excludes>
-        </unitTest>
-        <!-- J A R  R E S O U R C E S -->
-        <!-- Resources that are packaged up inside the JAR file -->
-        <resources>
-            <resource>
-                <directory>${basedir}/src/java</directory>
-                <includes>
-                    <include>javax/jdo/*.properties</include>
-                </includes>
-            </resource>
-            <resource>
-                <directory>${basedir}/src/dtd</directory>
-                <includes>
-                    <include>javax/jdo/*.dtd</include>
-                </includes>
-            </resource>
-        </resources>
-    </build>
-</project>
-
diff --git a/api11/src/dtd/javax/jdo/jdo.dtd b/api11/src/dtd/javax/jdo/jdo.dtd
deleted file mode 100644
index ededae8..0000000
--- a/api11/src/dtd/javax/jdo/jdo.dtd
+++ /dev/null
@@ -1,95 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<!--
- 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.
--->
-<!--
-
-This is the DTD defining the Java Data Objects 1.0 metadata.
-
-The metadata must declare all persistence-capable classes. If any 
-field declarations are not provided in the metadata, then field 
-metadata is defaulted for the missing field declarations. 
-Therefore, the JDO implementation is able to determine based on the
-metadata whether a class is persistence-capable or not. 
-Any class not known to be persistence-capable by the JDO 
-specification (for example, java.lang.Integer) and not explicitly 
-named in the metadata is not persistence-capable. 
-
-The metadata associated with each persistence capable class must 
-be contained within a file, and its format is as defined in the DTD. 
-If the metadata is for only one class, then its file name should be 
-<class-name>.jdo. If the metadata is for a package, then its file name 
-should be <package-name>.jdo. For portability, files should be 
-available via resources loaded by the same class loader as the class. 
-These rules apply both to enhancement and to runtime.
-
-The metadata is used both at enhancement time and at runtime. 
-Information required at enhancement time is a subset of the information 
-needed at runtime. 
-
--->
-
-<!NOTATION JDO.1_0 PUBLIC
-          "-//Sun Microsystems, Inc.//DTD Java Data Objects Metadata 1.0//EN">
-<!--
-This is the XML DTD for the JDO 1.0 Metadata.
-All JDO 1.0 metadata descriptors must include a DOCTYPE
-of the following form:
-
-  <!DOCTYPE jdo
-    PUBLIC "-//Sun Microsystems, Inc.//DTD Java Data Objects Metadata 1.0//EN"
-    "http://java.sun.com/dtd/jdo_1_0.dtd">
-
--->
-
-<!ELEMENT jdo ((package)+, (extension)*)>
-
-<!ELEMENT package ((class)+, (extension)*)>
-<!ATTLIST package name CDATA #REQUIRED>
-
-<!ELEMENT class (field|extension)*>
-<!ATTLIST class name CDATA #REQUIRED>
-<!ATTLIST class identity-type (application|datastore|nondurable) #IMPLIED>
-<!ATTLIST class objectid-class CDATA #IMPLIED>
-<!ATTLIST class requires-extent (true|false) 'true'>
-<!ATTLIST class persistence-capable-superclass CDATA #IMPLIED>
-
-<!ELEMENT field ((collection|map|array)?, (extension)*)?>
-<!ATTLIST field name CDATA #REQUIRED>
-<!ATTLIST field persistence-modifier (persistent|transactional|none) #IMPLIED>
-<!ATTLIST field primary-key (true|false) 'false'>
-<!ATTLIST field null-value (exception|default|none) 'none'>
-<!ATTLIST field default-fetch-group (true|false) #IMPLIED>
-<!ATTLIST field embedded (true|false) #IMPLIED>
-
-<!ELEMENT collection (extension)*>
-<!ATTLIST collection element-type CDATA #IMPLIED>
-<!ATTLIST collection embedded-element (true|false) #IMPLIED>
-
-<!ELEMENT map (extension)*>
-<!ATTLIST map key-type CDATA #IMPLIED>
-<!ATTLIST map embedded-key (true|false) #IMPLIED>
-<!ATTLIST map value-type CDATA #IMPLIED>
-<!ATTLIST map embedded-value (true|false) #IMPLIED>
-
-<!ELEMENT array (extension)*>
-<!ATTLIST array embedded-element (true|false) #IMPLIED>
-
-<!ELEMENT extension (extension)*>
-<!ATTLIST extension vendor-name CDATA #REQUIRED>
-<!ATTLIST extension key CDATA #IMPLIED>
-<!ATTLIST extension value CDATA #IMPLIED>
-
diff --git a/api11/src/java/javax/jdo/Bundle.properties b/api11/src/java/javax/jdo/Bundle.properties
deleted file mode 100644
index 8199752..0000000
--- a/api11/src/java/javax/jdo/Bundle.properties
+++ /dev/null
@@ -1,34 +0,0 @@
-#
-# 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.
-
-# ResourceBundle properties file for JDO
-ERR_AbstractClassNoIdentity=Abstract class {0} does not implement key field helper methods
-ERR_CannotInitCause=The initCause method cannot be used. To set the cause of this exception, \
-use a constructor with a Throwable[] argument.
-ERR_StateManagerClassCast=An element of the parameter collection is of class {0}.  \
-The parameter collection must contain only elements that are instances of java.lang.Class.
-ERR_NoMetadata=No metadata has been registered for class {0}.
-ERR_NoSuchMethod=Method getPersistenceManagerFactory(Properties) does not exist or is not public
-ERR_UnexpectedException=Unexpected exception caught
-EXC_ClassNotFound=Class {0} was not found
-EXC_IllegalAccess=Illegal Access for class {0} 
-EXC_NoClassNameProperty=A property named PersistenceManagerFactoryClass must be specified.
-EXC_getPersistenceManagerFactory=Exception thrown by getPersistenceManagerFactory(Properties)
-MSG_FailedObject=FailedObject:
-MSG_NestedThrowables=NestedThrowables:
-MSG_NestedThrowablesStackTrace=NestedThrowablesStackTrace:
-MSG_ExceptionGettingFailedToString=Exception getting failed.toString(): ''{0}''.
-MSG_ExceptionGettingFailedToStringObjectId=Exception getting failed.toString(): ''{0}''. ObjectId of failed instance: ''{1}''. 
-ERR_NullClass=JDO implementation error: the parameter class object must not be null.
diff --git a/api11/src/java/javax/jdo/Extent.java b/api11/src/java/javax/jdo/Extent.java
deleted file mode 100644
index 08685a7..0000000
--- a/api11/src/java/javax/jdo/Extent.java
+++ /dev/null
@@ -1,85 +0,0 @@
-/*
- * 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.
- */
-
-/*
- * Extent.java
- *
- * Created on December 8, 2000, 3:06 PM
- */
-
-package javax.jdo;
-
-import java.util.Iterator;
-
-/** Instances of the <code>Extent</code> class represent the entire collection
- * of instances in the data store of the candidate class
- * possibly including its subclasses.
- * <P>The <code>Extent</code> instance has two possible uses:
- * <ol>
- * <li>to iterate all instances of a particular class 
- * <li>to execute a <code>Query</code> in the data store over all instances
- * of a particular class
- * </ol>
- * @author Craig Russell
- * @version 1.0
- */
-public interface Extent {
-        
-    /** Returns an iterator over all the instances in the <code>Extent</code>.
-     * The behavior of the returned iterator might depend on the setting of the
-     * <code>ignoreCache</code> flag in the owning <code>PersistenceManager</code>.
-     * @return an iterator over all instances in the <code>Extent</code>
-     */
-    Iterator iterator();
-
-    /** Returns whether this <code>Extent</code> was defined to contain subclasses.
-     * @return true if this <code>Extent</code> was defined to contain instances
-     * that are of a subclass type.
-     */    
-    boolean hasSubclasses();
-
-    /** An <code>Extent</code> contains all instances of a particular class in the data
-     * store; this method returns the <code>Class</code> of the instances.
-      * @return the <code>Class</code> of instances of this <code>Extent</code>.
-      */
-    Class getCandidateClass();
-
-    /** An <code>Extent</code> is managed by a <code>PersistenceManager</code>;
-     * this method gives access to the owning <code>PersistenceManager</code>.
-     * @return the owning <code>PersistenceManager</code>
-     */
-    PersistenceManager getPersistenceManager();
-    
-    /** Close all <code>Iterator</code>s associated with this <code>Extent</code> instance.
-     * <code>Iterator</code>s closed by this method will return <code>false</code>
-     * to <code>hasNext()</code> and will throw
-     * <code>NoSuchElementException</code> on <code>next()</code>.
-     * The <code>Extent</code> instance can still be used
-     * as a parameter of <code>Query.setExtent</code>, and to get an <code>Iterator</code>.
-     */    
-    void closeAll ();
-    
-    /** Close an <code>Iterator</code> associated with this <code>Extent</code> instance.
-     * <code>Iterator</code>s closed by this method will return <code>false</code>
-     * to <code>hasNext()</code> and will throw <code>NoSuchElementException</code>
-     * on <code>next()</code>. The <code>Extent</code> instance can still be used
-     * as a parameter of <code>Query.setExtent</code>, and to get an <code>Iterator</code>.
-     * @param it an <code>Iterator</code> obtained by the method
-     * <code>iterator()</code> on this <code>Extent</code> instance.
-     */    
-    void close (Iterator it);
-}
-
diff --git a/api11/src/java/javax/jdo/InstanceCallbacks.java b/api11/src/java/javax/jdo/InstanceCallbacks.java
deleted file mode 100644
index 0bebc75..0000000
--- a/api11/src/java/javax/jdo/InstanceCallbacks.java
+++ /dev/null
@@ -1,107 +0,0 @@
-/*
- * 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.
- */
-
-/*
- * InstanceCallbacks.java
- *
- * Created on February 25, 2000
- */
- 
-package javax.jdo;
-
-/** A <code>PersistenceCapable</code> class that provides callback methods for life
- * cycle events implements this interface.
- *
- * <P>Classes which include non-persistent fields whose values depend
- * on the values of persistent fields require callbacks on specific
- * JDO instance life cycle events in order to correctly populate the
- * values in these fields.
- *
- * <P>This interface defines the methods executed
- * by the <code>PersistenceManager</code> for these life cycle events.  If the class
- * implements <code>InstanceCallbacks</code>, it must explicitly declare it in the
- * class definition.  
- *
- * <P>The callbacks might also be used if the persistent instances
- * need to be put into the runtime infrastructure of the application.
- * For example, a persistent instance might notify other instances
- * on changes to state.  The persistent instance is in a list of
- * managed instances, and when the persistent instance is made hollow,
- * it can no longer generate change events, and the persistent
- * instance should be removed from the list of managed instances.
- *
- * <P>To implement this, the application programmer would implement
- * the <code>jdoPostLoad</code> callback to put itself into the list of managed
- * instances; and implement the <code>jdoPreClear</code> to remove itself from
- * the list.
- *
- * <P>Note that JDO does not manage the state of non-persistent
- * fields, and when a JDO instance transitions to hollow, JDO clears
- * the persistent fields.  It is the programmer's responsibility to
- * clear non-persistent fields so that garbage collection of
- * referred instances can occur.
- *
- * @author Craig Russell
- * @version 1.0
- */
-public interface InstanceCallbacks 
-{
-    /**
-     * Called after the values are loaded from the data store into
-     * this instance.
-     *
-     * <P>This method is not modified by the Reference Enhancer.
-     * <P>Derived fields should be initialized in this method.
-     * The context in which this call is made does not allow access to 
-     * other persistent JDO instances.
-     */
-    void jdoPostLoad();
-
-    /**
-     * Called before the values are stored from this instance to the
-     * data store.
-     *
-     * <P>Data store fields that might have been affected by modified
-     * non-persistent fields should be updated in this method.
-     *
-     * <P>This method is modified by the enhancer so that changes to 
-     * persistent fields will be reflected in the data store. 
-     * The context in which this call is made allows access to the 
-     * <code>PersistenceManager</code> and other persistent JDO instances.
-     */
-    void jdoPreStore();
-
-    /**
-     * Called before the values in the instance are cleared.
-     *
-     * <P>Transient fields should be cleared in this method.  
-     * Associations between this
-     * instance and others in the runtime environment should be cleared.
-     *
-     * <P>This method is not modified by the enhancer.
-     */
-    void jdoPreClear();
-
-    /**
-     * Called before the instance is deleted.
-     * This method is called before the state transition to persistent-deleted 
-     * or persistent-new-deleted. Access to field values within this call 
-     * are valid. Access to field values after this call are disallowed. 
-     * <P>This method is modified by the enhancer so that fields referenced 
-     * can be used in the business logic of the method.
-     */
-    void jdoPreDelete();
-}
diff --git a/api11/src/java/javax/jdo/JDOCanRetryException.java b/api11/src/java/javax/jdo/JDOCanRetryException.java
deleted file mode 100644
index be96789..0000000
--- a/api11/src/java/javax/jdo/JDOCanRetryException.java
+++ /dev/null
@@ -1,96 +0,0 @@
-/*
- * 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.
- */
-
-/*
- * JDOCanRetryException.java
- *
- * Created on March 8, 2000, 8:32 AM
- */
-
-package javax.jdo;
-
-/** This is the base class for exceptions that can be retried.
- *
- * @author  Craig Russell
- * @version 1.0
- */
-public class JDOCanRetryException extends JDOException {
-
-  /**
-   * Constructs a new <code>JDOCanRetryException</code> without a detail message.
-   */
-  public JDOCanRetryException() {
-  }
-  
-
-  /**
-   * Constructs a new <code>JDOCanRetryException</code> with the specified detail message.
-   * @param msg the detail message.
-   */
-  public JDOCanRetryException(String msg) {
-    super(msg);
-  }
-
-  /**
-   * Constructs a new <code>JDOCanRetryException</code> with the specified detail
-   * message and nested <code>Throwable</code>s.
-   * @param msg the detail message.
-   * @param nested the nested <code>Throwable[]</code>.
-   */
-  public JDOCanRetryException(String msg, Throwable[] nested) {
-    super(msg, nested);
-  }
-  
-  /**
-   * Constructs a new <code>JDOCanRetryException</code> with the specified detail
-   * message and nested <code>Throwable<code>s.
-   * @param msg the detail message.
-   * @param nested the nested <code>Throwable</code>.
-   */
-  public JDOCanRetryException(String msg, Throwable nested) {
-    super(msg, nested);
-  }
-  
-  /** Constructs a new <code>JDOCanRetryException</code> with the specified detail message
-   * and failed object.
-   * @param msg the detail message.
-   * @param failed the failed object.
-   */
-  public JDOCanRetryException(String msg, Object failed) {
-    super(msg, failed);
-  }
-  
-  /** Constructs a new <code>JDOCanRetryException</code> with the specified detail message,
-   * nested <code>Throwable</code>s, and failed object.
-   * @param msg the detail message.
-   * @param nested the nested <code>Throwable[]</code>.
-   * @param failed the failed object.
-   */
-  public JDOCanRetryException(String msg, Throwable[] nested, Object failed) {
-    super(msg, nested, failed);
-    
-  }
-  /** Constructs a new <code>JDOCanRetryException</code> with the specified detail message,
-   * nested <code>Throwable</code>s, and failed object.
-   * @param msg the detail message.
-   * @param nested the nested <code>Throwable</code>.
-   * @param failed the failed object.
-   */
-  public JDOCanRetryException(String msg, Throwable nested, Object failed) {
-    super(msg, nested, failed);
-  }
-}
-
diff --git a/api11/src/java/javax/jdo/JDODataStoreException.java b/api11/src/java/javax/jdo/JDODataStoreException.java
deleted file mode 100644
index 94c4252..0000000
--- a/api11/src/java/javax/jdo/JDODataStoreException.java
+++ /dev/null
@@ -1,97 +0,0 @@
-/*
- * 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.
- */
-
-/*
- * JDODataStoreException.java
- *
- * Created on March 8, 2000, 8:37 AM
- */
-
-package javax.jdo;
-
-/** This class represents data store exceptions that can be retried.
- *
- * @author  Craig Russell
- * @version 1.0
- */
-public class JDODataStoreException extends JDOCanRetryException {
-
-  /**
-   * Constructs a new <code>JDODataStoreException</code> without a detail message.
-   */
-  public JDODataStoreException() {
-  }
-  
-
-  /**
-   * Constructs a new <code>JDODataStoreException</code> with the specified detail message.
-   * @param msg the detail message.
-   */
-  public JDODataStoreException(String msg) {
-    super(msg);
-  }
-
-  /**
-   * Constructs a new <code>JDODataStoreException</code> with the specified 
-   * detail message and nested <code>Throwable</code>s.
-   * @param msg the detail message.
-   * @param nested the nested <code>Throwable[]</code>.
-   */
-  public JDODataStoreException(String msg, Throwable[] nested) {
-    super(msg, nested);
-  }
-
-  /**
-   * Constructs a new <code>JDODataStoreException</code> with the specified 
-   * detail message and nested <code>Throwable</code>s.
-   * @param msg the detail message.
-   * @param nested the nested <code>Throwable</code>.
-   */
-  public JDODataStoreException(String msg, Throwable nested) {
-    super(msg, nested);
-  }
-
-  /** Constructs a new <code>JDODataStoreException</code> with the specified detail message
-   * and failed object.
-   * @param msg the detail message.
-   * @param failed the failed object.
-   */
-  public JDODataStoreException(String msg, Object failed) {
-    super(msg, failed);
-  }
- 
-  /** Constructs a new <code>JDODataStoreException</code> with the specified detail message,
-   * nested <code>Throwable</code>s, and failed object.
-   * @param msg the detail message.
-   * @param nested the nested <code>Throwable[]</code>.
-   * @param failed the failed object.
-   */
-  public JDODataStoreException(String msg, Throwable[] nested, Object failed) {
-    super(msg, nested, failed);
-  }
-
-  /** Constructs a new <code>JDODataStoreException</code> with the specified detail message,
-   * nested <code>Throwable</code>s, and failed object.
-   * @param msg the detail message.
-   * @param nested the nested <code>Throwable</code>.
-   * @param failed the failed object.
-   */
-  public JDODataStoreException(String msg, Throwable nested, Object failed) {
-    super(msg, nested, failed);
-  }
-
-}
-
diff --git a/api11/src/java/javax/jdo/JDOException.java b/api11/src/java/javax/jdo/JDOException.java
deleted file mode 100644
index 47267b8..0000000
--- a/api11/src/java/javax/jdo/JDOException.java
+++ /dev/null
@@ -1,296 +0,0 @@
-/*
- * 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.
- */
-
-/*
- * JDOException.java
- *
- * Created on March 8, 2000, 8:29 AM
- */
-
-package javax.jdo;
-
-import javax.jdo.spi.I18NHelper;
-
-/** This is the root of all JDO Exceptions.  It contains an optional detail
- * message, an optional nested <code>Throwable</code> array and an optional failed object.
- * @author Craig Russell
- * @version 1.0.2
- */
-public class JDOException extends java.lang.RuntimeException {
-  
-  /** This exception was generated because of an exception in the runtime library.
-   * @serial the nested <code>Throwable</code> array
-   */
-  Throwable[] nested;
-  
-  /** This exception may be the result of incorrect parameters supplied
-   * to an API.  This is the object from which the user can determine
-   * the cause of the problem.
-   * @serial the failed <code>Object</code>
-   */
-  Object failed;
-
-    /** The Internationalization message helper.
-     */
-    private static I18NHelper msg = I18NHelper.getInstance ("javax.jdo.Bundle"); //NOI18N
-
-    /** Flag indicating whether printStackTrace is being executed.
-     */
-    private boolean inPrintStackTrace = false;
-    
-  /**
-   * Constructs a new <code>JDOException</code> without a detail message.
-   */
-  public JDOException() {
-  }
-  
-
-  /**
-   * Constructs a new <code>JDOException</code> with the specified detail message.
-   * @param msg the detail message.
-   */
-  public JDOException(String msg) {
-    super(msg);
-  }
-
-  /** Constructs a new <code>JDOException</code> with the specified detail message
-   * and nested <code>Throwable</code>s.
-   * @param msg the detail message.
-   * @param nested the nested <code>Throwable[]</code>.
-   */
-  public JDOException(String msg, Throwable[] nested) {
-    super(msg);
-    this.nested = nested;
-  }
-  
-  /** Constructs a new <code>JDOException</code> with the specified detail message
-   * and nested <code>Throwable</code>.
-   * @param msg the detail message.
-   * @param nested the nested <code>Throwable</code>.
-   */
-  public JDOException(String msg, Throwable nested) {
-    super(msg);
-    this.nested = new Throwable[] {nested};
-  }
-  
-  /** Constructs a new <code>JDOException</code> with the specified detail message
-   * and failed object.
-   * @param msg the detail message.
-   * @param failed the failed object.
-   */
-  public JDOException(String msg, Object failed) {
-    super(msg);
-    this.failed = failed;
-  }
-  
-  /** Constructs a new <code>JDOException</code> with the specified detail message,
-   * nested <code>Throwable</code>s, and failed object.
-   * @param msg the detail message.
-   * @param nested the nested <code>Throwable[]</code>.
-   * @param failed the failed object.
-   */
-  public JDOException(String msg, Throwable[] nested, Object failed) {
-    super(msg);
-    this.nested = nested;
-    this.failed = failed;
-  }
-  
-  /** Constructs a new <code>JDOException</code> with the specified detail message,
-   * nested <code>Throwable</code>, and failed object.
-   * @param msg the detail message.
-   * @param nested the nested <code>Throwable</code>.
-   * @param failed the failed object.
-   */
-  public JDOException(String msg, Throwable nested, Object failed) {
-    super(msg);
-    this.nested = new Throwable[] {nested};
-    this.failed = failed;
-  }
-  
-  /** The exception may include a failed object.
-   * @return the failed object.
-   */
-  public Object getFailedObject() {
-    return failed;
-  }
-  
-  /** The exception may have been caused by multiple exceptions in the runtime.
-   * If multiple objects caused the problem, each failed object will have
-   * its own <code>Exception</code>.
-   * @return the nested Throwable array.
-   */
-  public Throwable[] getNestedExceptions() {
-    return nested;
-  }
-  
-  /** Often there is only one nested exception, and this method returns it.
-   * If there are more than one, then this method returns the first nested
-   * exception. If there is no nested exception, then null is returned.
-   * @return the first or only nested Throwable.
-   * @since 1.0.1
-   */
-  public synchronized Throwable getCause() {
-      // super.printStackTrace calls getCause to handle the cause. 
-      // Returning null prevents the superclass from handling the cause;
-      // instead the local implementation of printStackTrace should
-      // handle the cause. Otherwise, the cause is printed twice.
-      if (nested == null || nested.length == 0 || inPrintStackTrace) {
-          return null;
-      } else {
-          return nested[0];
-      }
-  }
-  
-  /** JDK 1.4 includes a new chaining mechanism for Throwable, but since
-   * JDO has its own "legacy" chaining mechanism, the "standard" mechanism
-   * cannot be used. This method always throws a JDOFatalInternalException.
-   * @param cause ignored.
-   * @return never.
-   */
-  public Throwable initCause(Throwable cause) {
-      throw new JDOFatalInternalException(msg.msg("ERR_CannotInitCause"));
-  }
-  
-  /** The <code>String</code> representation includes the name of the class,
-   * the descriptive comment (if any),
-   * the <code>String</code> representation of the failed <code>Object</code> (if any),
-   * and the <code>String</code> representation of the nested <code>Throwable</code>s (if any).
-   * @return the <code>String</code>.
-   */
-  public synchronized String toString() {
-    int len = nested==null?0:nested.length;
-    // calculate approximate size of the String to return
-    StringBuffer sb = new StringBuffer (10 + 100 * len);
-    sb.append (super.toString());
-    // include failed object information
-    if (failed != null) {
-        sb.append ("\n").append (msg.msg ("MSG_FailedObject"));
-      String failedToString = null;
-      try {
-          failedToString = failed.toString();
-      } catch (Exception ex) {
-          // include the information from the exception thrown by failed.toString
-          Object objectId = JDOHelper.getObjectId(failed);
-          if (objectId == null) {
-              failedToString = msg.msg("MSG_ExceptionGettingFailedToString", //NOI18N
-                                       exceptionToString(ex));
-          }
-          else {
-              // include the ObjectId information
-              String objectIdToString = null;
-              try {
-                  objectIdToString = objectId.toString();
-              }
-              catch (Exception ex2) {
-                  objectIdToString = exceptionToString(ex2);
-              }
-              failedToString = msg.msg("MSG_ExceptionGettingFailedToStringObjectId", //NOI18N
-                                       exceptionToString(ex), objectIdToString);
-          }
-      }
-      sb.append (failedToString);
-    }
-    // include nested Throwable information, but only if not called by
-    // printStackTrace; the stacktrace will include the cause anyway.
-    if (len > 0 && !inPrintStackTrace) {
-      sb.append ("\n").append (msg.msg ("MSG_NestedThrowables")).append ("\n");
-      Throwable exception = nested[0];
-      sb.append (exception==null?"null":exception.toString()); //NOI18N
-      for (int i=1; i<len; ++i) {
-        sb.append ("\n"); //NOI18N
-        exception = nested[i];
-      sb.append (exception==null?"null":exception.toString()); //NOI18N
-      }
-    }
-    return sb.toString();
-  }    
-  
-    /**
-     * Prints this <code>JDOException</code> and its backtrace to the 
-     * standard error output.
-     * Print nested Throwables' stack trace as well.
-     */
-    public void printStackTrace() { 
-        printStackTrace (System.err);
-    }
-
-    /**
-     * Prints this <code>JDOException</code> and its backtrace to the 
-     * specified print stream.
-     * Print nested Throwables' stack trace as well.
-     * @param s <code>PrintStream</code> to use for output
-     */
-    public synchronized void printStackTrace(java.io.PrintStream s) { 
-    int len = nested==null?0:nested.length;
-        synchronized (s) {
-            inPrintStackTrace = true;
-            super.printStackTrace(s);
-            if (len > 0) {
-                s.println (msg.msg ("MSG_NestedThrowablesStackTrace"));
-                for (int i=0; i<len; ++i) {
-                    Throwable exception = nested[i];
-                    if (exception != null) {
-                        exception.printStackTrace(s);
-                    }
-                }
-            }
-            inPrintStackTrace = false;
-        }
-    }
-
-    /**
-     * Prints this <code>JDOException</code> and its backtrace to the specified
-     * print writer.
-     * Print nested Throwables' stack trace as well.
-     * @param s <code>PrintWriter</code> to use for output
-     */
-    public synchronized void printStackTrace(java.io.PrintWriter s) { 
-    int len = nested==null?0:nested.length;
-        synchronized (s) {
-            inPrintStackTrace = true;
-            super.printStackTrace(s);
-            if (len > 0) {
-                s.println (msg.msg ("MSG_NestedThrowablesStackTrace"));
-                for (int i=0; i<len; ++i) {
-                    Throwable exception = nested[i];
-                    if (exception != null) {
-                        exception.printStackTrace(s);
-                    }
-                }
-            }
-            inPrintStackTrace = false;
-        }
-    }
-
-    /**
-     * Helper method returning a short description of the exception passed
-     * as an argument. The returned string has the format defined by
-     * Throwable.toString. If the exception has a non-null detail message 
-     * string, then it returns the name of exception class concatenated
-     * with ": " concatenated with the detailed message. Otherwise it
-     * returns the name of exception class.
-     * @param ex the exception to be represented.
-     * @return a string representation of the exception passed as an argument.
-     */
-    private static String exceptionToString(Exception ex)
-    {
-        if (ex == null) return null;
-        String s = ex.getClass().getName();
-        String message = ex.getMessage();
-        return (message != null) ? (s + ": " + message) : s;
-    }
-}
-
diff --git a/api11/src/java/javax/jdo/JDOFatalDataStoreException.java b/api11/src/java/javax/jdo/JDOFatalDataStoreException.java
deleted file mode 100644
index 367160b..0000000
--- a/api11/src/java/javax/jdo/JDOFatalDataStoreException.java
+++ /dev/null
@@ -1,76 +0,0 @@
-/*
- * 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.
- */
-
-/*
- * JDOFatalDataStoreException.java
- *
- * Created on March 8, 2000, 8:36 AM
- */
-
-package javax.jdo;
-
-/** This class represents data store exceptions that cannot be retried.
- *
- * @author  Craig Russell
- * @version 1.0.1
- */
-public class JDOFatalDataStoreException extends JDOFatalException {
-
-  /**
-   * Constructs a new <code>JDOFatalDataStoreException</code> without a detail message.
-   */
-  public JDOFatalDataStoreException() {
-  }
-  
-
-  /**
-   * Constructs a new <code>JDOFatalDataStoreException</code> with the specified detail message.
-   * @param msg the detail message.
-   */
-  public JDOFatalDataStoreException(String msg) {
-    super(msg);
-  }
-
-  /** Constructs a new <code>JDOFatalDataStoreException</code> with the specified detail message
-   * and failed object.
-   * @param msg the detail message.
-   * @param failed the failed object.
-   */
-  public JDOFatalDataStoreException(String msg, Object failed) {
-    super(msg, failed);
-  }
-  
-  /**
-   * Constructs a new <code>JDOFatalDataStoreException</code> with the specified
-   * detail message and nested <code>Throwable</code>s.
-   * @param msg the detail message.
-   * @param nested the nested <code>Throwable[]</code>.
-   */
-  public JDOFatalDataStoreException(String msg, Throwable[] nested) {
-    super(msg, nested);
-  }
-
-  /**
-   * Constructs a new <code>JDOFatalDataStoreException</code> with the specified
-   * detail message and nested <code>Throwable</code>s.
-   * @param msg the detail message.
-   * @param nested the nested <code>Throwable</code>.
-   */
-  public JDOFatalDataStoreException(String msg, Throwable nested) {
-    super(msg, nested);
-  }
-}
-
diff --git a/api11/src/java/javax/jdo/JDOFatalException.java b/api11/src/java/javax/jdo/JDOFatalException.java
deleted file mode 100644
index 885578e..0000000
--- a/api11/src/java/javax/jdo/JDOFatalException.java
+++ /dev/null
@@ -1,97 +0,0 @@
-/*
- * 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.
- */
-
-/*
- * JDOFatalException.java
- *
- * Created on March 8, 2000, 8:32 AM
- */
-
-package javax.jdo;
-
-/** This class represents exceptions that are fatal; that is, the condition
- * that caused it cannot be bypassed even if the operation is retried.
- *
- * @author  Craig Russell
- * @version 1.0
- */
-public class JDOFatalException extends JDOException {
-
-  /**
-   * Constructs a new <code>JDOFatalException</code> without a detail message.
-   */
-  public JDOFatalException() {
-  }
-  
-
-  /**
-   * Constructs a new <code>JDOFatalException</code> with the specified detail message.
-   * @param msg the detail message.
-   */
-  public JDOFatalException(String msg) {
-    super(msg);
-  }
-
-  /**
-   * Constructs a new <code>JDOFatalException</code> with the specified detail
-   * message and nested <code>Throwable</code>s.
-   * @param msg the detail message.
-   * @param nested the nested <code>Throwable[]</code>.
-   */
-  public JDOFatalException(String msg, Throwable[] nested) {
-    super(msg, nested);
-  }
-  
-  /**
-   * Constructs a new <code>JDOFatalException</code> with the specified detail
-   * message and nested <code>Throwable</code>s.
-   * @param msg the detail message.
-   * @param nested the nested <code>Throwable</code>.
-   */
-  public JDOFatalException(String msg, Throwable nested) {
-    super(msg, nested);
-  }
-  
-  /** Constructs a new <code>JDOFatalException</code> with the specified detail message
-   * and failed object.
-   * @param msg the detail message.
-   * @param failed the failed object.
-   */
-  public JDOFatalException(String msg, Object failed) {
-    super(msg, failed);
-  }
-  
-  /** Constructs a new <code>JDOFatalException</code> with the specified detail message,
-   * nested <code>Throwable</code>s, and failed object.
-   * @param msg the detail message.
-   * @param nested the nested <code>Throwable[]</code>.
-   * @param failed the failed object.
-   */
-  public JDOFatalException(String msg, Throwable[] nested, Object failed) {
-    super(msg, nested, failed);
-    
-  }
-  /** Constructs a new <code>JDOFatalException</code> with the specified detail message,
-   * nested <code>Throwable</code>s, and failed object.
-   * @param msg the detail message.
-   * @param nested the nested <code>Throwable</code>.
-   * @param failed the failed object.
-   */
-  public JDOFatalException(String msg, Throwable nested, Object failed) {
-    super(msg, nested, failed);
-  }
-}
-
diff --git a/api11/src/java/javax/jdo/JDOFatalInternalException.java b/api11/src/java/javax/jdo/JDOFatalInternalException.java
deleted file mode 100644
index e20682f..0000000
--- a/api11/src/java/javax/jdo/JDOFatalInternalException.java
+++ /dev/null
@@ -1,69 +0,0 @@
-/*
- * 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.
- */
-
-/*
- * JDOFatalInternalException.java
- *
- * Created on March 8, 2000, 8:35 AM
- */
-
-package javax.jdo;
-
-/** This class represents errors in the implementation for which no user
- * error handling is possible.  The error should be reported to the JDO
- * vendor for corrective action.
- *
- * @author  Craig Russell
- * @version 1.0
- */
-public class JDOFatalInternalException extends JDOFatalException {
-
-  /**
-   * Constructs a new <code>JDOFatalInternalException</code> without a detail message.
-   */
-  public JDOFatalInternalException() {
-  }
-  
-
-  /**
-   * Constructs a new <code>JDOFatalInternalException</code> with the specified detail message.
-   * @param msg the detail message.
-   */
-  public JDOFatalInternalException(String msg) {
-    super(msg);
-  }
-
-  /**
-   * Constructs a new <code>JDOFatalInternalException</code> with the specified
-   * detail message and nested <code>Throwable</code>s.
-   * @param msg the detail message.
-   * @param nested the nested <code>Throwable[]</code>.
-   */
-  public JDOFatalInternalException(String msg, Throwable[] nested) {
-    super(msg, nested);
-  }
-
-  /**
-   * Constructs a new <code>JDOFatalInternalException</code> with the specified
-   * detail message and nested <code>Throwable</code>s.
-   * @param msg the detail message.
-   * @param nested the nested <code>Throwable</code>.
-   */
-  public JDOFatalInternalException(String msg, Throwable nested) {
-    super(msg, nested);
-  }
-}
-
diff --git a/api11/src/java/javax/jdo/JDOFatalUserException.java b/api11/src/java/javax/jdo/JDOFatalUserException.java
deleted file mode 100644
index 3dc82f6..0000000
--- a/api11/src/java/javax/jdo/JDOFatalUserException.java
+++ /dev/null
@@ -1,96 +0,0 @@
-/*
- * 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.
- */
-
-/*
- * JDOUserException.java
- *
- * Created on March 8, 2000, 8:33 AM
- */
-
-package javax.jdo;
-
-/** This class represents user errors that cannot be retried.  
- *
- * @author  Craig Russell
- * @version 1.0
- */
-public class JDOFatalUserException extends JDOFatalException {
-
-  /**
-   * Constructs a new <code>JDOFatalUserException</code> without a detail message.
-   */
-  public JDOFatalUserException() {
-  }
-  
-
-  /**
-   * Constructs a new <code>JDOFatalUserException</code> with the specified detail message.
-   * @param msg the detail message.
-   */
-  public JDOFatalUserException(String msg) {
-    super(msg);
-  }
-
-  /**
-   * Constructs a new <code>JDOFatalUserException</code> with the specified
-   * detail message and nested <code>Throwable</code>s.
-   * @param msg the detail message.
-   * @param nested the nested <code>Throwable[]</code>.
-   */
-  public JDOFatalUserException(String msg, Throwable[] nested) {
-    super(msg, nested);
-  }
-  
-  /**
-   * Constructs a new <code>JDOFatalUserException</code> with the specified
-   * detail message and nested <code>Throwable</code>s.
-   * @param msg the detail message.
-   * @param nested the nested <code>Throwable</code>.
-   */
-  public JDOFatalUserException(String msg, Throwable nested) {
-    super(msg, nested);
-  }
-  
-  /** Constructs a new <code>JDOFatalUserException</code> with the specified
-   * detail message and failed object.
-   * @param msg the detail message.
-   * @param failed the failed object.
-   */
-  public JDOFatalUserException(String msg, Object failed) {
-    super(msg, failed);
-  }
-  
-  /** Constructs a new <code>JDOFatalUserException</code> with the specified
-   * detail message, nested <code>Throwable</code>s, and failed object.
-   * @param msg the detail message.
-   * @param nested the nested <code>Throwable[]</code>.
-   * @param failed the failed object.
-   */
-  public JDOFatalUserException(String msg, Throwable[] nested, Object failed) {
-    super(msg, nested, failed);
-  }
-  
-  /** Constructs a new <code>JDOFatalUserException</code> with the specified
-   * detail message, nested <code>Throwable</code>s, and failed object.
-   * @param msg the detail message.
-   * @param nested the nested <code>Throwable</code>.
-   * @param failed the failed object.
-   */
-  public JDOFatalUserException(String msg, Throwable nested, Object failed) {
-    super(msg, nested, failed);
-  }
-}
-
diff --git a/api11/src/java/javax/jdo/JDOHelper.java b/api11/src/java/javax/jdo/JDOHelper.java
deleted file mode 100644
index 9f08136..0000000
--- a/api11/src/java/javax/jdo/JDOHelper.java
+++ /dev/null
@@ -1,288 +0,0 @@
-/*
- * 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.
- */
-
-/*
- * JDOHelper.java
- *
- * Created on April 24, 2000, 9:09 AM
- */
- 
-package javax.jdo;
-
-import java.lang.reflect.Method;
-import java.lang.reflect.InvocationTargetException;
-
-import java.util.Properties;
-
-import javax.jdo.spi.I18NHelper;
-import javax.jdo.spi.PersistenceCapable;
-import javax.jdo.spi.StateManager; // for javadoc
-
-/**
- * This class can be used by a JDO-aware application to call the JDO behavior
- * of <code>PersistenceCapable</code> instances without declaring them to be
- * <code>PersistenceCapable</code>.
- * It is also used to acquire a <code>PersistenceManagerFactory</code> via a standard
- * <code>Properties</code> construction.
- * <P>Every class whose instances can be managed by a JDO <code>PersistenceManager</code> must
- * implement the <code>PersistenceCapable</code> interface.
- *
- * <P>This helper class defines static methods that allow a JDO-aware
- * application to examine the runtime state of instances.  For example,
- * an application can discover whether the instance is persistent, transactional,
- * dirty, new, or deleted; and to get its associated
- * <code>PersistenceManager</code> if it has one.
- * 
- * @author  Craig Russell
- * @version 1.0.2
- */
-public class JDOHelper extends Object {
-      
-    /** The Internationalization message helper.
-     */
-    private final static I18NHelper msg = I18NHelper.getInstance ("javax.jdo.Bundle"); //NOI18N
-
-    /** Return the associated <code>PersistenceManager</code> if there is one.
-     * Transactional and persistent instances return the associated
-     * <code>PersistenceManager</code>.  
-     *
-     * <P>Transient non-transactional instances and instances of classes 
-     * that do not implement <code>PersistenceCapable</code> return <code>null</code>.
-     * @see PersistenceCapable#jdoGetPersistenceManager()
-     * @param pc the <code>PersistenceCapable</code> instance.
-     * @return the <code>PersistenceManager</code> associated with the parameter instance.
-     */
-     public static PersistenceManager getPersistenceManager(Object pc) {
-        return pc instanceof PersistenceCapable?((PersistenceCapable)pc).jdoGetPersistenceManager():null;
-      }
-    
-    /** Explicitly mark the parameter instance and field dirty.
-     * Normally, <code>PersistenceCapable</code> classes are able to detect changes made
-     * to their fields.  However, if a reference to an array is given to a
-     * method outside the class, and the array is modified, then the
-     * persistent instance is not aware of the change.  This API allows the
-     * application to notify the instance that a change was made to a field.
-     *
-     * <P>Transient instances and instances of classes 
-     * that do not implement <code>PersistenceCapable</code> ignore this method.
-     * @see PersistenceCapable#jdoMakeDirty(String fieldName)
-     * @param pc the <code>PersistenceCapable</code> instance.
-     * @param fieldName the name of the field to be marked dirty.
-     */
-    public static void makeDirty(Object pc, String fieldName) {
-     if (pc instanceof PersistenceCapable) 
-      ((PersistenceCapable)pc).jdoMakeDirty(fieldName);
-    }
-    
-    /** Return a copy of the JDO identity associated with the parameter instance.
-     *
-     * <P>Persistent instances of <code>PersistenceCapable</code> classes have a JDO identity
-     * managed by the <code>PersistenceManager</code>.  This method returns a copy of the
-     * ObjectId that represents the JDO identity.  
-     * 
-     * <P>Transient instances and instances of classes 
-     * that do not implement <code>PersistenceCapable</code> return <code>null</code>.
-     *
-     * <P>The ObjectId may be serialized
-     * and later restored, and used with a <code>PersistenceManager</code> from the same JDO
-     * implementation to locate a persistent instance with the same data store
-     * identity.
-     *
-     * <P>If the JDO identity is managed by the application, then the ObjectId may
-     * be used with a <code>PersistenceManager</code> from any JDO implementation that supports
-     * the <code>PersistenceCapable</code> class.
-     *
-     * <P>If the JDO identity is not managed by the application or the data store,
-     * then the ObjectId returned is only valid within the current transaction.
-     *<P>
-     * @see PersistenceManager#getObjectId(Object pc)
-     * @see PersistenceCapable#jdoGetObjectId()
-     * @see PersistenceManager#getObjectById(Object oid, boolean validate)
-     * @param pc the PersistenceCapable instance.
-     * @return a copy of the ObjectId of the parameter instance as of the beginning of the transaction.
-     */
-    public static Object getObjectId(Object pc) {
-      return pc instanceof PersistenceCapable?((PersistenceCapable)pc).jdoGetObjectId():null;
-    }
-    
-    /** Return a copy of the JDO identity associated with the parameter instance.
-     *
-     * @see PersistenceCapable#jdoGetTransactionalObjectId()
-     * @see PersistenceManager#getObjectById(Object oid, boolean validate)
-     * @param pc the <code>PersistenceCapable</code> instance.
-     * @return a copy of the ObjectId of the parameter instance as modified in this transaction.
-     */
-    public static Object getTransactionalObjectId(Object pc) {
-      return pc instanceof PersistenceCapable?((PersistenceCapable)pc).jdoGetTransactionalObjectId():null;
-    }
-    
-    /** Tests whether the parameter instance is dirty.
-     *
-     * Instances that have been modified, deleted, or newly 
-     * made persistent in the current transaction return <code>true</code>.
-     *
-     *<P>Transient instances and instances of classes 
-     * that do not implement <code>PersistenceCapable</code> return <code>false</code>.
-     *<P>
-     * @see StateManager#makeDirty(PersistenceCapable pc, String fieldName)
-     * @see PersistenceCapable#jdoIsDirty()
-     * @param pc the <code>PersistenceCapable</code> instance.
-     * @return <code>true</code> if the parameter instance has been modified in the current transaction.
-     */
-    public static boolean isDirty(Object pc) {
-      return pc instanceof PersistenceCapable?((PersistenceCapable)pc).jdoIsDirty():false;
-    }
-
-    /** Tests whether the parameter instance is transactional.
-     *
-     * Instances whose state is associated with the current transaction 
-     * return true. 
-     *
-     *<P>Transient instances and instances of classes 
-     * that do not implement <code>PersistenceCapable</code> return <code>false</code>.
-     * @see PersistenceCapable#jdoIsTransactional()
-     * @param pc the <code>PersistenceCapable</code> instance.
-     * @return <code>true</code> if the parameter instance is transactional.
-     */
-    public static boolean isTransactional(Object pc) {
-      return pc instanceof PersistenceCapable?((PersistenceCapable)pc).jdoIsTransactional():false;
-    }
-
-    /** Tests whether the parameter instance is persistent.
-     *
-     * Instances that represent persistent objects in the data store 
-     * return <code>true</code>. 
-     *
-     *<P>Transient instances and instances of classes 
-     * that do not implement <code>PersistenceCapable</code> return <code>false</code>.
-     *<P>
-     * @see PersistenceManager#makePersistent(Object pc)
-     * @see PersistenceCapable#jdoIsPersistent()
-     * @param pc the <code>PersistenceCapable</code> instance.
-     * @return <code>true</code> if the parameter instance is persistent.
-     */
-    public static boolean isPersistent(Object pc) {
-      return pc instanceof PersistenceCapable?((PersistenceCapable)pc).jdoIsPersistent():false;
-    }
-
-    /** Tests whether the parameter instance has been newly made persistent.
-     *
-     * Instances that have been made persistent in the current transaction 
-     * return <code>true</code>.
-     *
-     *<P>Transient instances and instances of classes 
-     * that do not implement <code>PersistenceCapable</code> return <code>false</code>.
-     *<P>
-     * @see PersistenceManager#makePersistent(Object pc)
-     * @see PersistenceCapable#jdoIsNew()
-     * @param pc the <code>PersistenceCapable</code> instance.
-     * @return <code>true</code> if the parameter instance was made persistent
-     * in the current transaction.
-     */
-    public static boolean isNew(Object pc) {
-      return pc instanceof PersistenceCapable?((PersistenceCapable)pc).jdoIsNew():false;
-    }
-
-    /** Tests whether the parameter instance has been deleted.
-     *
-     * Instances that have been deleted in the current transaction return <code>true</code>.
-     *
-     *<P>Transient instances and instances of classes 
-     * that do not implement <code>PersistenceCapable</code> return <code>false</code>.
-     *<P>
-     * @see PersistenceManager#deletePersistent(Object pc)
-     * @see PersistenceCapable#jdoIsDeleted()
-     * @param pc the <code>PersistenceCapable</code> instance.
-     * @return <code>true</code> if the parameter instance was deleted
-     * in the current transaction.
-     */
-    public static boolean isDeleted(Object pc) {
-      return pc instanceof PersistenceCapable?((PersistenceCapable)pc).jdoIsDeleted():false;
-    }
-    
-    /** Get a <code>PersistenceManagerFactory</code> based on a <code>Properties</code> instance, using
-     * the current thread's context class loader to locate the
-     * <code>PersistenceManagerFactory</code> class.
-     * @return the <code>PersistenceManagerFactory</code>.
-     * @param props a <code>Properties</code> instance with properties of the <code>PersistenceManagerFactory</code>.
-     * @see #getPersistenceManagerFactory(Properties,ClassLoader)
-     */
-    public static PersistenceManagerFactory getPersistenceManagerFactory
-            (Properties props) {
-        ClassLoader cl = Thread.currentThread().getContextClassLoader();
-        return getPersistenceManagerFactory (props, cl);
-    }
-    
-    /** Get a <code>PersistenceManagerFactory</code> based on a <code>Properties</code>
-     * instance and a class loader.
-     * The following are standard key values:
-     * <BR><code>"javax.jdo.PersistenceManagerFactoryClass"
-     * <BR>"javax.jdo.option.Optimistic",
-     * <BR>"javax.jdo.option.RetainValues",
-     * <BR>"javax.jdo.option.RestoreValues",
-     * <BR>"javax.jdo.option.IgnoreCache",
-     * <BR>"javax.jdo.option.NontransactionalRead",
-     * <BR>"javax.jdo.option.NontransactionalWrite",
-     * <BR>"javax.jdo.option.Multithreaded",
-     * <BR>"javax.jdo.option.ConnectionUserName",
-     * <BR>"javax.jdo.option.ConnectionPassword",
-     * <BR>"javax.jdo.option.ConnectionURL",
-     * <BR>"javax.jdo.option.ConnectionFactoryName",
-     * <BR>"javax.jdo.option.ConnectionFactory2Name".
-     * </code><P>JDO implementations
-     * are permitted to define key values of their own.  Any key values not
-     * recognized by the implementation must be ignored.  Key values that are
-     * recognized but not supported by an implementation must result in a
-     * <code>JDOFatalUserException</code> thrown by the method.
-     * <P>The returned <code>PersistenceManagerFactory</code> is not configurable (the
-     * <code>set<I>XXX</I></code> methods will throw an exception).
-     * <P>JDO implementations might manage a map of instantiated
-     * <code>PersistenceManagerFactory</code> instances based on specified property key
-     * values, and return a previously instantiated <code>PersistenceManagerFactory</code>
-     * instance.  In this case, the properties of the returned
-     * instance must exactly match the requested properties.
-     * @return the <code>PersistenceManagerFactory</code>.
-     * @param props a <code>Properties</code> instance with properties of the <code>PersistenceManagerFactory</code>.
-     * @param cl a class loader to use to load the <code>PersistenceManagerFactory</code> class.
-     */
-    public static PersistenceManagerFactory getPersistenceManagerFactory
-            (Properties props, ClassLoader cl) {
-        String pmfClassName = (String) props.get ("javax.jdo.PersistenceManagerFactoryClass"); //NOI18N
-        if (pmfClassName == null) {
-            throw new JDOFatalUserException (msg.msg("EXC_NoClassNameProperty")); // NOI18N
-        }
-        try {
-            Class pmfClass = cl.loadClass (pmfClassName);
-            Method pmfMethod = pmfClass.getMethod ("getPersistenceManagerFactory",  //NOI18N
-                new Class[] {Properties.class});
-            return (PersistenceManagerFactory) pmfMethod.invoke (null, new Object[] {props});
-        } catch (ClassNotFoundException cnfe) {
-            throw new JDOFatalUserException (msg.msg("EXC_ClassNotFound", pmfClassName), cnfe); //NOI18N
-        } catch (IllegalAccessException iae) {
-            throw new JDOFatalUserException (msg.msg("EXC_IllegalAccess", pmfClassName), iae); //NOI18N
-        } catch (NoSuchMethodException nsme) {
-            throw new JDOFatalInternalException (msg.msg("ERR_NoSuchMethod"), nsme); //NOI18N
-        } catch (InvocationTargetException ite) {
-            Throwable nested = ite.getTargetException();
-            if  (nested instanceof JDOException) {
-                throw (JDOException)nested;
-            } else throw new JDOFatalUserException (msg.msg("EXC_getPersistenceManagerFactory"), ite); //NOI18N
-        } catch (Exception e) {
-            throw new JDOFatalInternalException (msg.msg("ERR_UnexpectedException"), e); //NOI18N
-        }
-    }
-
-}
diff --git a/api11/src/java/javax/jdo/JDOObjectNotFoundException.java b/api11/src/java/javax/jdo/JDOObjectNotFoundException.java
deleted file mode 100644
index 6cfba42..0000000
--- a/api11/src/java/javax/jdo/JDOObjectNotFoundException.java
+++ /dev/null
@@ -1,71 +0,0 @@
-/*
- * 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.
- */
-
-/*
- * JDOObjectNotFoundException.java
- *
- * Created on April 11, 2003
- */
-
-package javax.jdo;
-
-/** This class represents exceptions caused by the user accessing 
- * an object that does not exist in the datastore.
- *
- * @author  Craig Russell
- * @since 1.0.1
- * @version 1.0.1
- */
-public class JDOObjectNotFoundException extends JDODataStoreException {
-
-  /**
-   * Constructs a new <code>JDOObjectNotFoundException</code> 
-   * without a detail message.
-   */
-  public JDOObjectNotFoundException() {
-  }
-  
-
-  /**
-   * Constructs a new <code>JDOObjectNotFoundException</code> 
-   * with the specified detail message.
-   * @param msg the detail message.
-   */
-  public JDOObjectNotFoundException(String msg) {
-    super(msg);
-  }
-
-  /** Constructs a new <code>JDOObjectNotFoundException</code> with the specified detail message
-   * and failed object.
-   * @param msg the detail message.
-   * @param failed the failed object.
-   */
-  public JDOObjectNotFoundException(String msg, Object failed) {
-    super(msg, failed);
-  }
-  
-  /**
-   * Constructs a new <code>JDOObjectNotFoundException</code> with the
-   * specified detail message and nested <code>Throwable</code>s.
-   * @param msg the detail message.
-   * @param nested the nested <code>Throwable[]</code>.
-   */
-  public JDOObjectNotFoundException(String msg, Throwable[] nested) {
-    super(msg, nested);
-  }
-
-}
-
diff --git a/api11/src/java/javax/jdo/JDOOptimisticVerificationException.java b/api11/src/java/javax/jdo/JDOOptimisticVerificationException.java
deleted file mode 100644
index d35c676..0000000
--- a/api11/src/java/javax/jdo/JDOOptimisticVerificationException.java
+++ /dev/null
@@ -1,70 +0,0 @@
-/*
- * 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.
- */
-
-/*
- * JDOOptimisticVerificationException.java
- *
- * Created on April 11, 2003
- */
-
-package javax.jdo;
-
-/** This class represents optimistic verification failures.  The nested
- * exception array contains an exception for each instance that failed
- * the optimistic verification.
- *
- * @author  Craig Russell
- * @since 1.0.1
- * @version 1.0.1
- */
-public class JDOOptimisticVerificationException extends JDOFatalDataStoreException {
-
-  /**
-   * Constructs a new <code>JDOOptimisticVerificationException</code> without a detail message.
-   */
-  public JDOOptimisticVerificationException() {
-  }
-  
-
-  /**
-   * Constructs a new <code>JDOOptimisticVerificationException</code> with the specified detail message.
-   * @param msg the detail message.
-   */
-  public JDOOptimisticVerificationException(String msg) {
-    super(msg);
-  }
-
-  /** Constructs a new <code>JDOOptimisticVerificationException</code> with the specified detail message
-   * and failed object.
-   * @param msg the detail message.
-   * @param failed the failed object.
-   */
-  public JDOOptimisticVerificationException(String msg, Object failed) {
-    super(msg, failed);
-  }
-  
-  /**
-   * Constructs a new <code>JDOOptimisticVerificationException</code> with the specified
-   * detail message and nested <code>Throwable</code>s.
-   * @param msg the detail message.
-   * @param nested the nested <code>Throwable[]</code>.
-   */
-  public JDOOptimisticVerificationException(String msg, Throwable[] nested) {
-    super(msg, nested);
-  }
-
-}
-
diff --git a/api11/src/java/javax/jdo/JDOUnsupportedOptionException.java b/api11/src/java/javax/jdo/JDOUnsupportedOptionException.java
deleted file mode 100644
index ec9af0a..0000000
--- a/api11/src/java/javax/jdo/JDOUnsupportedOptionException.java
+++ /dev/null
@@ -1,68 +0,0 @@
-/*
- * 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.
- */
-
-/*
- * JDOUnsupportedOptionException.java
- *
- * Created on March 8, 2000, 8:34 AM
- */
-
-package javax.jdo;
-
-/** This class represents exceptions caused by the use of optional features
- * not supported by the JDO implementation.
- *
- * @author  Craig Russell
- * @version 1.0
- */
-public class JDOUnsupportedOptionException extends JDOUserException {
-
-  /**
-   * Constructs a new <code>JDOUnsupportedOptionException</code> without a detail message.
-   */
-  public JDOUnsupportedOptionException() {
-  }
-  
-
-  /**
-   * Constructs a new <code>JDOUnsupportedOptionException</code> with the specified detail message.
-   * @param msg the detail message.
-   */
-  public JDOUnsupportedOptionException(String msg) {
-    super(msg);
-  }
-
-  /**
-   * Constructs a new <code>JDOUnsupportedOptionException</code> with the
-   * specified detail message and nested <code>Throwable</code>s.
-   * @param msg the detail message.
-   * @param nested the nested <code>Throwable[]</code>.
-   */
-  public JDOUnsupportedOptionException(String msg, Throwable[] nested) {
-    super(msg, nested);
-  }
-
-  /**
-   * Constructs a new <code>JDOUnsupportedOptionException</code> with the
-   * specified detail message and nested <code>Throwable</code>s.
-   * @param msg the detail message.
-   * @param nested the nested <code>Throwable</code>.
-   */
-  public JDOUnsupportedOptionException(String msg, Throwable nested) {
-    super(msg, nested);
-  }
-}
-
diff --git a/api11/src/java/javax/jdo/JDOUserException.java b/api11/src/java/javax/jdo/JDOUserException.java
deleted file mode 100644
index a06a202..0000000
--- a/api11/src/java/javax/jdo/JDOUserException.java
+++ /dev/null
@@ -1,96 +0,0 @@
-/*
- * 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.
- */
-
-/*
- * JDOUserException.java
- *
- * Created on March 8, 2000, 8:33 AM
- */
-
-package javax.jdo;
-
-/** This class represents user errors that can possibly be retried.
- *
- * @author  Craig Russell
- * @version 1.0
- */
-public class JDOUserException extends JDOCanRetryException {
-
-  /**
-   * Constructs a new <code>JDOUserException</code> without a detail message.
-   */
-  public JDOUserException() {
-  }
-  
-
-  /**
-   * Constructs a new <code>JDOUserException</code> with the specified detail message.
-   * @param msg the detail message.
-   */
-  public JDOUserException(String msg) {
-    super(msg);
-  }
-
-  /**
-   * Constructs a new <code>JDOUserException</code> with the specified detail message
-   * and nested <code>Throwable</code>s.
-   * @param msg the detail message.
-   * @param nested the nested <code>Throwable[]</code>.
-   */
-  public JDOUserException(String msg, Throwable[] nested) {
-    super(msg, nested);
-  }
-
-  /**
-   * Constructs a new <code>JDOUserException</code> with the specified detail message
-   * and nested <code>Throwable</code>s.
-   * @param msg the detail message.
-   * @param nested the nested <code>Throwable</code>.
-   */
-  public JDOUserException(String msg, Throwable nested) {
-    super(msg, nested);
-  }
-  
-  /** Constructs a new <code>JDOUserException</code> with the specified detail message
-   * and failed object.
-   * @param msg the detail message.
-   * @param failed the failed object.
-   */
-  public JDOUserException(String msg, Object failed) {
-    super(msg, failed);
-  }
-  
-  /** Constructs a new <code>JDOUserException</code> with the specified detail message,
-   * nested <code>Throwable</code>s, and failed object.
-   * @param msg the detail message.
-   * @param nested the nested <code>Throwable[]</code>.
-   * @param failed the failed object.
-   */
-  public JDOUserException(String msg, Throwable[] nested, Object failed) {
-    super(msg, nested, failed);
-  }
-  
-  /** Constructs a new <code>JDOUserException</code> with the specified detail message,
-   * nested <code>Throwable</code>s, and failed object.
-   * @param msg the detail message.
-   * @param nested the nested <code>Throwable</code>.
-   * @param failed the failed object.
-   */
-  public JDOUserException(String msg, Throwable nested, Object failed) {
-    super(msg, nested, failed);
-  }
-}
-
diff --git a/api11/src/java/javax/jdo/PersistenceManager.java b/api11/src/java/javax/jdo/PersistenceManager.java
deleted file mode 100644
index f869137..0000000
--- a/api11/src/java/javax/jdo/PersistenceManager.java
+++ /dev/null
@@ -1,596 +0,0 @@
-/*
- * 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.
- */
-
-/*
- * PersistenceManager.java
- *
- * Created on February 25, 2000
- */
- 
-package javax.jdo;
-import java.util.Collection;
-import java.lang.Class;
-
-/** <code>PersistenceManager</code> is the primary interface for JDO-aware application
- * components.  It is the factory for <code>Query</code> and <code>Transaction</code> instances,
- * and contains methods to manage the life cycle of <code>PersistenceCapable</code>
- * instances.
- *
- * <P>A <code>PersistenceManager</code> is obtained from the
- * {@link PersistenceManagerFactory}
- * (recommended) or by construction.
- * @author Craig Russell
- * @version 1.0.1
- */
-
-public interface PersistenceManager 
-{
-
-  /** A <code>PersistenceManager</code> instance can be used until it is closed.
-   * @return <code>true</code> if this <code>PersistenceManager</code> has been closed.
-   * @see #close()
-   */
-  boolean isClosed ();
-    
-    /** Close this <code>PersistenceManager</code> so that no further requests may be 
-     * made on it.  A <code>PersistenceManager</code> instance can be used 
-     * only until it is closed.
-     *
-     * <P>Closing a <code>PersistenceManager</code> might release it to the pool of available
-     * <code>PersistenceManager</code>s, or might be garbage collected, at the option of
-     * the JDO implementation.  Before being used again to satisfy a
-     * <code>getPersistenceManager()</code> request, the default values for options will
-     * be restored to their values as specified in the <code>PersistenceManagerFactory</code>.
-     *
-     * <P>This method closes the <code>PersistenceManager</code>.
-     */
-    void close ();
-
-    /** Return the <code>Transaction</code> instance associated with a <code>PersistenceManager</code>.
-     * There is one <code>Transaction</code> instance associated with each <code>PersistenceManager</code>
-     * instance.  The <code>Transaction</code> instance supports options as well as
-     * transaction completion requests.
-     * @return the <code>Transaction</code> associated with this
-     * <code>PersistenceManager</code>.
-     */
-    Transaction currentTransaction();
-
-    /** Mark an instance as no longer needed in the cache.
-     * Eviction is normally done automatically by the <code>PersistenceManager</code>
-     * at transaction completion.  This method allows the application to
-     * explicitly provide a hint to the <code>PersistenceManager</code> that the instance
-     * is no longer needed in the cache.
-     * @param pc the instance to evict from the cache.
-     */
-    void evict (Object pc);
-    
-    /** Mark an array of instances as no longer needed in the cache.
-     * @see #evict(Object pc)
-     * @param pcs the array of instances to evict from the cache.
-     */
-    void evictAll (Object[] pcs);
-    
-    /** Mark a <code>Collection</code> of instances as no longer needed in the cache.
-     * @see #evict(Object pc)
-     * @param pcs the <code>Collection</code> of instances to evict from the cache.
-     */
-    void evictAll (Collection pcs);
-    
-    /** Mark all persistent-nontransactional instances as no longer needed 
-     * in the cache.  It transitions
-     * all persistent-nontransactional instances to hollow.  Transactional
-     * instances are subject to eviction based on the RetainValues setting.
-     * @see #evict(Object pc)
-     */
-    void evictAll ();
-    
-    /** Refresh the state of the instance from the data store.
-     *
-     * <P>In an optimistic transaction, the state of instances in the cache
-     * might not match the state in the data store.  This method is used to
-     * reload the state of the instance from the data store so that a subsequent
-     * commit is more likely to succeed.
-     * <P>Outside a transaction, this method will refresh nontransactional state.
-     * @param pc the instance to refresh.
-     */
-    void refresh (Object pc);
-    
-    /** Refresh the state of an array of instances from the data store.
-     *
-     * @see #refresh(Object pc)
-     * @param pcs the array of instances to refresh.
-     */
-    void refreshAll (Object[] pcs);
-    
-    /** Refresh the state of a <code>Collection</code> of instances from the data store.
-     *
-     * @see #refresh(Object pc)
-     * @param pcs the <code>Collection</code> of instances to refresh.
-     */
-    void refreshAll (Collection pcs);
-    
-    /** Refresh the state of all applicable instances from the data store.
-     * <P>If called with an active transaction, all transactional instances
-     * will be refreshed.  If called outside an active transaction, all
-     * nontransactional instances will be refreshed.
-     * @see #refresh(Object pc)
-     */
-    void refreshAll ();
-    
-    /** Create a new <code>Query</code> with no elements.
-     * @return the new <code>Query</code>.
-     */
-    Query newQuery ();
-    
-    /** Create a new <code>Query</code> using elements from another <code>Query</code>.
-     * The other <code>Query</code> must have been created by the same JDO implementation.
-     * It might be active
-     * in a different <code>PersistenceManager</code> or might have been serialized and restored.
-     * <P>All of the settings of the other <code>Query</code> are copied to this <code>Query</code>,
-     * except for the candidate <code>Collection</code> or <code>Extent</code>.
-     * @return the new <code>Query</code>
-     * @param compiled another <code>Query</code> from the same JDO implementation
-     */
-    Query newQuery (Object compiled);
-    
-    /** Create a new <code>Query</code> using the specified language.
-     * @param language the language of the query parameter
-     * @param query the query, which is of a form determined by the language
-     * @return the new <code>Query</code>
-     */    
-    Query newQuery (String language, Object query);
-    
-    /** Create a new <code>Query</code> specifying the <code>Class</code> of the candidate instances.
-     * @param cls the <code>Class</code> of the candidate instances
-     * @return the new <code>Query</code>
-     */
-    Query newQuery (Class cls);
-    
-    /** Create a new <code>Query</code> with the <code>Class</code> of the
-     * candidate instances and candidate <code>Extent</code>.
-     * @param cln the <code>Extent</code> of candidate instances
-     * @return the new <code>Query</code>
-     */
-    Query newQuery (Extent cln);
-    
-    /** Create a new <code>Query</code> with the candidate <code>Class</code> 
-     * and <code>Collection</code>.
-     * @param cls the <code>Class</code> of results
-     * @param cln the <code>Collection</code> of candidate instances
-     * @return the new <code>Query</code>
-     */
-    Query newQuery (Class cls, Collection cln);
-    
-    /** Create a new <code>Query</code> with the <code>Class</code> of the
-     * candidate instances and filter.
-     * @param cls the <code>Class</code> of results
-     * @param filter the filter for candidate instances
-     * @return the new <code>Query</code>
-     */
-    Query newQuery (Class cls, String filter);
-    
-    /** Create a new <code>Query</code> with the <code>Class</code> of the candidate instances, 
-     * candidate <code>Collection</code>, and filter.
-     * @param cls the <code>Class</code> of candidate instances
-     * @param cln the <code>Collection</code> of candidate instances
-     * @param filter the filter for candidate instances
-     * @return the new <code>Query</code>
-     */
-    Query newQuery (Class cls, Collection cln, String filter);
-    
-    /** Create a new <code>Query</code> with the
-     * candidate <code>Extent</code> and filter; the class
-     * is taken from the <code>Extent</code>.
-     * @param cln the <code>Extent</code> of candidate instances
-     * @param filter the filter for candidate instances
-     * @return the new <code>Query</code>
-     */
-    Query newQuery (Extent cln, String filter);
-    
-    /** The <code>PersistenceManager</code> manages a collection of instances in the data
-     * store based on the class of the instances.  This method returns an
-     * <code>Extent</code> of instances in the data store that might be iterated or
-     * given to a <code>Query</code>.  The <code>Extent</code> itself might not reference any 
-     * instances, but only hold the class name and an
-     * indicator as to whether subclasses are included in the <code>Extent</code>.
-     * <P>Note that the <code>Extent</code> might be very large.
-     * @param persistenceCapableClass <code>Class</code> of instances
-     * @param subclasses whether to include instances of subclasses
-     * @return an <code>Extent</code> of the specified <code>Class</code>
-     * @see Query
-     */
-    Extent getExtent (Class persistenceCapableClass, boolean subclasses);
-
-    /** This method locates a persistent instance in the cache of instances
-     * managed by this <code>PersistenceManager</code>.
-     * The <code>getObjectById</code> method attempts 
-     * to find an instance in the cache with the specified JDO identity. 
-     * The <code>oid</code> parameter object might have been returned by an earlier call 
-     * to <code>getObjectId</code> or <code>getTransactionalObjectId</code>,
-     * or might have been constructed by the application. 
-     * <P>If the <code>PersistenceManager</code> is unable to resolve the <code>oid</code> parameter 
-     * to an ObjectId instance, then it throws a <code>JDOUserException</code>.
-     * <P>If the <code>validate</code> flag is <code>false</code>, and there is already an instance in the
-     * cache with the same JDO identity as the <code>oid</code> parameter, then this method
-     * returns it. There is no change made to the state of the returned
-     * instance.
-     * <P>If there is not an instance already in the cache with the same JDO
-     * identity as the <code>oid</code> parameter, then this method creates an instance
-     * with the specified JDO identity and returns it. If there is no
-     * transaction in progress, the returned instance will be hollow or
-     * persistent-nontransactional, at the choice of the implementation.
-     * <P>If there is a transaction in progress, the returned instance will
-     * be hollow, persistent-nontransactional, or persistent-clean, at the
-     * choice of the implementation.
-     * <P>It is an implementation decision whether to access the data store,
-     * if required to determine the exact class. This will be the case of
-     * inheritance, where multiple <code>PersistenceCapable</code> classes share the
-     * same ObjectId class.
-     * <P>If the validate flag is <code>false</code>, and the instance does not exist in
-     * the data store, then this method might not fail. It is an
-     * implementation choice whether to fail immediately with a
-     * <code>JDODataStoreException</code>. But a subsequent access of the fields of the
-     * instance will throw a <code>JDODataStoreException</code> if the instance does not
-     * exist at that time. Further, if a relationship is established to this
-     * instance, then the transaction in which the association was made will
-     * fail.
-     * <P>If the <code>validate</code> flag is <code>true</code>, and there is already a transactional
-     * instance in the cache with the same JDO identity as the <code>oid</code> parameter,
-     * then this method returns it. There is no change made to the state of
-     * the returned instance.
-     * <P>If there is an instance already in the cache with the same JDO
-     * identity as the <code>oid</code> parameter, but the instance is not transactional,
-     * then it must be verified in the data store. If the instance does not
-     * exist in the datastore, then a <code>JDODataStoreException</code> is thrown.
-     * <P>If there is not an instance already in the cache with the same JDO
-     * identity as the <code>oid</code> parameter, then this method creates an instance
-     * with the specified JDO identity, verifies that it exists in the data
-     * store, and returns it. If there is no transaction in progress, the
-     * returned instance will be hollow or persistent-nontransactional,
-     * at the choice of the implementation.
-     * <P>If there is a data store transaction in progress, the returned
-     * instance will be persistent-clean.
-     * If there is an optimistic transaction in progress, the returned
-     * instance will be persistent-nontransactional.
-     * @see #getObjectId(Object pc)
-     * @see #getTransactionalObjectId(Object pc)
-     * @return the <code>PersistenceCapable</code> instance with the specified ObjectId
-     * @param oid an ObjectId
-     * @param validate if the existence of the instance is to be validated
-     */
-    Object getObjectById (Object oid, boolean validate);
-    
-    /** The ObjectId returned by this method represents the JDO identity of
-     * the instance.  The ObjectId is a copy (clone) of the internal state
-     * of the instance, and changing it does not affect the JDO identity of
-     * the instance.  
-     * <P>The <code>getObjectId</code> method returns an ObjectId instance that represents
-     * the object identity of the specified JDO instance. The identity is
-     * guaranteed to be unique only in the context of the JDO
-     * <code>PersistenceManager</code> that created the identity, and only for two types
-     * of JDO Identity: those that are managed by the application, and
-     * those that are managed by the data store.
-     * <P>If the object identity is being changed in the transaction, by the
-     * application modifying one or more of the application key fields,
-     * then this method returns the identity as of the beginning of the
-     * transaction. The value returned by <code>getObjectId</code> will be different
-     * following <code>afterCompletion</code> processing for successful transactions.
-     * <P>Within a transaction, the ObjectId returned will compare equal to
-     * the ObjectId returned by only one among all JDO instances associated
-     * with the <code>PersistenceManager</code> regardless of the type of ObjectId.
-     * <P>The ObjectId does not necessarily contain any internal state of the
-     * instance, nor is it necessarily an instance of the class used to
-     * manage identity internally. Therefore, if the application makes a
-     * change to the ObjectId instance returned by this method, there is
-     * no effect on the instance from which the ObjectId was obtained.
-     * <P>The <code>getObjectById</code> method can be used between instances of
-     * <code>PersistenceManager</code> of different JDO vendors only for instances of
-     * persistence capable classes using application-managed (primary key)
-     * JDO identity. If it is used for instances of classes using datastore
-     * identity, the method might succeed, but there are no guarantees that
-     * the parameter and return instances are related in any way.
-     * @see #getTransactionalObjectId(Object pc)
-     * @see #getObjectById(Object oid, boolean validate)
-     * @param pc the <code>PersistenceCapable</code> instance
-     * @return the ObjectId of the instance
-     */
-    Object getObjectId (Object pc);
-    
-    /** The ObjectId returned by this method represents the JDO identity of
-     * the instance.  The ObjectId is a copy (clone) of the internal state
-     * of the instance, and changing it does not affect the JDO identity of
-     * the instance.
-     * <P>If the object identity is being changed in the transaction, by the
-     * application modifying one or more of the application key fields,
-     * then this method returns the current identity in the transaction.
-     * <P>If there is no transaction in progress, or if none of the key fields
-     * is being modified, then this method will return the same value as
-     * <code>getObjectId</code>.
-     * @see #getObjectId(Object pc)
-     * @see #getObjectById(Object oid, boolean validate)
-     * @param pc a <code>PersistenceCapable</code> instance
-     * @return the ObjectId of the instance
-     */
-    Object getTransactionalObjectId (Object pc);
-
-    /** 
-     * This method returns an object id instance corresponding to the <code>Class</code>
-     * and <code>String</code> arguments. The <code>String</code> argument might have been the 
-     * result of executing <code>toString</code> on an object id instance. 
-     * @param pcClass the <code>Class</code> of the persistence-capable instance
-     * @param str the <code>String</code> form of the object id
-     * @return an instance of the object identity class
-     */
-    Object newObjectIdInstance (Class pcClass, String str);
-    
-    /** Make the transient instance persistent in this <code>PersistenceManager</code>.
-     * This method must be called in an active transaction.
-     * The <code>PersistenceManager</code> assigns an ObjectId to the instance and
-     * transitions it to persistent-new.
-     * The instance will be managed in the <code>Extent</code> associated with its <code>Class</code>.
-     * The instance will be put into the data store at commit.
-     * The closure of instances of <code>PersistenceCapable</code> classes
-     * reachable from persistent
-     * fields will be made persistent at commit.  [This is known as 
-     * persistence by reachability.]
-     * @param pc a transient instance of a <code>Class</code> that implements
-     * <code>PersistenceCapable</code>
-     */
-    void makePersistent (Object pc);
-    
-    /** Make an array of instances persistent.
-     * @param pcs an array of transient instances
-     * @see #makePersistent(Object pc)
-     */
-    void makePersistentAll (Object[] pcs);
-    
-    /** Make a <code>Collection</code> of instances persistent.
-     * @param pcs a <code>Collection</code> of transient instances
-     * @see #makePersistent(Object pc)
-     */
-    void makePersistentAll (Collection pcs);
-    
-    /** Delete the persistent instance from the data store.
-     * This method must be called in an active transaction.
-     * The data store object will be removed at commit.
-     * Unlike <code>makePersistent</code>, which makes the closure of the instance persistent,
-     * the closure of the instance is not deleted from the data store.
-     * This method has no effect if the instance is already deleted in the
-     * current transaction.
-     * This method throws <code>JDOUserException</code> if the instance is transient or 
-     * is managed by another <code>PersistenceManager</code>.
-     *
-     * @param pc a persistent instance
-     */
-    void deletePersistent (Object pc);
-    
-    /** Delete an array of instances from the data store.
-     * @param pcs a <code>Collection</code> of persistent instances
-     * @see #deletePersistent(Object pc)
-     */
-    void deletePersistentAll (Object[] pcs);
-    
-    /** Delete a <code>Collection</code> of instances from the data store.
-     * @param pcs a <code>Collection</code> of persistent instances
-     * @see #deletePersistent(Object pc)
-     */
-    void deletePersistentAll (Collection pcs);
-    
-    /** Make an instance transient, removing it from management by this
-     * <code>PersistenceManager</code>.
-     *
-     * <P>The instance loses its JDO identity and it is no longer associated
-     * with any <code>PersistenceManager</code>.  The state of fields is preserved unchanged.
-     * @param pc the instance to make transient.
-     */
-    void makeTransient (Object pc);
-    
-    /** Make an array of instances transient, removing them from management by this
-     * <code>PersistenceManager</code>.
-     *
-     * <P>The instances lose their JDO identity and they are no longer associated
-     * with any <code>PersistenceManager</code>.  The state of fields is preserved unchanged.
-     * @param pcs the instances to make transient.
-     */
-    void makeTransientAll (Object[] pcs);
-    
-    /** Make a <code>Collection</code> of instances transient, removing them from
-     * management by this <code>PersistenceManager</code>.
-     *
-     * <P>The instances lose their JDO identity and they are no longer associated
-     * with any <code>PersistenceManager</code>.  The state of fields is preserved unchanged.
-     * @param pcs the instances to make transient.
-     */ 
-    void makeTransientAll (Collection pcs);
-    
-    /** Make an instance subject to transactional boundaries.
-     *
-     * <P>Transient instances normally do not observe transaction boundaries.
-     * This method makes transient instances sensitive to transaction completion.
-     * If an instance is modified in a transaction, and the transaction rolls back,
-     * the state of the instance is restored to the state before the first change
-     * in the transaction.
-     *
-     * <P>For persistent instances read in optimistic transactions, this method
-     * allows the application to make the state of the instance part of the
-     * transactional state.  At transaction commit, the state of the instance in
-     * the cache is compared to the state of the instance in the data store.  If they
-     * are not the same, then an exception is thrown.
-     * @param pc the instance to make transactional.
-     */
-    void makeTransactional (Object pc);
-
-    /** Make an array of instances subject to transactional boundaries.
-     * @param pcs the array of instances to make transactional.
-     * @see #makeTransactional(Object pc)
-     */
-    void makeTransactionalAll (Object[] pcs);
-
-    /** Make a <code>Collection</code> of instances subject to transactional boundaries.
-     * @param pcs the <code>Collection</code> of instances to make transactional.
-     * @see #makeTransactional(Object pc)
-     */
-    void makeTransactionalAll (Collection pcs);
-    
-    /** Make an instance non-transactional after commit.
-     *
-     * <P>Normally, at transaction completion, instances are evicted from the
-     * cache.  This method allows an application to identify an instance as
-     * not being evicted from the cache at transaction completion.  Instead,
-     * the instance remains in the cache with nontransactional state.
-     *
-     * @param pc the instance to make nontransactional.
-     */
-    void makeNontransactional (Object pc);
-    
-    /** Make an array of instances non-transactional after commit.
-     *
-     * @param pcs the array of instances to make nontransactional.
-     * @see #makeNontransactional(Object pc)
-     */
-    void makeNontransactionalAll (Object[] pcs);
-    
-    /** Make a <code>Collection</code> of instances non-transactional after commit.
-     *
-     * @param pcs the <code>Collection</code> of instances to make nontransactional.
-     * @see #makeNontransactional(Object pc)
-     */
-    void makeNontransactionalAll (Collection pcs);
-    
-    /** Retrieve field values of an instance from the store.  This tells
-     * the <code>PersistenceManager</code> that the application intends to use the
-     * instance, and its field values must be retrieved.
-     * <P>The <code>PersistenceManager</code> might use policy information about the
-     * class to retrieve associated instances.
-     * @param pc the instance
-     */
-    void retrieve (Object pc);
-    
-    /** Retrieve field values of instances from the store.  This tells
-     * the <code>PersistenceManager</code> that the application intends to use the
-     * instances, and all field values must be retrieved.
-     * <P>The <code>PersistenceManager</code> might use policy information about the
-     * class to retrieve associated instances.
-     * @param pcs the instances
-     */
-    void retrieveAll (Collection pcs);
-    
-    /** Retrieve field values of instances from the store.  This tells
-     * the <code>PersistenceManager</code> that the application intends to use the
-     * instances, and their field values should be retrieved.  The fields
-     * in the default fetch group must be retrieved, and the implementation
-     * might retrieve more fields than the default fetch group.
-     * <P>The <code>PersistenceManager</code> might use policy information about the
-     * class to retrieve associated instances.
-     * @param pcs the instances
-     * @param DFGOnly whether to retrieve only the default fetch group fields
-     * @since 1.0.1
-     */
-    void retrieveAll (Collection pcs, boolean DFGOnly);
-    
-    /** Retrieve field values of instances from the store.  This tells
-     * the <code>PersistenceManager</code> that the application intends to use the
-     * instances, and all field values must be retrieved.
-     * <P>The <code>PersistenceManager</code> might use policy information about the
-     * class to retrieve associated instances.
-     * @param pcs the instances
-     */
-    void retrieveAll (Object[] pcs);
-           
-    /** Retrieve field values of instances from the store.  This tells
-     * the <code>PersistenceManager</code> that the application intends to use the
-     * instances, and their field values should be retrieved.  The fields
-     * in the default fetch group must be retrieved, and the implementation
-     * might retrieve more fields than the default fetch group.
-     * <P>The <code>PersistenceManager</code> might use policy information about the
-     * class to retrieve associated instances.
-     * @param pcs the instances
-     * @param DFGOnly whether to retrieve only the default fetch group fields
-     * @since 1.0.1
-     */
-    void retrieveAll (Object[] pcs, boolean DFGOnly);
-           
-    /** The application can manage the <code>PersistenceManager</code> instances
-     * more easily by having an application object associated with each
-     * <code>PersistenceManager</code> instance.
-     * @param o the user instance to be remembered by the <code>PersistenceManager</code>
-     * @see #getUserObject
-     */
-    void setUserObject (Object o);
-    
-    /** The application can manage the <code>PersistenceManager</code> instances
-     * more easily by having an application object associated with each
-     * <code>PersistenceManager</code> instance.
-     * @return the user object associated with this <code>PersistenceManager</code>
-     * @see #setUserObject
-     */
-    Object getUserObject ();
-     
-    /** This method returns the <code>PersistenceManagerFactory</code> used to create
-     * this <code>PersistenceManager</code>.  
-     * @return the <code>PersistenceManagerFactory</code> that created
-     * this <code>PersistenceManager</code>
-     */
-    PersistenceManagerFactory getPersistenceManagerFactory();
-
-    /** Return the <code>Class</code> that implements the JDO Identity for the
-     * specified <code>PersistenceCapable</code> class.  The application can use the
-     * returned <code>Class</code> to construct a JDO Identity instance for
-     * application identity <code>PersistenceCapable</code> classes.  This JDO Identity
-     * instance can then be used to get an instance of the
-     * <code>PersistenceCapable</code> class for use in the application.
-     *
-     * <P>In order for the application to construct an instance of the ObjectId class
-     * it needs to know the class being used by the JDO implementation.
-     * @param cls the <code>PersistenceCapable Class</code>
-     * @return the <code>Class</code> of the ObjectId of the parameter
-     * @see #getObjectById
-     */
-    Class getObjectIdClass(Class cls);
-  
-  /** Set the Multithreaded flag for this <code>PersistenceManager</code>.  Applications
-   * that use multiple threads to invoke methods or access fields from 
-   * instances managed by this <code>PersistenceManager</code> must set this flag to <code>true</code>.
-   * Instances managed by this <code>PersistenceManager</code> include persistent or
-   * transactional instances of <code>PersistenceCapable</code> classes, as well as 
-   * helper instances such as <code>Query</code>, <code>Transaction</code>, or <code>Extent</code>.
-   *
-   * @param flag the Multithreaded setting.
-   */
-  void setMultithreaded (boolean flag);
-  
-  /** Get the current Multithreaded flag for this <code>PersistenceManager</code>.  
-   * @see #setMultithreaded
-   * @return the Multithreaded setting.
-   */
-  boolean getMultithreaded();
-    
-    /** Set the ignoreCache parameter for queries.
-     *
-     * <P>IgnoreCache set to <code>true</code> specifies that for all <code>Query</code> instances created by this
-     * <code>PersistenceManager</code>, the default is the cache should be ignored for queries.
-     * @param flag the ignoreCache setting.
-     */
-    void setIgnoreCache(boolean flag);
-  
-    /** Get the ignoreCache setting for queries.
-     *
-     * <P>IgnoreCache set to <code>true</code> specifies that for all <code>Query</code> instances created by this
-     * <code>PersistenceManager</code>, the default is the cache should be ignored for queries.
-     * @return the ignoreCache setting.
-     */
-   boolean getIgnoreCache();
-    }
diff --git a/api11/src/java/javax/jdo/PersistenceManagerFactory.java b/api11/src/java/javax/jdo/PersistenceManagerFactory.java
deleted file mode 100644
index 316ea85..0000000
--- a/api11/src/java/javax/jdo/PersistenceManagerFactory.java
+++ /dev/null
@@ -1,328 +0,0 @@
-/*
- * 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.
- */
-
-/*
- * PersistenceManagerFactory.java
- *
- * Created on February 25, 2000
- */
- 
-package javax.jdo;
-
-import java.util.Properties;
-import java.util.Collection;
-
-/** The <code>PersistenceManagerFactory</code> is the interface to use to obtain
- * <code>PersistenceManager</code> instances.  All <code>PersistenceManager</code> instances obtained
- * from the same <code>PersistenceManagerFactory</code> will have the same default
- * properties.
- *
- * <P><code>PersistenceManagerFactory</code> instances may be configured and
- * serialized for later use.  They may be stored via JNDI and looked up
- * and used later.  Any properties configured will be saved and restored.
- *
- * <P>Once the first <code>PersistenceManager</code> is obtained from the 
- * <code>PersistenceManagerFactory</code>, the factory can no longer be configured.
- * <P>If the <code>ConnectionFactory</code> property is set (non-<code>null</code>) then 
- * all other Connection properties including <code>ConnectionFactoryName</code> are ignored;
- * otherwise, if <code>ConnectionFactoryName</code> is set (non-<code>null</code>) then
- * all other Connection properties are ignored.
- * Similarly, if the <code>ConnectionFactory2</code> property is set (non-<code>null</code>) then 
- * <code>ConnectionFactory2Name</code> is ignored.
- * <P>Operational state (<code>PersistenceManager</code> pooling, connection pooling,
- * operational parameters) must not be serialized.
- *
- * @author Craig Russell
- * @version 1.0.1
- */
-
-public interface PersistenceManagerFactory extends java.io.Serializable
-{
-  /** Close this PersistenceManagerFactory. Check for 
-   * JDOPermission("closePersistenceManagerFactory") and if not authorized, 
-   * throw SecurityException. 
-   * <P>If the authorization check succeeds, check to see that all 
-   * PersistenceManager instances obtained from this PersistenceManagerFactory 
-   * have no active transactions. If any PersistenceManager instances have 
-   * an active transaction, throw a JDOUserException, with one nested 
-   * JDOUserException for each PersistenceManager with an active Transaction. 
-   * <P>If there are no active transactions, then close all PersistenceManager 
-   * instances obtained from this PersistenceManagerFactory, mark this 
-   * PersistenceManagerFactory as closed, disallow getPersistenceManager 
-   * methods, and allow all other get methods. If a set method or 
-   * getPersistenceManager method is called after close, then 
-   * JDOUserException is thrown.
-   * @since 1.0.1
-   */
-  void close();
-    
-  /** Get an instance of <code>PersistenceManager</code> from this factory.  The instance has
-   * default values for options.
-   *
-   * <P>After the first use of <code>getPersistenceManager</code>, no "set" methods will
-   * succeed.
-   *
-   * @return a <code>PersistenceManager</code> instance with default options.
-   */
-  PersistenceManager getPersistenceManager();
-
-    /** Get an instance of <code>PersistenceManager</code> from this factory.  The instance has
-     * default values for options.  The parameters <code>userid</code> and <code>password</code> are used
-     * when obtaining datastore connections from the connection pool.
-     *
-     * <P>After the first use of <code>getPersistenceManager</code>, no "set" methods will
-     * succeed.
-     *
-     * @return a <code>PersistenceManager</code> instance with default options.
-     * @param userid the userid for the connection
-     * @param password the password for the connection
-     */
-  PersistenceManager getPersistenceManager(String userid, String password);
-
-  /** Set the user name for the data store connection.
-   * @param userName the user name for the data store connection.
-   */
-  void setConnectionUserName(String userName);
-
-  /** Get the user name for the data store connection.
-   * @return the user name for the data store connection.
-   */
-  String getConnectionUserName ();
-  
-  /** Set the password for the data store connection.
-   * @param password the password for the data store connection.
-   */
-  void setConnectionPassword (String password);
-  
-  /** Set the URL for the data store connection.
-   * @param URL the URL for the data store connection.
-   */
-  void setConnectionURL (String URL);
-
-  /** Get the URL for the data store connection.
-   * @return the URL for the data store connection.
-   */
-  String getConnectionURL ();
-  
-  /** Set the driver name for the data store connection.
-   * @param driverName the driver name for the data store connection.
-   */
-  void setConnectionDriverName  (String driverName);
-
-  /** Get the driver name for the data store connection.
-   * @return the driver name for the data store connection.
-   */
-  String getConnectionDriverName ();
-    
-  /** Set the name for the data store connection factory.
-   * @param connectionFactoryName the name of the data store connection factory.
-   */
-  void setConnectionFactoryName (String connectionFactoryName);
-
-  /** Get the name for the data store connection factory.
-   * @return the name of the data store connection factory.
-   */
-  String getConnectionFactoryName ();
-  
-  /** Set the data store connection factory.  JDO implementations
-   * will support specific connection factories.  The connection
-   * factory interfaces are not part of the JDO specification.
-   * @param connectionFactory the data store connection factory.
-   */
-  void setConnectionFactory (Object connectionFactory);
-  
-  /** Get the data store connection factory.
-   * @return the data store connection factory.
-   */
-  Object getConnectionFactory ();
-  
-  /** Set the name for the second data store connection factory.  This is
-   * needed for managed environments to get nontransactional connections for
-   * optimistic transactions.
-   * @param connectionFactoryName the name of the data store connection factory.
-   */
-  void setConnectionFactory2Name (String connectionFactoryName);
-
-  /** Get the name for the second data store connection factory.  This is
-   * needed for managed environments to get nontransactional connections for
-   * optimistic transactions.
-   * @return the name of the data store connection factory.
-   */
-  String getConnectionFactory2Name ();
-  
-  /** Set the second data store connection factory.  This is
-   * needed for managed environments to get nontransactional connections for
-   * optimistic transactions.  JDO implementations
-   * will support specific connection factories.  The connection
-   * factory interfaces are not part of the JDO specification.
-   * @param connectionFactory the data store connection factory.
-   */
-  void setConnectionFactory2 (Object connectionFactory);
-  
-  /** Get the second data store connection factory.  This is
-   * needed for managed environments to get nontransactional connections for
-   * optimistic transactions.
-   * @return the data store connection factory.
-   */
-  Object getConnectionFactory2 ();
-  
-  /** Set the default Multithreaded setting for all <code>PersistenceManager</code> instances
-   * obtained from this factory.
-   *
-   * @param flag the default Multithreaded setting.
-   */
-  void setMultithreaded (boolean flag);
-  
-  /** Get the default Multithreaded setting for all <code>PersistenceManager</code> instances
-   * obtained from this factory.  
-   *
-   * @return the default Multithreaded setting.
-   */
-  boolean getMultithreaded();
-    
-  /** Set the default Optimistic setting for all <code>PersistenceManager</code> instances
-   * obtained from this factory.  
-   *
-   * @param flag the default Optimistic setting.
-   */
-  void setOptimistic (boolean flag);
-  
-  /** Get the default Optimistic setting for all <code>PersistenceManager</code> instances
-   * obtained from this factory.  
-   *
-   * @return the default Optimistic setting.
-   */
-  boolean getOptimistic();
-    
-  /** Set the default RetainValues setting for all <code>PersistenceManager</code> instances
-   * obtained from this factory.
-   *
-   * @param flag the default RetainValues setting.
-   */
-  void setRetainValues (boolean flag);
-  
-  /** Get the default RetainValues setting for all <code>PersistenceManager</code> instances
-   * obtained from this factory.
-   *
-   * @return the default RetainValues setting.
-   */
-  boolean getRetainValues ();
-    
-    /** Set the default value for the RestoreValues property.  
-     * If <code>true</code>, at rollback, fields of newly persistent instances 
-     * are restored to 
-     * their values as of the beginning of the transaction, and the instances
-     * revert to transient.  Additionally, fields of modified
-     * instances of primitive types and immutable reference types
-     * are restored to their values as of the beginning of the 
-     * transaction.
-     * <P>If <code>false</code>, at rollback, the values of fields of 
-     * newly persistent instances are unchanged and the instances revert to
-     * transient.  Additionally, dirty instances transition to hollow.
-     * If an implementation does not support this option, a 
-     * <code>JDOUnsupportedOptionException</code> is thrown.
-     * @param restoreValues the value of the restoreValues property
-     */
-    void setRestoreValues(boolean restoreValues);
-    
-    /** Get the default value for the RestoreValues property.  
-     * @return the value of the restoreValues property
-     */
-    boolean getRestoreValues();
-    
-  /** Set the default NontransactionalRead setting for all <code>PersistenceManager</code> instances
-   * obtained from this factory.  
-   *
-   * @param flag the default NontransactionalRead setting.
-   */
-  void setNontransactionalRead (boolean flag);
-  
-  /** Get the default NontransactionalRead setting for all <code>PersistenceManager</code> instances
-   * obtained from this factory.
-   *
-   * @return the default NontransactionalRead setting.
-   */
-  boolean getNontransactionalRead ();
-    
-  /** Set the default NontransactionalWrite setting for all <code>PersistenceManager</code> instances
-   * obtained from this factory.  
-   *
-   * @param flag the default NontransactionalWrite setting.
-   */
-  void setNontransactionalWrite (boolean flag);
-  
-  /** Get the default NontransactionalWrite setting for all <code>PersistenceManager</code> instances
-   * obtained from this factory.
-   *
-   * @return the default NontransactionalWrite setting.
-   */
-  boolean getNontransactionalWrite ();
-    
-  /** Set the default IgnoreCache setting for all <code>PersistenceManager</code> instances
-   * obtained from this factory.
-   *
-   * @param flag the default IgnoreCache setting.
-   */
-  void setIgnoreCache (boolean flag);
-  
-  /** Get the default IgnoreCache setting for all <code>PersistenceManager</code> instances
-   * obtained from this factory.
-   *
-   * @return the default IngoreCache setting.
-   */
-  boolean getIgnoreCache ();
-  
-   /** Return non-configurable properties of this <code>PersistenceManagerFactory</code>.
-   * Properties with keys <code>VendorName</code> and <code>VersionNumber</code> are required.  Other
-   * keys are optional.
-   * @return the non-configurable properties of this
-   * <code>PersistenceManagerFactory</code>.
-   */
-  Properties getProperties();
-  
-    /** The application can determine from the results of this
-     * method which optional features, and which query languages 
-     * are supported by the JDO implementation.
-     * <P>Each supported JDO optional feature is represented by a
-     * <code>String</code> with one of the following values:
-     *
-     * <P><code>javax.jdo.option.TransientTransactional
-     * <BR>javax.jdo.option.NontransactionalRead
-     * <BR>javax.jdo.option.NontransactionalWrite
-     * <BR>javax.jdo.option.RetainValues
-     * <BR>javax.jdo.option.Optimistic
-     * <BR>javax.jdo.option.ApplicationIdentity
-     * <BR>javax.jdo.option.DatastoreIdentity
-     * <BR>javax.jdo.option.NonDatastoreIdentity
-     * <BR>javax.jdo.option.ArrayList
-     * <BR>javax.jdo.option.HashMap
-     * <BR>javax.jdo.option.Hashtable
-     * <BR>javax.jdo.option.LinkedList
-     * <BR>javax.jdo.option.TreeMap
-     * <BR>javax.jdo.option.TreeSet
-     * <BR>javax.jdo.option.Vector
-     * <BR>javax.jdo.option.Map
-     * <BR>javax.jdo.option.List
-     * <BR>javax.jdo.option.Array  
-     * <BR>javax.jdo.option.NullCollection</code>
-     *
-     *<P>The standard JDO query language is represented by a <code>String</code>:
-     *<P><code>javax.jdo.query.JDOQL</code>
-     * @return the <code>Collection</code> of <code>String</code>s representing the supported options.
-     */    
-    Collection supportedOptions();
-   
-}
diff --git a/api11/src/java/javax/jdo/Query.java b/api11/src/java/javax/jdo/Query.java
deleted file mode 100644
index 0d476d6..0000000
--- a/api11/src/java/javax/jdo/Query.java
+++ /dev/null
@@ -1,313 +0,0 @@
-/*
- * 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.
- */
-
-package javax.jdo;
-import java.io.Serializable;
-import java.util.Collection;
-import java.util.Map;
-
-/** The <code>Query</code> interface allows applications to obtain persistent instances
- * from the data store.
- *
- * The {@link PersistenceManager} is the factory for <code>Query</code> instances.  There
- * may be many <code>Query</code> instances associated with a <code>PersistenceManager</code>.
- * Multiple queries might be executed simultaneously by different threads, but the
- * implementation might choose to execute them serially.  In either case, the
- * implementation must be thread safe.
- *
- * <P>There are three required elements in a <code>Query</code>: the class of the results,
- * the candidate collection of instances, and the filter.
- *
- * <P>There are optional elements: parameter declarations, variable
- * declarations, import statements, and an ordering specification.
- * <P>The query namespace is modeled after methods in Java:
- * <ul>
- * <li><code>setClass</code> corresponds to the class definition
- * <li><code>declareParameters</code> corresponds to formal parameters of a method
- * <li><code>declareVariables</code> corresponds to local variables of a method
- * <li><code>setFilter</code> and <code>setOrdering</code> correspond to the method body
- * </ul>
- * <P>There are two namespaces in queries. Type names have their own
- * namespace that is separate from the namespace for fields, variables
- * and parameters.
- * <P>The method <code>setClass</code> introduces the name of the candidate class in
- * the type namespace. The method <code>declareImports</code> introduces the names of
- * the imported class or interface types in the type namespace. Imported
- * type names must be unique. When used (e.g. in a parameter declaration,
- * cast expression, etc.) a type name must be the name of the candidate
- * class, the name of a class or interface imported by method
- * <code>declareImports</code>, or denote a class or interface from the same
- * package as the candidate class.
- * <P>The method <code>setClass</code> introduces the names of the candidate class fields.
- * <P>The method <code>declareParameters</code> introduces the names of the
- * parameters. A name introduced by <code>declareParameters</code> hides the name
- * of a candidate class field if equal. Parameter names must be unique.
- * <P>The method <code>declareVariables</code> introduces the names of the variables.
- * A name introduced by <code>declareVariables</code> hides the name of a candidate
- * class field if equal. Variable names must be unique and must not
- * conflict with parameter names.
- * <P>A hidden field may be accessed using the 'this' qualifier:
- * <code>this.fieldName</code>.
- * <P>The <code>Query</code> interface provides methods which execute the query
- * based on the parameters given. They return a <code>Collection</code> which the
- * user can iterate to get results. For future extension, the signature
- * of the <code>execute</code> methods specifies that they return an <code>Object</code> which
- * must be cast to <code>Collection</code> by the user.
- * <P>Any parameters passed to the <code>execute</code> methods are used only for
- * this execution, and are not remembered for future execution.
- * @author Craig Russell
- * @version 1.0
- */
-
-public interface Query extends Serializable 
-{
-   /** Set the class of the candidate instances of the query.
-    * <P>The class specifies the class
-    * of the candidates of the query.  Elements of the candidate collection
-    * that are of the specified class are filtered before being
-    * put into the result <code>Collection</code>.
-    *
-    * @param cls the <code>Class</code> of the candidate instances.
-    */
-void setClass(Class cls);
-    
-    /** Set the candidate <code>Extent</code> to query.
-     * @param pcs the candidate <code>Extent</code>.
-     */
-    void setCandidates(Extent pcs);
-    
-    /** Set the candidate <code>Collection</code> to query.
-     * @param pcs the candidate <code>Collection</code>.
-     */
-    void setCandidates(Collection pcs);
-    
-    /** Set the filter for the query.
-     *
-     * <P>The filter specification is a <code>String</code> containing a Boolean
-     * expression that is to be evaluated for each of the instances
-     * in the candidate collection. If the filter is not specified,
-     * then it defaults to "true", which has the effect of filtering
-     * the input <code>Collection</code> only for class type.
-     * <P>An element of the candidate collection is returned in the result if:
-     * <ul><li>it is assignment compatible to the candidate <code>Class</code> of the <code>Query</code>; and
-     * <li>for all variables there exists a value for which the filter
-     * expression evaluates to <code>true</code>.
-     * </ul>
-     * <P>The user may denote uniqueness in the filter expression by
-     * explicitly declaring an expression (for example, <code>e1 != e2</code>).
-     * <P>Rules for constructing valid expressions follow the Java
-     * language, except for these differences:
-     * <ul>
-     * <li>Equality and ordering comparisons between primitives and instances
-     * of wrapper classes are valid.
-     * <li>Equality and ordering comparisons of <code>Date</code> fields and <code>Date</code>
-     * parameters are valid.
-     * <li>White space (non-printing characters space, tab, carriage
-     * return, and line feed) is a separator and is otherwise ignored.
-     * <li>The assignment operators <code>=</code>, <code>+=</code>, etc. and pre- and post-increment
-     * and -decrement are not supported. Therefore, there are no side
-     * effects from evaluation of any expressions.
-     * <li>Methods, including object construction, are not supported, except
-     * for <code>Collection.contains(Object o)</code>, <code>Collection.isEmpty()</code>,
-     * <code>String.startsWith(String s)</code>, and <code>String.endsWith(String e)</code>.
-     * Implementations might choose to support non-mutating method
-     * calls as non-standard extensions.
-     * <li>Navigation through a <code>null</code>-valued field, which would throw
-     * <code>NullPointerException</code>, is treated as if the filter expression
-     * returned <code>false</code> for the evaluation of the current set of variable
-     * values. Other values for variables might still qualify the candidate
-     * instance for inclusion in the result set.
-     * <li>Navigation through multi-valued fields (<code>Collection</code> types) is
-     * specified using a variable declaration and the
-     * <code>Collection.contains(Object o)</code> method.
-     * </ul>
-     * <P>Identifiers in the expression are considered to be in the name
-     * space of the specified class, with the addition of declared imports,
-     * parameters and variables. As in the Java language, <code>this</code> is a reserved
-     * word which means the element of the collection being evaluated.
-     * <P>Navigation through single-valued fields is specified by the Java
-     * language syntax of <code>field_name.field_name....field_name</code>.
-     * <P>A JDO implementation is allowed to reorder the filter expression
-     * for optimization purposes.
-     * @param filter the query filter.
-     */
-    void setFilter(String filter);
-    
-    /** Set the import statements to be used to identify the fully qualified name of
-     * variables or parameters.  Parameters and unbound variables might 
-     * come from a different class from the candidate class, and the names 
-     * need to be declared in an import statement to eliminate ambiguity. 
-     * Import statements are specified as a <code>String</code> with semicolon-separated 
-     * statements. 
-     * <P>The <code>String</code> parameter to this method follows the syntax of the  
-     * import statement of the Java language.
-     * @param imports import statements separated by semicolons.
-     */
-    void declareImports(String imports);
-    
-    /** Declare the list of parameters query execution.
-     *
-     * The parameter declaration is a <code>String</code> containing one or more query 
-     * parameter declarations separated with commas. Each parameter named 
-     * in the parameter declaration must be bound to a value when 
-     * the query is executed.
-     * <P>The <code>String</code> parameter to this method follows the syntax for formal 
-     * parameters in the Java language. 
-     * @param parameters the list of parameters separated by commas.
-     */
-    void declareParameters(String parameters);
-    
-    /** Declare the unbound variables to be used in the query. Variables 
-     * might be used in the filter, and these variables must be declared 
-     * with their type. The unbound variable declaration is a <code>String</code> 
-     * containing one or more unbound variable declarations separated 
-     * with semicolons. It follows the syntax for local variables in 
-     * the Java language.
-     * @param variables the variables separated by semicolons.
-     */
-    void declareVariables(String variables);
-    
-    /** Set the ordering specification for the result <code>Collection</code>.  The
-     * ordering specification is a <code>String</code> containing one or more ordering
-     * declarations separated by commas.
-     *
-     * <P>Each ordering declaration is the name of the field on which
-     * to order the results followed by one of the following words:
-     * "<code>ascending</code>" or "<code>descending</code>".
-     *
-     *<P>The field must be declared in the candidate class or must be
-     * a navigation expression starting with a field in the candidate class.
-     *
-     *<P>Valid field types are primitive types except <code>boolean</code>; wrapper types 
-     * except <code>Boolean</code>; <code>BigDecimal</code>; <code>BigInteger</code>;
-     * <code>String</code>; and <code>Date</code>.
-     * @param ordering the ordering specification.
-     */
-    void setOrdering(String ordering);
-    
-    /** Set the ignoreCache option.  The default value for this option was
-     * set by the <code>PersistenceManagerFactory</code> or the
-     * <code>PersistenceManager</code> used to create this <code>Query</code>.
-     *
-     * The ignoreCache option setting specifies whether the query should execute
-     * entirely in the back end, instead of in the cache.  If this flag is set
-     * to <code>true</code>, an implementation might be able to optimize the query
-     * execution by ignoring changed values in the cache.  For optimistic
-     * transactions, this can dramatically improve query response times.
-     * @param ignoreCache the setting of the ignoreCache option.
-     */
-    void setIgnoreCache(boolean ignoreCache);   
-    
-    /** Get the ignoreCache option setting.
-     * @return the ignoreCache option setting.
-     * @see #setIgnoreCache
-     */
-    boolean getIgnoreCache();
-    
-    /** Verify the elements of the query and provide a hint to the query to
-     * prepare and optimize an execution plan.
-     */
-    void compile();
-    
-    /** Execute the query and return the filtered Collection.
-     * @return the filtered <code>Collection</code>.
-     * @see #executeWithArray(Object[] parameters)
-     */
-    Object execute();
-    
-    /** Execute the query and return the filtered <code>Collection</code>.
-     * @return the filtered <code>Collection</code>.
-     * @see #executeWithArray(Object[] parameters)
-     * @param p1 the value of the first parameter declared.
-     */
-    Object execute(Object p1);
-    
-    /** Execute the query and return the filtered <code>Collection</code>.
-     * @return the filtered <code>Collection</code>.
-     * @see #executeWithArray(Object[] parameters)
-     * @param p1 the value of the first parameter declared.
-     * @param p2 the value of the second parameter declared.
-     */
-    Object execute(Object p1, Object p2);
-    
-    /** Execute the query and return the filtered <code>Collection</code>.
-     * @return the filtered <code>Collection</code>.
-     * @see #executeWithArray(Object[] parameters)
-     * @param p1 the value of the first parameter declared.
-     * @param p2 the value of the second parameter declared.
-     * @param p3 the value of the third parameter declared.
-     */
-    Object execute(Object p1, Object p2, Object p3);
-    
-    /** Execute the query and return the filtered <code>Collection</code>.  The query
-     * is executed with the parameters set by the <code>Map</code> values.  Each <code>Map</code> entry
-     * consists of a key which is the name of the parameter in the 
-     * <code>declareParameters</code> method, and a value which is the value used in 
-     * the <code>execute</code> method.  The keys in the <code>Map</code> and the declared parameters 
-     * must exactly match or a <code>JDOUserException</code> is thrown.
-     * @return the filtered <code>Collection</code>.
-     * @see #executeWithArray(Object[] parameters)
-     * @param parameters the <code>Map</code> containing all of the parameters.
-     */
-    Object executeWithMap (Map parameters);
-    
-    /** Execute the query and return the filtered <code>Collection</code>.
-     *
-     * <P>The execution of the query obtains the values of the parameters and
-     * matches them against the declared parameters in order.  The names
-     * of the declared parameters are ignored.  The type of
-     * the declared parameters must match the type of the passed parameters,
-     * except that the passed parameters might need to be unwrapped to get
-     * their primitive values.
-     *
-     * <P>The filter, import, declared parameters, declared variables, and
-     * ordering statements are verified for consistency.
-     *
-     * <P>Each element in the candidate <code>Collection</code> is examined to see that it
-     * is assignment compatible to the <code>Class</code> of the query.  It is then evaluated
-     * by the Boolean expression of the filter.  The element passes the filter
-     * if there exist unique values for all variables for which the filter
-     * expression evaluates to <code>true</code>.
-     * @return the filtered <code>Collection</code>.
-     * @param parameters the <code>Object</code> array with all of the parameters.
-     */
-    Object executeWithArray (Object[] parameters);
-    
-    /** Get the <code>PersistenceManager</code> associated with this <code>Query</code>.
-     *
-     * <P>If this <code>Query</code> was restored from a serialized form, it has no 
-     * <code>PersistenceManager</code>, and this method returns <code>null</code>.
-     * @return the <code>PersistenceManager</code> associated with this <code>Query</code>.
-     */
-    PersistenceManager getPersistenceManager();
-  
-    /** Close a query result and release any resources associated with it.  The
-     * parameter is the return from <code>execute(...)</code> and might have iterators open on it.
-     * Iterators associated with the query result are invalidated: they return <code>false</code>
-     * to <code>hasNext()</code> and throw <code>NoSuchElementException</code> to <code>next()</code>.
-     * @param queryResult the result of <code>execute(...)</code> on this <code>Query</code> instance.
-     */    
-    void close (Object queryResult);
-    
-    /** Close all query results associated with this <code>Query</code> instance, and release all
-     * resources associated with them.  The query results might have iterators open
-     * on them.  Iterators associated with the query results are invalidated:
-     * they return <code>false</code> to <code>hasNext()</code> and throw
-     * <code>NoSuchElementException</code> to <code>next()</code>.
-     */    
-    void closeAll ();
-}
-
diff --git a/api11/src/java/javax/jdo/Transaction.java b/api11/src/java/javax/jdo/Transaction.java
deleted file mode 100644
index 35cd0b3..0000000
--- a/api11/src/java/javax/jdo/Transaction.java
+++ /dev/null
@@ -1,175 +0,0 @@
-/*
- * 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.
- */
-
-/*
- * Transaction.java
- *
- * Created on February 25, 2000
- */
- 
-package javax.jdo;
-import javax.transaction.Synchronization;
-
-/** The JDO <code>Transaction</code> interface provides for initiation and completion 
- * of transactions under user control.
- * It is a sub-interface of the {@link PersistenceManager}
- * that deals with options and transaction demarcation. 
- * <P>Transaction options include whether optimistic concurrency
- * control should be used for the current transaction, whether instances
- * may hold values in the cache outside transactions, and whether
- * values should be retained in the cache after transaction completion.  These
- * options are valid for both managed and non-managed transactions.
- *
- * <P>Transaction completion methods have the same semantics as
- * <code>javax.transaction.UserTransaction</code>, and are valid only in the
- * non-managed, non-distributed transaction environment.
- * <P>For operation in the distributed environment, <code>Transaction</code> is declared
- * to implement <code>javax.transaction.Synchronization</code>.  This allows for
- * flushing the cache to the data store during externally managed
- * transaction completion.
- * @author Craig Russell
- * @version 1.0
- */
-
-public interface Transaction
-{
-    /** Begin a transaction.  The type of transaction is determined by the
-     * setting of the Optimistic flag.
-     * @see #setOptimistic
-     * @see #getOptimistic
-     * @throws JDOUserException if transactions are managed by a container
-     * in the managed environment, or if the transaction is already active.
-     */
-    void begin();
-    
-    /** Commit the current transaction.
-     * @throws JDOUserException if transactions are managed by a container
-     * in the managed environment, or if the transaction is not active.
-     */
-    void commit();
-    
-    /** Roll back the current transaction.
-     * @throws JDOUserException if transactions are managed by a container
-     * in the managed environment, or if the transaction is not active.
-     */
-    void rollback();
-
-    /** Returns whether there is a transaction currently active.
-     * @return <code>true</code> if the transaction is active.
-     */
-    boolean isActive();
-    
-    /** If <code>true</code>, allow persistent instances to be read without
-     * a transaction active.
-     * If an implementation does not support this option, a 
-     * <code>JDOUnsupportedOptionException</code> is thrown.
-     * @param nontransactionalRead the value of the nontransactionalRead property
-     */
-    void setNontransactionalRead (boolean nontransactionalRead);
-    
-    /** If <code>true</code>, allows persistent instances to be read without
-     * a transaction active.
-     * @return the value of the nontransactionalRead property
-     */
-    boolean getNontransactionalRead ();
-    
-    /** If <code>true</code>, allow persistent instances to be written without
-     * a transaction active.
-     * If an implementation does not support this option, a 
-     * <code>JDOUnsupportedOptionException</code> is thrown.
-     * @param nontransactionalWrite the value of the nontransactionalRead property
-     */
-    void setNontransactionalWrite (boolean nontransactionalWrite);
-    
-    /** If <code>true</code>, allows persistent instances to be written without
-     * a transaction active.
-     * @return the value of the nontransactionalWrite property
-     */
-    boolean getNontransactionalWrite ();
-    
-    /** If <code>true</code>, at commit instances retain their values and the instances
-     * transition to persistent-nontransactional.
-     * If an implementation does not support this option, a 
-     * <code>JDOUnsupportedOptionException</code> is thrown.
-     * @param retainValues the value of the retainValues property
-     */
-    void setRetainValues(boolean retainValues);
-    
-    /** If <code>true</code>, at commit time instances retain their field values.
-     * @return the value of the retainValues property
-     */
-    boolean getRetainValues();
-    
-    /** If <code>true</code>, at rollback, fields of newly persistent instances 
-     * are restored to 
-     * their values as of the beginning of the transaction, and the instances
-     * revert to transient.  Additionally, fields of modified
-     * instances of primitive types and immutable reference types
-     * are restored to their values as of the beginning of the 
-     * transaction.
-     * <P>If <code>false</code>, at rollback, the values of fields of 
-     * newly persistent instances are unchanged and the instances revert to
-     * transient.  Additionally, dirty instances transition to hollow.
-     * If an implementation does not support this option, a 
-     * <code>JDOUnsupportedOptionException</code> is thrown.
-     * @param restoreValues the value of the restoreValues property
-     */
-    void setRestoreValues(boolean restoreValues);
-    
-    /** Return the current value of the restoreValues property.
-     * @return the value of the restoreValues property
-     */
-    boolean getRestoreValues();
-    
-    /** Optimistic transactions do not hold data store locks until commit time.
-     * If an implementation does not support this option, a 
-     * <code>JDOUnsupportedOptionException</code> is thrown.
-     * @param optimistic the value of the Optimistic flag.
-     */
-    void setOptimistic(boolean optimistic);
-    
-    /** Optimistic transactions do not hold data store locks until commit time.
-     * @return the value of the Optimistic property.
-     */
-    boolean getOptimistic();
-    
-    /** The user can specify a <code>Synchronization</code> instance to be notified on
-     * transaction completions.  The <code>beforeCompletion</code> method is called prior
-     * to flushing instances to the data store.
-     *
-     * <P>The <code>afterCompletion</code> method is called after performing state
-     * transitions of persistent and transactional instances, following 
-     * the data store commit or rollback operation.
-     * <P>Only one <code>Synchronization</code> instance can be registered with the 
-     * <code>Transaction</code>. If the application requires more than one instance to 
-     * receive synchronization callbacks, then the single application instance 
-     * is responsible for managing them, and forwarding callbacks to them.
-     * @param sync the <code>Synchronization</code> instance to be notified; <code>null</code> for none
-     */
-    void setSynchronization(Synchronization sync);
-    
-    /** The user-specified <code>Synchronization</code> instance for this <code>Transaction</code> instance.    
-     * @return the user-specified <code>Synchronization</code> instance.
-     */
-    Synchronization getSynchronization();
-
-    /** The <code>Transaction</code> instance is always associated with exactly one
-     * <code>PersistenceManager</code>.
-     *
-     * @return the <code>PersistenceManager</code> for this <code>Transaction</code> instance
-     */
-    PersistenceManager getPersistenceManager();
-}
diff --git a/api11/src/java/javax/jdo/package.html b/api11/src/java/javax/jdo/package.html
deleted file mode 100644
index 3cc37f0..0000000
--- a/api11/src/java/javax/jdo/package.html
+++ /dev/null
@@ -1,90 +0,0 @@
-<!--
- 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.
--->
-
-<html>
-<head>
-<title>JDO package</title>
-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-</head>
-
-<body bgcolor="#FFFFFF">
-This package contains the JDO specification interfaces and classes. 
-<P>There are two major objectives of the JDO architecture: 
-first, to provide application programmers a transparent,
-Java-centric view of persistent information, including enterprise data 
-and locally stored data; and second, to enable pluggable implementations 
-of data stores into 
-application servers.  Data stored in data stores is presented as
-instances of persistence-capable classes.
-<P>JDO defines interfaces and classes to be used by application programmers 
-when using classes whose instances are to be stored in persistent storage 
-(persistence-capable classes), and specifies the contracts between 
-suppliers of persistence-capable classes and the 
-runtime environment (which is part of the JDO implementation).
-<P>The JDO architecture defines a standard set of contracts between an 
-application programmer and an JDO vendor. These contracts focus on the 
-view of the Java instances of persistence capable classes.
-<P>The JDO PersistenceManagerFactory is the boostrap class for a JDO
-application.  The application gets an instance of the
-PersistenceManagerFactory by construction or via JDNI lookup.
-<P>The application acquires an instance of the JDO PersistenceManager by
-calling the getPersistenceManager method on an instance of JDO
-PersistenceManagerFactory.  
-<P>The JDO PersistenceManager is the primary interface for JDO-aware 
-application components: 
-<ul>
-<li>it gives access to the current Transaction interface;
-<li>it is the factory for the Query interface;
-<li>it contains methods for managing the life cycle of persistent instances.
-</ul>
-<P>A JDO PersistenceManager instance supports any number of JDO instances 
-at a time. It is responsible for managing the identity of its 
-associated JDO instances. A JDO instance is associated with either 
-zero or one JDO PersistenceManager. It will be zero if and only if the 
-JDO instance is transient nontransactional. As soon as the instance is made persistent 
-or transactional, it will be associated with exactly one JDO PersistenceManager.
-<P>A JDO PersistenceManager instance supports one transaction at a time, 
-and uses one connection to the underlying data source at a time. The JDO 
-PersistenceManager instance might use multiple transactions serially, 
-and might use multiple connections serially.
-<P>Normally, cache management is automatic and transparent. When instances 
-are queried, navigated to, or modified, instantiation of instances and 
-their fields and garbage collection of unreferenced instances occurs 
-without any explicit control. When the transaction in which persistent 
-instances are created, deleted, or modified commits, eviction is 
-automatically done by the transaction completion mechanisms. 
-<P>Operations on persistent JDO instances at the user's choice might be 
-performed in the context of a transaction. That is, the view of data 
-in the data store is transactionally consistent, according to the 
-standard definition of ACID transactions.
-<P>The Transaction interface is used to mark the beginning and end of a 
-application-defined unit of work.  The PersistenceManager allows the 
-application to get the instance that manages these transactional
-boundaries via the currentTransaction method.
-<P>The persistent manager instance is a factory for query instances, 
-and queries are executed in the context of the persistent manager instance. 
-The actual query execution might be performed by the JDO PersistenceManager 
-or might be delegated by the JDO PersistenceManager to its data store. 
-The actual query executed thus might be implemented in a very different 
-language from Java, and might be optimized to take advantage of particular 
-query language implementations.
-<P>Extents are collections of data store objects managed by the data store, 
-not by explicit user operations on collections. Extent capability is a 
-boolean property of classes that are persistence capable. If an instance 
-of a class that has a managed extent is made persistent via reachability, 
-the instance is put into the extent implicitly.
-</body>
-</html>
diff --git a/api11/src/java/javax/jdo/spi/I18NHelper.java b/api11/src/java/javax/jdo/spi/I18NHelper.java
deleted file mode 100644
index 12efd07..0000000
--- a/api11/src/java/javax/jdo/spi/I18NHelper.java
+++ /dev/null
@@ -1,398 +0,0 @@
-/*
- * 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.
- */
-
-package javax.jdo.spi;
-
-import java.util.*;
-import java.text.MessageFormat;
-import java.security.AccessController;
-import java.security.PrivilegedAction;
-
-import javax.jdo.JDOFatalInternalException;
-
-/** Helper class for constructing messages from bundles.  The intended usage
- * of this class is to construct a new instance bound to a bundle, as in
- * <P>
- * <code>I18NHelper msg = I18NHelper.getInstance("javax.jdo.Bundle");</code>
- * <P>
- * This call uses the class loader that loaded the I18NHelper class to find
- * the specified Bundle. The class provides two overloaded getInstance
- * methods allowing to specify a different class loader: 
- * {@link #getInstance(Class cls)} looks for a bundle
- * called "Bundle.properties" located in the package of the specified class 
- * object and {@link #getInstance(String bundleName,ClassLoader loader)} 
- * uses the specified class loader to find the bundle.
- * <P>
- * Subsequently, instance methods can be used to format message strings 
- * using the text from the bundle, as in 
- * <P>
- * <code>throw new JDOFatalInternalException (msg.msg("ERR_NoMetadata", cls.getName()));</code>
- * @since 1.0.1
- * @version 1.1
- */        
-public class I18NHelper {
-
-    /** Bundles that have already been loaded 
-     */
-    private static Hashtable    bundles = new Hashtable();
-    
-    /** Helper instances that have already been created 
-     */
-    private static Hashtable    helpers = new Hashtable();
-    
-    /** The default locale for this VM.
-     */
-    private static Locale       locale = Locale.getDefault();
-
-    /** The name of the bundle used by this instance of the helper.
-     */
-    private final String        bundleName;
-
-    /** The bundle used by this instance of the helper.
-     */
-    private ResourceBundle      bundle = null;
-
-    /** Throwable if ResourceBundle couldn't be loaded
-     */
-    private Throwable           failure = null;
-
-    /** The unqualified standard name of a bundle. */
-    private static final String bundleSuffix = ".Bundle";    // NOI18N
-
-    /** Constructor */
-    private I18NHelper() {
-        this.bundleName = null;
-    }
-
-    /** Constructor for an instance bound to a bundle.
-     * @param bundleName the name of the resource bundle
-     * @param loader the class loader from which to load the resource
-     * bundle
-     */
-    private I18NHelper (String bundleName, ClassLoader loader) {
-        this.bundleName = bundleName;
-        try {
-            bundle = loadBundle (bundleName, loader);
-        }
-        catch (Throwable e) {
-            failure = e;
-        }
-    }
-    
-    /** An instance bound to a bundle. This method uses the current class 
-     * loader to find the bundle.
-     * @param bundleName the name of the bundle
-     * @return the helper instance bound to the bundle
-     */
-    public static I18NHelper getInstance (String bundleName) {
-        return getInstance (bundleName, I18NHelper.class.getClassLoader());
-    }
-
-    /** An instance bound to a bundle. This method figures out the bundle name
-     * for the class object's package and uses the class' class loader to
-     * find the bundle. Note, the specified class object must not be
-     * <code>null</code>.
-     * @param cls the class object from which to load the resource bundle
-     * @return the helper instance bound to the bundle
-     */
-    public static I18NHelper getInstance (final Class cls) {
-        ClassLoader classLoader = (ClassLoader) AccessController.doPrivileged (
-            new PrivilegedAction () {
-                public Object run () {
-                    return cls.getClassLoader();
-                }
-            }
-            );
-        String bundle = getPackageName (cls.getName()) + bundleSuffix;
-        return getInstance (bundle, classLoader);
-    }
-
-    /** An instance bound to a bundle. This method uses the specified class
-     * loader to find the bundle. Note, the specified class loader must not
-     * be <code>null</code>.
-     * @param bundleName the name of the bundle
-     * @param loader the class loader from which to load the resource
-     * bundle
-     * @return the helper instance bound to the bundle
-     */
-    public static I18NHelper getInstance (String bundleName, 
-                                          ClassLoader loader) {
-        I18NHelper helper = (I18NHelper) helpers.get (bundleName);
-        if (helper != null) {
-            return helper;
-        }
-        helper = new I18NHelper(bundleName, loader);
-        helpers.put (bundleName, helper);
-        // if two threads simultaneously create the same helper, return the first
-        // one to be put into the Hashtable.  The other will be garbage collected.
-        return (I18NHelper) helpers.get (bundleName);
-    }
-
-    /** Message formatter
-     * @param messageKey the message key
-     * @return the resolved message text
-     */
-    public String msg (String messageKey) {
-        assertBundle (messageKey);
-        return getMessage (bundle, messageKey);
-    }
-
-    /** Message formatter
-     * @param messageKey the message key
-     * @param arg1 the first argument
-     * @return the resolved message text
-     */
-    public String msg (String messageKey, Object arg1) {
-        assertBundle (messageKey);
-        return getMessage (bundle, messageKey, arg1);
-    }
-
-    /** Message formatter
-     * @param messageKey the message key
-     * @param arg1 the first argument
-     * @param arg2 the second argument
-     * @return the resolved message text
-     */
-    public String msg (String messageKey, Object arg1, Object arg2) {
-        assertBundle (messageKey);
-        return getMessage (bundle, messageKey, arg1, arg2);
-    }
-
-    /** Message formatter
-     * @param messageKey the message key
-     * @param arg1 the first argument
-     * @param arg2 the second argument
-     * @param arg3 the third argument
-     * @return the resolved message text
-     */
-    public String msg (String messageKey, Object arg1, Object arg2, Object arg3) {
-        assertBundle (messageKey);
-        return getMessage (bundle, messageKey, arg1, arg2, arg3);
-    }
-
-    /** Message formatter
-     * @param messageKey the message key
-     * @param args the array of arguments
-     * @return the resolved message text
-     */
-    public String msg (String messageKey, Object[] args) {
-        assertBundle (messageKey);
-        return getMessage (bundle, messageKey, args);
-    }
-
-    /** Message formatter
-     * @param messageKey the message key
-     * @param arg the argument
-     * @return the resolved message text
-     */
-    public String msg (String messageKey, int arg) {
-        assertBundle (messageKey);
-        return getMessage(bundle, messageKey, arg);
-    }
-    
-    /** Message formatter
-     * @param messageKey the message key
-     * @param arg the argument
-     * @return the resolved message text
-     */
-    public String msg (String messageKey, boolean arg) {
-        assertBundle (messageKey);
-        return getMessage(bundle, messageKey, arg);
-    }
-    
-    /** Returns the resource bundle used by this I18NHelper.
-     * @return the associated resource bundle
-     * @since 1.1
-     */
-    public ResourceBundle getResourceBundle () {
-        assertBundle ();
-        return bundle;
-    }
-    
-    //========= Internal helper methods ==========
-
-    /**
-     * Load ResourceBundle by bundle name
-     * @param bundleName the name of the bundle
-     * @param loader the class loader from which to load the resource bundle
-     * @return  the ResourceBundle
-     */
-    final private static ResourceBundle loadBundle(
-        String bundleName, ClassLoader loader) {
-        ResourceBundle messages = (ResourceBundle)bundles.get(bundleName);
-
-        if (messages == null) //not found as loaded - add
-        {
-            if (loader != null) {
-                messages = ResourceBundle.getBundle(bundleName, locale, loader);
-            } else {
-                // the JDO library is loaded by the boostrap class loader
-                messages = ResourceBundle.getBundle(bundleName, locale,
-                        getSystemClassLoaderPrivileged());
-            }
-            bundles.put(bundleName, messages);
-        }
-        return messages;
-    }
-
-    /** Assert resources available
-     * @since 1.1
-     * @throws JDOFatalInternalException if the resource bundle could not
-     * be loaded during construction.
-     */
-    private void assertBundle () {
-        if (failure != null)
-            throw new JDOFatalInternalException (
-                "No resources could be found for bundle:\"" + 
-                bundle + "\" ", failure);
-    }
-    
-    /** Assert resources available
-     * @param key the message key 
-     * @since 1.0.2
-     * @throws JDOFatalInternalException if the resource bundle could not
-     * be loaded during construction.
-     */
-    private void assertBundle (String key) {
-        if (failure != null)
-            throw new JDOFatalInternalException (
-                "No resources could be found to annotate error message key:\"" + 
-                key + "\"", failure);
-    }
-
-    /**
-     * Returns message as <code>String</code>
-     * @param messages the resource bundle
-     * @param messageKey the message key
-     * @return the resolved message text
-     */
-    final private static String getMessage(ResourceBundle messages, String messageKey) 
-    {
-        return messages.getString(messageKey);
-    }
-
-    /**
-     * Formats message by adding array of arguments
-     * @param messages the resource bundle
-     * @param messageKey the message key
-     * @param msgArgs an array of arguments to substitute into the message
-     * @return the resolved message text
-     */
-    final private static String getMessage(ResourceBundle messages, String messageKey, Object msgArgs[]) 
-    {
-        for (int i=0; i<msgArgs.length; i++) {
-            if (msgArgs[i] == null) msgArgs[i] = ""; // NOI18N
-        }
-        MessageFormat formatter = new MessageFormat(messages.getString(messageKey));
-        return formatter.format(msgArgs);
-    }
-    
-    /**
-     * Formats message by adding an <code>Object</code> argument.
-     * @param messages the resource bundle
-     * @param messageKey the message key
-     * @param arg the argument
-     * @return the resolved message text
-     */
-    final private static String getMessage(ResourceBundle messages, String messageKey, Object arg) 
-    {
-        Object []args = {arg};
-        return getMessage(messages, messageKey, args);
-    }
-    
-    /**
-     * Formats message by adding two <code>Object</code> arguments.
-     * @param messages the resource bundle
-     * @param messageKey the message key
-     * @param arg1 the first argument
-     * @param arg2 the second argument
-     * @return the resolved message text
-     */
-    final private static String getMessage(ResourceBundle messages, String messageKey, Object arg1,
-                                   Object arg2) 
-    {
-        Object []args = {arg1, arg2};
-        return getMessage(messages, messageKey, args);
-    }
-    
-    /**
-     * Formats message by adding three <code>Object</code> arguments.
-     * @param messages the resource bundle
-     * @param messageKey the message key
-     * @param arg1 the first argument
-     * @param arg2 the second argument
-     * @param arg3 the third argument
-     * @return the resolved message text
-     */
-    final private static String getMessage(ResourceBundle messages, String messageKey, Object arg1,
-                                   Object arg2, Object arg3) 
-    {
-        Object []args = {arg1, arg2, arg3};
-        return getMessage(messages, messageKey, args);
-    }
-
-    /**
-     * Formats message by adding an <code>int</code> as an argument.
-     * @param messages the resource bundle
-     * @param messageKey the message key
-     * @param arg the argument
-     * @return the resolved message text
-     */
-    final private static String getMessage(ResourceBundle messages, String messageKey, int arg) 
-    {
-        Object []args = {new Integer(arg)};
-        return getMessage(messages, messageKey, args);
-    }
-    
-    /**
-     * Formats message by adding a <code>boolean</code> as an argument.
-     * @param messages the resource bundle
-     * @param messageKey the message key
-     * @param arg the argument
-     * @return the resolved message text
-     */
-    final private static String getMessage(ResourceBundle messages, String messageKey, boolean arg) 
-    {
-        Object []args = {String.valueOf(arg)};
-        return getMessage(messages, messageKey, args);
-    }
-
-    /**  
-     * Returns the package portion of the specified class.
-     * @param className the name of the class from which to extract the 
-     * package 
-     * @return package portion of the specified class
-     */   
-    final private static String getPackageName(final String className)
-    { 
-        final int index = className.lastIndexOf('.');
-        return ((index != -1) ? className.substring(0, index) : ""); // NOI18N
-    }
-
-    /**
-     * Get the system class loader. This must be done in a doPrivileged 
-     * block because of security.
-     */
-    private static ClassLoader getSystemClassLoaderPrivileged() {
-        return (ClassLoader) AccessController.doPrivileged (
-            new PrivilegedAction () {
-                public Object run () {
-                    return ClassLoader.getSystemClassLoader();
-                }
-            }
-        );
-    }
-}
diff --git a/api11/src/java/javax/jdo/spi/JDOImplHelper.java b/api11/src/java/javax/jdo/spi/JDOImplHelper.java
deleted file mode 100644
index 94058b6..0000000
--- a/api11/src/java/javax/jdo/spi/JDOImplHelper.java
+++ /dev/null
@@ -1,589 +0,0 @@
-/*
- * 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.
- */
-
-/*
- * JDOImplHelper.java
- *
- * Created on February 2, 2001, 3:53 PM
- */
-
-package javax.jdo.spi;
-
-import java.util.HashMap;
-import java.util.WeakHashMap;
-import java.util.HashSet;
-import java.util.Map;
-import java.util.Set;
-import java.util.List;
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.Collection;
-import java.util.Collections;
-
-import javax.jdo.spi.JDOPermission;
-import javax.jdo.JDOFatalUserException;
-import javax.jdo.JDOFatalInternalException;
-
-/** This class is a helper class for JDO implementations.  It contains methods
- * to register metadata for persistence-capable classes and to perform common
- * operations needed by implementations, not by end users.
- * <P><code>JDOImplHelper</code> allows construction of instances of persistence-capable
- * classes without using reflection.
- * <P>Persistence-capable classes register themselves via a static method 
- * at class load time.
- * There is no security restriction on this access.  JDO implementations
- * get access to the functions provided by this class only if they are
- * authorized by the security manager.  To avoid having every call go through
- * the security manager, only the call to get an instance is checked.  Once an 
- * implementation
- * has an instance, any of the methods can be invoked without security checks.
- * @author Craig Russell
- * @version 1.0.2
- *
- */
-public class JDOImplHelper extends java.lang.Object {
-    
-    /** This synchronized <code>HashMap</code> contains a static mapping of
-     * <code>PersistenceCapable</code> class to
-     * metadata for the class used for constructing new instances.  New entries
-     * are added by the static method in each <code>PersistenceCapable</code> class.
-     * Entries are never removed.
-     */    
-    private static Map registeredClasses = Collections.synchronizedMap(new HashMap ());
-    
-    /** This Set contains all classes that have registered for setStateManager
-     * permissions via authorizeStateManagerClass.
-     */
-    private static Map authorizedStateManagerClasses = new WeakHashMap();
-
-    /** This list contains the registered listeners for <code>RegisterClassEvent</code>s.
-     */
-    private static List listeners = new ArrayList();
-
-    /** The singleton <code>JDOImplHelper</code> instance.
-     */    
-    private static JDOImplHelper jdoImplHelper = new JDOImplHelper();
-    
-    /** The Internationalization message helper.
-     */
-    private final static I18NHelper msg = I18NHelper.getInstance ("javax.jdo.Bundle");
-    
-    /** Creates new JDOImplHelper */
-    private JDOImplHelper() {
-    }
-    
-    /** Get an instance of <code>JDOImplHelper</code>.  This method
-     * checks that the caller is authorized for <code>JDOPermission("getMetadata")</code>,
-     * and if not, throws <code>SecurityException</code>.
-     * @return an instance of <code>JDOImplHelper</code>.
-     * @throws SecurityException if the caller is not authorized for JDOPermission("getMetadata").
-     */    
-    public static JDOImplHelper getInstance() 
-        throws SecurityException {        
-        SecurityManager sec = System.getSecurityManager();
-        if (sec != null) { 
-            // throws exception if caller is not authorized
-            sec.checkPermission (JDOPermission.GET_METADATA);
-        }
-        return jdoImplHelper;
-    }
-    
-    /** Get the field names for a <code>PersistenceCapable</code> class.  The order 
-     * of fields is the natural ordering of the <code>String</code> class (without
-     * considering localization).
-     * @param pcClass the <code>PersistenceCapable</code> class.
-     * @return the field names for the class.
-     */    
-    public String[] getFieldNames (Class pcClass) {
-        Meta meta = getMeta (pcClass);
-        return meta.getFieldNames();
-    }
-
-    /** Get the field types for a <code>PersistenceCapable</code> class.  The order
-     * of fields is the same as for field names.
-     * @param pcClass the <code>PersistenceCapable</code> class.
-     * @return the field types for the class.
-     */    
-    public Class[] getFieldTypes (Class pcClass) {
-        Meta meta = getMeta (pcClass);
-        return meta.getFieldTypes();
-    }
-            
-    /** Get the field flags for a <code>PersistenceCapable</code> class.  The order
-     * of fields is the same as for field names.
-     * @param pcClass the <code>PersistenceCapable</code> class.
-     * @return the field types for the class.
-     */    
-    public byte[] getFieldFlags (Class pcClass) {
-        Meta meta = getMeta (pcClass);
-        return meta.getFieldFlags();
-    }
-            
-    /** Get the persistence-capable superclass for a <code>PersistenceCapable</code> class.
-     * @param pcClass the <code>PersistenceCapable</code> class.
-     * @return The <code>PersistenceCapable</code> superclass for this class,
-     * or <code>null</code> if there isn't one.
-     */    
-    public Class getPersistenceCapableSuperclass (Class pcClass) {
-        Meta meta = getMeta (pcClass);
-        return meta.getPersistenceCapableSuperclass();
-    }
-            
-    
-    /** Create a new instance of the class and assign its <code>jdoStateManager</code>.
-     * The new instance has its <code>jdoFlags</code> set to <code>LOAD_REQUIRED</code>.
-     * @see PersistenceCapable#jdoNewInstance(StateManager sm)
-     * @param pcClass the <code>PersistenceCapable</code> class.
-     * @param sm the <code>StateManager</code> which will own the new instance.
-     * @return the new instance, or <code>null</code> if the class is not registered.
-     */    
-    public PersistenceCapable newInstance (Class pcClass, StateManager sm) {
-        Meta meta = getMeta (pcClass);
-        PersistenceCapable pcInstance = meta.getPC();
-        return pcInstance == null?null:pcInstance.jdoNewInstance(sm);
-    }
-    
-    /** Create a new instance of the class and assign its <code>jdoStateManager</code> and 
-     * key values from the ObjectId.  If the oid parameter is <code>null</code>,
-     * no key values are copied.
-     * The new instance has its <code>jdoFlags</code> set to <code>LOAD_REQUIRED</code>.
-     * @see PersistenceCapable#jdoNewInstance(StateManager sm, Object oid)
-     * @param pcClass the <code>PersistenceCapable</code> class.
-     * @param sm the <code>StateManager</code> which will own the new instance.
-     * @return the new instance, or <code>null</code> if the class is not registered.
-     * @param oid the ObjectId instance from which to copy key field values.
- */    
-    public PersistenceCapable newInstance 
-            (Class pcClass, StateManager sm, Object oid) {
-        Meta meta = getMeta (pcClass);
-        PersistenceCapable pcInstance = meta.getPC();
-        return pcInstance == null?null:pcInstance.jdoNewInstance(sm, oid);
-    }
-    
-    /** Create a new instance of the ObjectId class of this
-     * <code>PersistenceCapable</code> class.
-     * @param pcClass the <code>PersistenceCapable</code> class.
-     * @return the new ObjectId instance, or <code>null</code> if the class is not registered.
-     */    
-    public Object newObjectIdInstance (Class pcClass) {
-        Meta meta = getMeta (pcClass);
-        PersistenceCapable pcInstance = meta.getPC();
-        return pcInstance == null?null:pcInstance.jdoNewObjectIdInstance();
-    }
-    
-    /** Create a new instance of the ObjectId class of this <code>PersistenceCapable</code>
-     * class, using the <code>String</code> form of the constructor.
-     * @return the new ObjectId instance, or <code>null</code> if the class is not registered.
-     * @param str the <code>String</code> form of the object id
-     * @param pcClass the <code>PersistenceCapable</code> class.
-     */    
-    public Object newObjectIdInstance (Class pcClass, String str) {
-        Meta meta = getMeta (pcClass);
-        PersistenceCapable pcInstance = meta.getPC();
-        return pcInstance == null?null:pcInstance.jdoNewObjectIdInstance(str);
-    }
-    
-    /** Copy fields from an outside source to the key fields in the ObjectId.
-     * This method is generated in the <code>PersistenceCapable</code> class to
-     * generate a call to the field manager for each key field in the ObjectId.  
-     * <P>For example, an ObjectId class that has three key fields (<code>int id</code>, 
-     * <code>String name</code>, and <code>Float salary</code>) would have the method generated:
-     * <P><code>
-     * void jdoCopyKeyFieldsToObjectId (Object oid, ObjectIdFieldSupplier fm) {
-     * <BR>    oid.id = fm.fetchIntField (0);
-     * <BR>    oid.name = fm.fetchStringField (1);
-     * <BR>    oid.salary = fm.fetchObjectField (2);
-     * <BR>}</code>
-     * <P>The implementation is responsible for implementing the 
-     * <code>ObjectIdFieldSupplier</code> to provide the values for the key fields.
-     * @param pcClass the <code>PersistenceCapable Class</code>.
-     * @param oid the ObjectId target of the copy.
-     * @param fm the field manager that supplies the field values.
- */    
-    public void copyKeyFieldsToObjectId 
-    (Class pcClass, PersistenceCapable.ObjectIdFieldSupplier fm, Object oid) {
-        Meta meta = getMeta (pcClass);
-        PersistenceCapable pcInstance = meta.getPC();
-        if (pcInstance == null) {
-            throw new JDOFatalInternalException (
-                msg.msg("ERR_AbstractClassNoIdentity", pcClass.getName())); //NOI18N
-        }
-        pcInstance.jdoCopyKeyFieldsToObjectId(fm, oid);
-    }
-
-    /** Copy fields to an outside source from the key fields in the ObjectId.
-     * This method is generated in the <code>PersistenceCapable</code> class to generate
-     * a call to the field manager for each key field in the ObjectId.  For
-     * example, an ObjectId class that has three key fields (<code>int id</code>,
-     * <code>String name</code>, and <code>Float salary</code>) would have the method generated:
-     * <P><code>void jdoCopyKeyFieldsFromObjectId
-     * <BR>        (PersistenceCapable oid, ObjectIdFieldConsumer fm) {
-     * <BR>     fm.storeIntField (0, oid.id);
-     * <BR>     fm.storeStringField (1, oid.name);
-     * <BR>     fm.storeObjectField (2, oid.salary);
-     * <BR>}</code>
-     * <P>The implementation is responsible for implementing the
-     * <code>ObjectIdFieldConsumer</code> to store the values for the key fields.
-     * @param pcClass the <code>PersistenceCapable</code> class
-     * @param oid the ObjectId source of the copy.
-     * @param fm the field manager that receives the field values.
-     */    
-    public void copyKeyFieldsFromObjectId
-    (Class pcClass, PersistenceCapable.ObjectIdFieldConsumer fm, Object oid) {
-        Meta meta = getMeta (pcClass);
-        PersistenceCapable pcInstance = meta.getPC();
-        if (pcInstance == null) {
-            throw new JDOFatalInternalException (
-                msg.msg("ERR_AbstractClassNoIdentity", pcClass.getName())); //NOI18N
-        }
-        pcInstance.jdoCopyKeyFieldsFromObjectId(fm, oid);
-    }
-    
-    /** Register metadata by class.  The registration will be done in the
-     * class named <code>JDOImplHelper</code> loaded by the same or an
-     * ancestor class loader as the <code>PersistenceCapable</code> class
-     * performing the registration. 
-     *
-     * @param pcClass the <code>PersistenceCapable</code> class
-     * used as the key for lookup.
-     * @param fieldNames an array of <code>String</code> field names for persistent and transactional fields
-     * @param fieldTypes an array of <code>Class</code> field types
-     * @param fieldFlags the Field Flags for persistent and transactional fields
-     * @param pc an instance of the <code>PersistenceCapable</code> class
-     * @param persistenceCapableSuperclass the most immediate superclass that is <code>PersistenceCapable</code>
-     */    
-    public static void registerClass (Class pcClass, 
-            String[] fieldNames, Class[] fieldTypes, 
-            byte[] fieldFlags, Class persistenceCapableSuperclass,
-            PersistenceCapable pc) {
-        if (pcClass == null) 
-            throw new NullPointerException(msg.msg("ERR_NullClass"));
-        Meta meta = new Meta (fieldNames, fieldTypes, 
-            fieldFlags, persistenceCapableSuperclass, pc);
-        registeredClasses.put (pcClass, meta);
-
-        // handle class registration listeners
-        synchronized (listeners) {
-            if (!listeners.isEmpty()) {
-                RegisterClassEvent event = new RegisterClassEvent(
-                    jdoImplHelper, pcClass, fieldNames, fieldTypes, 
-                    fieldFlags, persistenceCapableSuperclass);
-                for (Iterator i = listeners.iterator(); i.hasNext();) {
-                    RegisterClassListener crl = 
-                        (RegisterClassListener)i.next();
-                    if (crl != null) {
-                        crl.registerClass(event);
-                    }
-                }
-            }
-        }
-    }
-        
-    /**
-     * Unregister metadata by class loader. This method unregisters all
-     * registered <code>PersistenceCapable</code> classes loaded by the
-     * specified class loader. Any attempt to get metadata for unregistered
-     * classes will result in a <code>JDOFatalUserException</code>. 
-     * @param cl the class loader.
-     * @since 1.0.2
-     */
-    public void unregisterClasses (ClassLoader cl)
-    {
-        SecurityManager sec = System.getSecurityManager();
-        if (sec != null) { 
-            // throws exception if caller is not authorized
-            sec.checkPermission (JDOPermission.MANAGE_METADATA);
-        }
-        synchronized(registeredClasses) {
-            for (Iterator i = registeredClasses.keySet().iterator(); i.hasNext();) {
-                Class pcClass = (Class)i.next();
-                // Note, the pc class was registered by calling the static
-                // method JDOImplHelper.registerClass. This means the
-                // JDOImplHelper class loader is the same as or an ancestor
-                // of the class loader of the pc class. In this case method
-                // getClassLoader does not perform a security check for
-                // RuntimePermission("getClassLoader") and thus we do not 
-                // need a privileged block for the getClassLoader call.
-                if ((pcClass != null) && (pcClass.getClassLoader() == cl)) {
-                    // unregister pc class, if its class loader is the
-                    // specified one.
-                    i.remove();
-                }
-            }
-        }
-    }
-
-    /**
-     * Unregister metadata by class. This method unregisters the specified
-     * class. Any further attempt to get metadata for the specified class will
-     * result in a <code>JDOFatalUserException</code>. 
-     * @param pcClass the <code>PersistenceCapable</code> class to be unregistered.
-     * @since 1.0.2
-     */
-    public void unregisterClass (Class pcClass)
-    {
-        if (pcClass == null) 
-            throw new NullPointerException(msg.msg("ERR_NullClass"));
-        SecurityManager sec = System.getSecurityManager();
-        if (sec != null) { 
-            // throws exception if caller is not authorized
-            sec.checkPermission (JDOPermission.MANAGE_METADATA);
-        }
-        registeredClasses.remove(pcClass);
-    }
-
-    /** 
-     * Add the specified <code>RegisterClassListener</code> to the listener list.
-     * @param crl the listener to be added
-     */
-    public void addRegisterClassListener (RegisterClassListener crl) {
-        HashSet alreadyRegisteredClasses = null;
-        synchronized (listeners) {
-            listeners.add(crl);
-            // Make a copy of the existing set of registered classes.
-            // Between these two lines of code, any number of new class registrations
-            // might occur, and will then all wait until this synchronized block completes.
-            // Some of the class registrations might be delivered twice to
-            // the newly registered listener.
-            alreadyRegisteredClasses = new HashSet (registeredClasses.keySet());
-        }
-        // new registrations will call the new listener while the following occurs
-        // notify the new listener about already-registered classes
-        for (Iterator it = alreadyRegisteredClasses.iterator(); it.hasNext();) {
-            Class pcClass = (Class)it.next();
-            Meta meta = getMeta (pcClass);
-            RegisterClassEvent event = new RegisterClassEvent(
-                this, pcClass, meta.getFieldNames(), meta.getFieldTypes(), 
-                meta.getFieldFlags(), meta.getPersistenceCapableSuperclass());
-            crl.registerClass (event);
-        }
-    }
-
-    /** 
-     * Remove the specified <code>RegisterClassListener</code> from the listener list.
-     * @param crl the listener to be removed
-     */
-    public void removeRegisterClassListener (RegisterClassListener crl) {
-        synchronized (listeners) {
-            listeners.remove(crl);
-        }
-    }
-
-    /**
-     * Returns a collection of class objects of the registered 
-     * persistence-capable classes.
-     * @return registered persistence-capable classes
-     */
-    public Collection getRegisteredClasses() {
-        return Collections.unmodifiableCollection(registeredClasses.keySet());
-    }
-
-    /** Look up the metadata for a <code>PersistenceCapable</code> class.
-     * @param pcClass the <code>Class</code>.
-     * @return the <code>Meta</code> for the <code>Class</code>.
-     */    
-    private static Meta getMeta (Class pcClass) {
-        Meta ret = (Meta) registeredClasses.get (pcClass);
-        if (ret == null) {
-            throw new JDOFatalUserException(
-                msg.msg ("ERR_NoMetadata", pcClass.getName())); //NOI18N
-        }
-        return ret;
-    }
-    
-    /** Register a class authorized to replaceStateManager.  The caller of
-     * this method must be authorized for JDOPermission("setStateManager").
-     * During replaceStateManager, a persistence-capable class will call
-     * the corresponding checkAuthorizedStateManager and the class of the
-     * instance of the parameter must have been registered.
-     * @param smClass a Class that is authorized for JDOPermission("setStateManager").
-     * @throws SecurityException if the caller is not authorized for JDOPermission("setStateManager").
-     * @since 1.0.1
-     */
-    public static void registerAuthorizedStateManagerClass (Class smClass) 
-        throws SecurityException {
-        if (smClass == null) 
-            throw new NullPointerException(msg.msg("ERR_NullClass"));
-        SecurityManager sm = System.getSecurityManager();
-        if (sm != null) {
-            sm.checkPermission(JDOPermission.SET_STATE_MANAGER);
-        }
-        synchronized (authorizedStateManagerClasses) {
-            authorizedStateManagerClasses.put(smClass, null);
-        }
-    }
-    
-    /** Register classes authorized to replaceStateManager.  The caller of
-     * this method must be authorized for JDOPermission("setStateManager").
-     * During replaceStateManager, a persistence-capable class will call
-     * the corresponding checkAuthorizedStateManager and the class of the
-     * instance of the parameter must have been registered.
-     * @param smClasses a Collection of Classes that are authorized for JDOPermission("setStateManager").
-     * @throws SecurityException if the caller is not authorized for JDOPermission("setStateManager").
-     * @since 1.0.1
-     */
-    public static void registerAuthorizedStateManagerClasses (Collection smClasses) 
-        throws SecurityException {
-        SecurityManager sm = System.getSecurityManager();
-        if (sm != null) {
-            sm.checkPermission(JDOPermission.SET_STATE_MANAGER);
-            synchronized (authorizedStateManagerClasses) {
-                for (Iterator it = smClasses.iterator(); it.hasNext();) {
-                    Object smClass = it.next();
-                    if (!(smClass instanceof Class)) {
-                        throw new ClassCastException(
-                            msg.msg("ERR_StateManagerClassCast", 
-                                smClass.getClass().getName()));
-                    }
-                    registerAuthorizedStateManagerClass((Class)it.next());
-                }
-            }
-        }
-    }
-    
-    /** Check that the parameter instance is of a class that is authorized for
-     * JDOPermission("setStateManager").  This method is called by the
-     * replaceStateManager method in persistence-capable classes.
-     * A class that is passed as the parameter to replaceStateManager must be
-     * authorized for JDOPermission("setStateManager").  To improve performance,
-     * first the set of authorized classes is checked, and if not present, a
-     * regular permission check is made.  The regular permission check requires
-     * that all callers on the stack, including the persistence-capable class
-     * itself, must be authorized for JDOPermission("setStateManager").
-     * @param sm an instance of StateManager whose class is to be checked.
-     * @since 1.0.1
-     */
-    public static void checkAuthorizedStateManager (StateManager sm) {
-        checkAuthorizedStateManagerClass(sm.getClass());
-    }
-
-    /** Check that the parameter instance is a class that is authorized for
-     * JDOPermission("setStateManager").  This method is called by the
-     * constructors of JDO Reference Implementation classes.
-     * @param smClass a Class to be checked for JDOPermission("setStateManager")
-     * @since 1.0.1
-     */
-    public static void checkAuthorizedStateManagerClass (Class smClass) {
-        final SecurityManager scm = System.getSecurityManager();
-        if (scm == null) {
-            // if no security manager, no checking.
-            return;
-        }
-        synchronized(authorizedStateManagerClasses) {
-            if (authorizedStateManagerClasses.containsKey(smClass)) {
-                return;
-            }
-        }
-
-        // if not already authorized, perform "long" security checking.
-        scm.checkPermission(JDOPermission.SET_STATE_MANAGER);
-    }
-
-    /** This is a helper class to manage metadata per persistence-capable
-     * class.  The information is used at runtime to provide field names and
-     * field types to the JDO Model.
-     *
-     * This is the value of the <code>HashMap</code> which
-     * relates the <code>PersistenceCapable Class</code>
-     * as a key to the metadata.
-     */    
-    static class Meta {
-        
-        /** Construct an instance of <code>Meta</code>.
-         * @param fieldNames An array of <code>String</code>
-         * @param fieldTypes An array of <code>Class</code>
-         * @param fieldFlags an array of <code>int</code>
-         * @param persistenceCapableSuperclass the most immediate <code>PersistenceCapable</code> superclass
-         * @param pc An instance of the <code>PersistenceCapable</code> class
-         */        
-        Meta (String[] fieldNames, Class[] fieldTypes, byte[] fieldFlags,
-              Class persistenceCapableSuperclass, PersistenceCapable pc) {
-            this.fieldNames = fieldNames;
-            this.fieldTypes = fieldTypes;
-            this.fieldFlags = fieldFlags;
-            this.persistenceCapableSuperclass = persistenceCapableSuperclass;
-            this.pc = pc;
-        }
-    
-        /** This is an array of field names used
-         * for the Model at runtime.  The field
-         * is passed by the static class initialization.
-         */
-        String fieldNames[];
-    
-        /** Get the field names from the metadata.
-         * @return the array of field names.
-         */
-        String[] getFieldNames() {
-            return fieldNames;
-        }
-    
-        /** This is an array of field types used
-         * for the Model at runtime.  The field
-         * is passed by the static class initialization.
-         */
-        Class fieldTypes[];
-    
-        /** Get the field types from the metadata.
-         * @return the array of field types.
-         */
-        Class[] getFieldTypes() {
-            return fieldTypes;
-        }
-    
-        /** This is an array of field flags used
-         * for the Model at runtime.  The field
-         * is passed by the static class initialization.
-         */
-        byte fieldFlags[];
-    
-        /** Get the field types from the metadata.
-         * @return the array of field types.
-         */
-        byte[] getFieldFlags() {
-            return fieldFlags;
-        }
-
-        /** This is the <code>Class</code> instance of the <code>PersistenceCapable</code> superclass.
-         */
-        Class persistenceCapableSuperclass;
-    
-        /** Return the <code>PersistenceCapable</code> superclass.
-         * @return the <code>PersistenceCapable</code> superclass
-         */
-        Class getPersistenceCapableSuperclass() {
-            return persistenceCapableSuperclass;
-        }
-        /** This is an instance of <code>PersistenceCapable</code>,
-         * used at runtime to create new instances.
-         */
-        PersistenceCapable pc;
-    
-        /** Get an instance of the <code>PersistenceCapable</code> class.
-         * @return an instance of the <code>PersistenceCapable Class</code>.
-         */
-        PersistenceCapable getPC() {
-            return pc;
-        }
-    
-        /** Return the string form of the metadata.
-         * @return the string form
-         */
-        public String toString() {
-            return "Meta-" + pc.getClass().getName(); //NOI18N
-        }
-    }
-}
diff --git a/api11/src/java/javax/jdo/spi/JDOPermission.java b/api11/src/java/javax/jdo/spi/JDOPermission.java
deleted file mode 100644
index f1da029..0000000
--- a/api11/src/java/javax/jdo/spi/JDOPermission.java
+++ /dev/null
@@ -1,133 +0,0 @@
-/*
- * 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.
- */
-
-package javax.jdo.spi;
-
-/**
- * The <code>JDOPermission</code> class is for operations that are reserved for JDO 
- * implementations and should not be called by other code.  A
- * <code>JDOPermission</code> is a <em>named permission</em> and has no
- * actions.  There are two names currently defined.  Each named permission
- * has a corresponding public static final field which contains an instance
- * of the named permission.
- * <P>
- * The following table
- * provides a summary description of what each named permission allows,
- * and discusses the risks of granting code the permission.
- * <P>
- *
- * <table border=1 cellpadding=5>
- * <tr>
- * <th>Permission Target Name</th>
- * <th>What the Permission Allows</th>
- * <th>Risks of Allowing this Permission</th>
- * </tr>
- *
- * <tr>
- *   <td><code>setStateManager</code></td>
- *   <td>This allows setting the <code>StateManager</code> for an instance of <code>PersistenceCapable</code>. 
- *   The <code>StateManager</code>
- *   has unlimited access to get and set persistent and transactional fields of
- *   the <code>PersistenceCapable</code> instance.</td>
- *   <td>This is dangerous in that information (possibly confidential) 
- *   normally unavailable would be accessible to malicious code.</td>
- * </tr>
- *
- * <tr>
- *   <td><code>getMetadata</code></td>
- *   <td>This allows getting metadata for any <code>PersistenceCapable</code> class that has
- *   registered with <code>JDOImplHelper</code>.</td>
- *   <td>This is dangerous in that metadata information (possibly confidential) 
- *   normally unavailable would be accessible to malicious code.</td>
- * </tr>
- *
- * <tr>
- *   <td><code>manageMetadata</code></td>
- *   <td>This allows managing metadata for any <code>PersistenceCapable</code> class that has
- *   registered with <code>JDOImplHelper</code>.</td>
- *   <td>This is dangerous in that metadata information (possibly confidential) 
- *   normally unavailable would be manageable (modifiable) by malicious code.</td>
- * </tr>
- *
- * <tr>
- *   <td><code>closePersistenceManagerFactory</code></td>
- *   <td>This allows closing a <code>PersistenceManagerFactory</code>,
- *       thereby releasing resources.</td> 
- *   <td>This is dangerous in that resources bound to the
- *       <code>PersistenceManagerFactory</code> would be releaseable by
- *       malicious code.</td>  
- * </tr>
- *
- * </table>
- *
- * @see java.security.Permission
- * @see java.security.BasicPermission
- * @see javax.jdo.spi.JDOImplHelper
- * @see javax.jdo.spi.PersistenceCapable
- * @version 1.0.2
- */
-public final
-class JDOPermission extends java.security.BasicPermission {
-    
-    /**
-     * Constructs a <code>JDOPermission</code> with the specified name.
-     *
-     * @param name the name of the <code>JDOPermission</code>
-     */
-    public JDOPermission(String name) {
-        super(name);
-    }
-
-    /**
-     * Constructs a <code>JDOPermission</code> with the specified name and actions.
-     * The actions should be <code>null</code>; they are ignored. This
-     * constructor exists for use by the <code>Policy</code> object
-     * to instantiate new <code>Permission</code> objects.
-     *
-     * @param name the name of the <code>JDOPermission</code>
-     * @param actions should be <code>null</code>.
-     */
-    public JDOPermission(String name, String actions) {
-        super(name, actions);
-    }
-
-    /** An instance of <code>JDOPermission</code> to be used for
-     * <code>getMetadata</code> permission checking.
-     */
-    public final static JDOPermission GET_METADATA = 
-        new JDOPermission("getMetadata"); // NOI18N
-    
-    /** An instance of <code>JDOPermission</code> to be used for
-     * <code>manageMetadata</code> permission checking.
-     * @since 1.0.2
-     */
-    public final static JDOPermission MANAGE_METADATA = 
-        new JDOPermission("manageMetadata"); // NOI18N
-    
-    /** An instance of <code>JDOPermission</code> to be used for
-     * <code>setStateManager</code> permission checking.
-     */
-    public final static JDOPermission SET_STATE_MANAGER = 
-        new JDOPermission("setStateManager"); // NOI18N
-    
-    /** An instance of <code>JDOPermission</code> to be used for
-     * <code>closePersistenceManagerFactory</code> permission checking.
-     * @since 1.0.1
-     */
-    public final static JDOPermission CLOSE_PERSISTENCE_MANAGER_FACTORY = 
-        new JDOPermission("closePersistenceManagerFactory"); // NOI18N
-    
-}
diff --git a/api11/src/java/javax/jdo/spi/PersistenceCapable.java b/api11/src/java/javax/jdo/spi/PersistenceCapable.java
deleted file mode 100644
index 0d6e4d6..0000000
--- a/api11/src/java/javax/jdo/spi/PersistenceCapable.java
+++ /dev/null
@@ -1,543 +0,0 @@
-/*
- * 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.
- */
-
-package javax.jdo.spi;
-
-import javax.jdo.PersistenceManager;
-import javax.jdo.JDOHelper; // for javadoc
-
-/**
- *
- * @author Craig Russell
- * @version 1.0
- */
-
-/**
- * A class that can be managed by a JDO implementation must implement this interface.
- *
- * <P>Every class whose instances can be managed by a JDO PersistenceManager must
- * implement the PersistenceCapable interface.
- *
- * <P>This interface defines methods that allow the implementation to manage
- * the instances.  It also defines methods that allow a JDO aware
- * application to examine the runtime state of instances.  For example,
- * an application can discover whether the instance is persistent, transactional,
- * dirty, new, or deleted; and to get its associated
- * PersistenceManager if it has one.
- *
- * <P>In the Reference Implementation, the JDO Enhancer modifies the class
- * to implement PersistenceCapable prior to loading the class into the runtime
- * environment.  The Reference Enhancer also adds code to implement the
- * methods defined by PersistenceCapable.
- *
- *<P>The extra methods in the PersistenceCapable interface might be generated
- * by pre-processing a .java file, or might be generated from a tool directly.
- * The exact technique for generating the extra methods is not specified by
- * JDO.
- *
- * <P>The PersistenceCapable interface is designed to avoid name conflicts
- * in the scope of user-defined classes.  All of its declared method
- * names are prefixed with 'jdo'.
- */
-public interface PersistenceCapable {
-    /** If jdoFlags is set to READ_WRITE_OK, then the fields in the default fetch group
-     * can be accessed for read or write without notifying the StateManager.
-     */
-    static final byte READ_WRITE_OK = 0;
-    
-    /** If jdoFlags is set to LOAD_REQUIRED, then the fields in the default fetch group
-     * cannot be accessed for read or write without notifying the StateManager.
-     */
-    static final byte LOAD_REQUIRED = 1;
-    
-    /** If jdoFlags is set to READ_OK, then the fields in the default fetch group
-     * can be accessed for read without notifying the StateManager.
-     */
-    static final byte READ_OK = -1;
-    
-    /** If jdoFieldFlags for a field includes CHECK_READ, then
-     * the field has been enhanced to call the jdoStateManager on read
-     * if the jdoFlags setting is not READ_OK or READ_WRITE_OK.
-     */
-    static final byte CHECK_READ = 1;
-    
-    /** If jdoFieldFlags for a field includes MEDIATE_READ, then
-     * the field has been enhanced to always call the jdoStateManager
-     * on all reads.
-     */
-    static final byte MEDIATE_READ = 2;
-    
-    /** If jdoFieldFlags for a field includes CHECK_WRITE,
-     * then the field has been enhanced to call the
-     * jdoStateManager on write if the jdoFlags setting is not
-     * READ_WRITE_OK;.
-     */
-    static final byte CHECK_WRITE = 4;
-    
-    /** If jdoFieldFlags for a field includes MEDIATE_WRITE, then
-     * the field has been enhanced to always call the jdoStateManager
-     * on all writes.
-     */
-    static final byte MEDIATE_WRITE = 8;
-    
-    /** If jdoFieldFlags for a field includes SERIALIZABLE,
-     * then the field is not declared as TRANSIENT.
-     */
-    static final byte SERIALIZABLE = 16;
-    
-    /** Return the associated PersistenceManager if there is one.
-     * Transactional and persistent instances return the associated
-     * PersistenceManager.
-     *
-     * <P>Transient non-transactional instances return null.
-     * <P>This method always delegates to the StateManager if it is non-null.
-     * @return the PersistenceManager associated with this instance.
-     */
-    PersistenceManager jdoGetPersistenceManager();
-    
-    /** This method sets the StateManager instance that manages the state
-     * of this instance. This method is normally used by the StateManager
-     * during the process of making an instance persistent, transient,
-     * or transactional.
-     *
-     * The caller of this method must have JDOPermission for the instance,
-     * if the instance is not already owned by a StateManager.
-     * If the parameter is null, and the StateManager approves the change,
-     * then the jdoFlags field will be reset to READ_WRITE_OK.
-     * If the parameter is not null, and the security manager approves
-     * the change, then the jdoFlags field will be reset to LOAD_REQUIRED.
-     * @param sm The StateManager which will own this instance, or null
-     * to reset the instance to transient state
-     * @throws SecurityException if the caller does not have JDOPermission
-     * @see JDOPermission
-     */
-    void jdoReplaceStateManager(StateManager sm)
-    throws SecurityException;
-    
-    /** The owning StateManager uses this method to ask the instance to
-     * provide the value of the single field identified by fieldNumber.
-     * @param fieldNumber the field whose value is to be provided by
-     * a callback to the StateManager's
-     * providedXXXField method
-     */
-    void jdoProvideField(int fieldNumber);
-    
-    /** The owning StateManager uses this method to ask the instance to
-     * provide the values of the multiple fields identified by fieldNumbers.
-     * @param fieldNumbers the fields whose values are to be provided by
-     * multiple callbacks to the StateManager's
-     * providedXXXField method
-     */
-    void jdoProvideFields(int[] fieldNumbers);
-    
-    /** The owning StateManager uses this method to ask the instance to
-     * replace the value of the single field identified by number.
-     * @param fieldNumber the field whose value is to be replaced by
-     * a callback to the StateManager's
-     * replacingXXXField method
-     */
-    void jdoReplaceField(int fieldNumber);
-    
-    /** The owning StateManager uses this method to ask the instance to
-     * replace the values of the multiple fields identified by number.
-     * @param fieldNumbers the fields whose values are to be replaced by
-     * multiple callbacks to the StateManager's
-     * replacingXXXField method
-     */
-    void jdoReplaceFields(int[] fieldNumbers);
-    
-    /** The owning StateManager uses this method to ask the instance to
-     * replace the value of the flags by calling back the StateManager
-     * replacingFlags method.
-     */
-    void jdoReplaceFlags();
-    
-    /** Copy field values from another instance of the same class
-     * to this instance.
-     *<P>This method will throw an exception if the other instance is
-     * not managed by the same StateManager as this instance.
-     * @param other the PC instance from which field values are to be copied
-     * @param fieldNumbers the field numbers to be copied into this instance
-     */
-    void jdoCopyFields(Object other, int[] fieldNumbers);
-    
-    /** Explicitly mark this instance and this field dirty.
-     * Normally, PersistenceCapable classes are able to detect changes made
-     * to their fields.  However, if a reference to an array is given to a
-     * method outside the class, and the array is modified, then the
-     * persistent instance is not aware of the change.  This API allows the
-     * application to notify the instance that a change was made to a field.
-     *
-     *<P>The field name should be the fully qualified name, including package
-     * name and class name of the class declaring the field.  This allows
-     * unambiguous identification of the field to be marked dirty.
-     * If multiple classes declare the same field, and
-     * if the package and class name are not provided by the parameter in
-     * this API, then the field marked
-     * dirty is the field declared by the most derived class.
-     * <P>Transient instances ignore this method.
-     *<P>
-     * @param fieldName the name of the field to be marked dirty.
-     */
-    void jdoMakeDirty(String fieldName);
-    
-    /** Return a copy of the JDO identity associated with this instance.
-     *
-     * <P>Persistent instances of PersistenceCapable classes have a JDO identity
-     * managed by the PersistenceManager.  This method returns a copy of the
-     * ObjectId that represents the JDO identity.
-     *
-     * <P>Transient instances return null.
-     *
-     * <P>The ObjectId may be serialized
-     * and later restored, and used with a PersistenceManager from the same JDO
-     * implementation to locate a persistent instance with the same data store
-     * identity.
-     *
-     * <P>If the JDO identity is managed by the application, then the ObjectId may
-     * be used with a PersistenceManager from any JDO implementation that supports
-     * the PersistenceCapable class.
-     *
-     * <P>If the JDO identity is not managed by the application or the data store,
-     * then the ObjectId returned is only valid within the current transaction.
-     * <P>If the JDO identity is being changed in the transaction, this method
-     * returns the object id as of the beginning of the current transaction.
-     *
-     * @see PersistenceManager#getObjectId(Object pc)
-     * @see PersistenceManager#getObjectById(Object oid, boolean validate)
-     * @return a copy of the ObjectId of this instance as of the beginning of the transaction.
-     */
-    Object jdoGetObjectId();
-    
-    /** Return a copy of the JDO identity associated with this instance.
-     * This method is the same as jdoGetObjectId if the identity of the
-     * instance has not changed in the current transaction.
-     * <P>If the JDO identity is being changed in the transaction, this method
-     * returns the current object id as modified in the current transaction.
-     *
-     * @see #jdoGetObjectId()
-     * @see PersistenceManager#getObjectId(Object pc)
-     * @see PersistenceManager#getObjectById(Object oid, boolean validate)
-     * @return a copy of the ObjectId of this instance as modified in the transaction.
-     */
-    Object jdoGetTransactionalObjectId();
-    
-    /** Tests whether this object is dirty.
-     *
-     * Instances that have been modified, deleted, or newly
-     * made persistent in the current transaction return true.
-     *
-     *<P>Transient instances return false.
-     *<P>
-     * @see JDOHelper#isDirty(Object pc)
-     * @see JDOHelper#makeDirty(Object pc, String fieldName)
-     * @see #jdoMakeDirty(String fieldName)
-     * @return true if this instance has been modified in the current transaction.
-     */
-    boolean jdoIsDirty();
-    
-    /** Tests whether this object is transactional.
-     *
-     * Instances whose state is associated with the current transaction
-     * return true.
-     *
-     *<P>Transient instances return false.
-     *<P>
-     * @see JDOHelper#isTransactional(Object pc)
-     * @see PersistenceManager#makeTransactional(Object pc)
-     * @return true if this instance is transactional.
-     */
-    boolean jdoIsTransactional();
-    
-    /** Tests whether this object is persistent.
-     * Instances that represent persistent objects in the data store
-     * return true.
-     * @see JDOHelper#isPersistent(Object pc)
-     * @see PersistenceManager#makePersistent(Object pc)
-     * @return true if this instance is persistent.
-     */
-    boolean jdoIsPersistent();
-    
-    /** Tests whether this object has been newly made persistent.
-     *
-     * Instances that have been made persistent in the current transaction
-     * return true.
-     *
-     *<P>Transient instances return false.
-     *<P>
-     * @see JDOHelper#isNew(Object pc)
-     * @see PersistenceManager#makePersistent(Object pc)
-     * @return true if this instance was made persistent
-     * in the current transaction.
-     */
-    boolean jdoIsNew();
-    
-    /** Tests whether this object has been deleted.
-     *
-     * Instances that have been deleted in the current transaction return true.
-     *
-     *<P>Transient instances return false.
-     *<P>
-     * @see JDOHelper#isDeleted(Object pc)
-     * @see PersistenceManager#deletePersistent(Object pc)
-     * @return true if this instance was deleted
-     * in the current transaction.
-     */
-    boolean jdoIsDeleted();
-    
-    /** Return a new instance of this class, with the jdoStateManager set to the
-     * parameter, and jdoFlags set to LOAD_REQUIRED.
-     * <P>This method is used as a performance optimization as an alternative to
-     * using reflection to construct a new instance.  It is used by the
-     * JDOImplHelper class method newInstance.
-     * @return a new instance of this class.
-     * @see JDOImplHelper#newInstance(Class pcClass, StateManager sm)
-     * @param sm the StateManager that will own the new instance.
-     */
-    PersistenceCapable jdoNewInstance(StateManager sm);
-    
-    /** Return a new instance of this class, with the jdoStateManager set to the
-     * parameter, key fields initialized to the values in the oid, and jdoFlags
-     * set to LOAD_REQUIRED.
-     * <P>This method is used as a performance optimization as an alternative to
-     * using reflection to construct a new instance of a class that uses
-     * application identity.  It is used by the
-     * JDOImplHelper class method newInstance.
-     * @return a new instance of this class.
-     * @see JDOImplHelper#newInstance(Class pcClass, StateManager sm)
-     * @param sm the StateManager that will own the new instance.
-     * @param oid an instance of the object id class (application identity).
-     */
-    PersistenceCapable jdoNewInstance(StateManager sm, Object oid);
-    
-    /** Create a new instance of the ObjectId class for this PersistenceCapable class.
-     * The fields will have their Java default values.
-     * @return the new instance created.
-     */
-    Object jdoNewObjectIdInstance();
-    
-    /** Create a new instance of the ObjectId class for this PersistenceCapable
-     * class, using the String form of the constructor.
-     * The fields will have their Java default values.
-     * @return the new instance created.
-     * @param str the String form of the object identity instance
-     */
-    Object jdoNewObjectIdInstance(String str);
-    
-    /** Copy fields from this PersistenceCapable instance to the Object Id instance.
-     * @param oid the ObjectId target of the key fields
-     */
-    void jdoCopyKeyFieldsToObjectId(Object oid);
-    
-    /** Copy fields from an outside source to the key fields in the ObjectId.
-     * This method is generated in the PersistenceCapable class to generate
-     * a call to the field manager for each key field in the ObjectId.  For
-     * example, an ObjectId class that has three key fields (int id,
-     * String name, and Float salary) would have the method generated:
-     * <P>void jdoCopyKeyFieldsToObjectId
-     * <P>        (ObjectIdFieldSupplier fm, Object objectId) {
-     * <P>    EmployeeKey oid = (EmployeeKey)objectId;
-     * <P>    oid.id = fm.fetchIntField (0);
-     * <P>    oid.name = fm.fetchStringField (1);
-     * <P>    oid.salary = fm.fetchObjectField (2);
-     * <P>}
-     * <P>The implementation is responsible for implementing the
-     * ObjectIdFieldSupplier to produce the values for the key fields.
-     * @param oid the ObjectId target of the copy.
-     * @param fm the field supplier that supplies the field values.
-     */
-    void jdoCopyKeyFieldsToObjectId(ObjectIdFieldSupplier fm, Object oid);
-    
-    /** Copy fields to an outside source from the key fields in the ObjectId.
-     * This method is generated in the PersistenceCapable class to generate
-     * a call to the field manager for each key field in the ObjectId.  For
-     * example, an ObjectId class that has three key fields (int id,
-     * String name, and Float salary) would have the method generated:
-     * <P>void copyKeyFieldsFromObjectId
-     * <P>        (ObjectIdFieldConsumer fm, Object objectId) {
-     * <P>     EmployeeKey oid = (EmployeeKey)objectId;
-     * <P>     fm.storeIntField (0, oid.id);
-     * <P>     fm.storeStringField (1, oid.name);
-     * <P>     fm.storeObjectField (2, oid.salary);
-     * <P>}
-     * <P>The implementation is responsible for implementing the
-     * ObjectIdFieldManager to store the values for the key fields.
-     * @param oid the ObjectId source of the copy.
-     * @param fm the field manager that receives the field values.
-     */
-    void jdoCopyKeyFieldsFromObjectId(ObjectIdFieldConsumer fm, Object oid);
-    
-    /** This interface is a convenience interface that allows an instance to
-     * implement both ObjectIdFieldSupplier and ObjectIdFieldConsumer.
-     */
-    static interface ObjectIdFieldManager extends ObjectIdFieldConsumer, ObjectIdFieldSupplier {}
-    
-    /** This interface is used to provide fields to the Object id instance.  It is used
-     * by the method copyKeyFieldsToObjectId.  When the method is called, the
-     * generated code calls the instance of ObjectIdFieldManager for each field in
-     * the object id.
-     */
-    static interface ObjectIdFieldSupplier {
-        
-        /** Fetch one field from the field manager.  This field will be stored in the
-         * proper field of the ObjectId.
-         * @param fieldNumber the field number of the key field.
-         * @return the value of the field to be stored into the ObjectId.
-         */
-        boolean fetchBooleanField(int fieldNumber);
-        
-        /** Fetch one field from the field manager.  This field will be stored in the
-         * proper field of the ObjectId.
-         * @param fieldNumber the field number of the key field.
-         * @return the value of the field to be stored into the ObjectId.
-         */
-        char fetchCharField(int fieldNumber);
-        
-        /** Fetch one field from the field manager.  This field will be stored in the
-         * proper field of the ObjectId.
-         * @param fieldNumber the field number of the key field.
-         * @return the value of the field to be stored into the ObjectId.
-         */
-        byte fetchByteField(int fieldNumber);
-        
-        /** Fetch one field from the field manager.  This field will be stored in the
-         * proper field of the ObjectId.
-         * @param fieldNumber the field number of the key field.
-         * @return the value of the field to be stored into the ObjectId.
-         */
-        short fetchShortField(int fieldNumber);
-        
-        /** Fetch one field from the field manager.  This field will be stored in the
-         * proper field of the ObjectId.
-         * @param fieldNumber the field number of the key field.
-         * @return the value of the field to be stored into the ObjectId.
-         */
-        int fetchIntField(int fieldNumber);
-        
-        /** Fetch one field from the field manager.  This field will be stored in the
-         * proper field of the ObjectId.
-         * @param fieldNumber the field number of the key field.
-         * @return the value of the field to be stored into the ObjectId.
-         */
-        long fetchLongField(int fieldNumber);
-        
-        /** Fetch one field from the field manager.  This field will be stored in the
-         * proper field of the ObjectId.
-         * @param fieldNumber the field number of the key field.
-         * @return the value of the field to be stored into the ObjectId.
-         */
-        float fetchFloatField(int fieldNumber);
-        
-        /** Fetch one field from the field manager.  This field will be stored in the
-         * proper field of the ObjectId.
-         * @param fieldNumber the field number of the key field.
-         * @return the value of the field to be stored into the ObjectId.
-         */
-        double fetchDoubleField(int fieldNumber);
-        
-        /** Fetch one field from the field manager.  This field will be stored in the
-         * proper field of the ObjectId.
-         * @param fieldNumber the field number of the key field.
-         * @return the value of the field to be stored into the ObjectId.
-         */
-        String fetchStringField(int fieldNumber);
-        
-        /** Fetch one field from the field manager.  This field will be stored in the
-         * proper field of the ObjectId.
-         * @param fieldNumber the field number of the key field.
-         * @return the value of the field to be stored into the ObjectId.
-         */
-        Object fetchObjectField(int fieldNumber);
-    }
-    
-    /** This interface is used to store fields from the Object id instance.  It is used
-     * by the method copyKeyFieldsFromObjectId.  When the method is called, the
-     * generated code calls the instance of ObjectIdFieldManager for each field in
-     * the object id.
-     */
-    static interface ObjectIdFieldConsumer {
-        
-        /** Store one field into the field manager.  This field was retrieved from
-         * the field of the ObjectId.
-         * @param fieldNumber the field number of the key field.
-         * @param value the value of the field from the ObjectId.
-         */
-        void storeBooleanField(int fieldNumber, boolean value);
-        
-        /** Store one field into the field manager.  This field was retrieved from
-         * the field of the ObjectId.
-         * @param fieldNumber the field number of the key field.
-         * @param value the value of the field from the ObjectId.
-         */
-        void storeCharField(int fieldNumber, char value);
-        
-        /** Store one field into the field manager.  This field was retrieved from
-         * the field of the ObjectId.
-         * @param fieldNumber the field number of the key field.
-         * @param value the value of the field from the ObjectId.
-         */
-        void storeByteField(int fieldNumber, byte value);
-        
-        /** Store one field into the field manager.  This field was retrieved from
-         * the field of the ObjectId.
-         * @param fieldNumber the field number of the key field.
-         * @param value the value of the field from the ObjectId.
-         */
-        void storeShortField(int fieldNumber, short value);
-        
-        /** Store one field into the field manager.  This field was retrieved from
-         * the field of the ObjectId.
-         * @param fieldNumber the field number of the key field.
-         * @param value the value of the field from the ObjectId.
-         */
-        void storeIntField(int fieldNumber, int value);
-        
-        /** Store one field into the field manager.  This field was retrieved from
-         * the field of the ObjectId.
-         * @param fieldNumber the field number of the key field.
-         * @param value the value of the field from the ObjectId.
-         */
-        void storeLongField(int fieldNumber, long value);
-        
-        /** Store one field into the field manager.  This field was retrieved from
-         * the field of the ObjectId.
-         * @param fieldNumber the field number of the key field.
-         * @param value the value of the field from the ObjectId.
-         */
-        void storeFloatField(int fieldNumber, float value);
-        
-        /** Store one field into the field manager.  This field was retrieved from
-         * the field of the ObjectId.
-         * @param fieldNumber the field number of the key field.
-         * @param value the value of the field from the ObjectId.
-         */
-        void storeDoubleField(int fieldNumber, double value);
-        
-        /** Store one field into the field manager.  This field was retrieved from
-         * the field of the ObjectId.
-         * @param fieldNumber the field number of the key field.
-         * @param value the value of the field from the ObjectId.
-         */
-        void storeStringField(int fieldNumber, String value);
-        
-        /** Store one field into the field manager.  This field was retrieved from
-         * the field of the ObjectId.
-         * @param fieldNumber the field number of the key field.
-         * @param value the value of the field from the ObjectId.
-         */
-        void storeObjectField(int fieldNumber, Object value);
-    }
-}
diff --git a/api11/src/java/javax/jdo/spi/RegisterClassEvent.java b/api11/src/java/javax/jdo/spi/RegisterClassEvent.java
deleted file mode 100644
index 0698cb9..0000000
--- a/api11/src/java/javax/jdo/spi/RegisterClassEvent.java
+++ /dev/null
@@ -1,124 +0,0 @@
-/*
- * 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.
- */
-
-/*
- * RegisterClassEvent.java
- *
- * Created on July 12, 2001
- */
-
-package javax.jdo.spi;
-
-import java.util.EventObject;
-
-/**
- * A <code>RegisterClassEvent</code> event gets delivered whenever a persistence-capable
- * class registers itself with the <code>JDOImplHelper</code>.
- *
- * @author Michael Bouschen
- * @version 1.0
- */
-public class RegisterClassEvent 
-    extends EventObject
-{
-    /** The class object of the registered persistence-capable class */
-    protected Class pcClass;
-
-    /** The names of managed fields of the persistence-capable class */
-    protected String[] fieldNames;  
-
-    /** The types of managed fields of the persistence-capable class */
-    protected Class[] fieldTypes;
-
-    /** The flags of managed fields of the persistence-capable class */
-    protected byte[] fieldFlags;
-
-    /** */
-    protected Class persistenceCapableSuperclass; 
-
-    /** 
-     * Constructs a new <code>RegisterClassEvent</code>.
-     * @param helper the <code>JDOImplHelper</code> instance
-     * @param registeredClass the persistence-capable class
-     * @param fieldNames the names of the managed fields
-     * @param fieldTypes the types of the managed fields
-     * @param fieldFlags the flags of the managed fields
-     * @param persistenceCapableSuperclass the persistence-capable superclass
-     **/
-    public RegisterClassEvent(JDOImplHelper helper,
-                              Class registeredClass, 
-                              String[] fieldNames, 
-                              Class[] fieldTypes,
-                              byte[] fieldFlags,
-                              Class persistenceCapableSuperclass)
-    {
-        super(helper);
-        this.pcClass = registeredClass;
-        this.fieldNames = fieldNames;
-        this.fieldTypes = fieldTypes;
-        this.fieldFlags = fieldFlags;
-        this.persistenceCapableSuperclass = persistenceCapableSuperclass;
-    }
-
-    /**
-     * Returns the class object of the registered persistence-capable class.
-     * @return the persistence-capable class.
-     */
-    public Class getRegisteredClass()
-    {
-        return pcClass;
-    }
-    
-    /**    
-     * Returns the names of the managed field of the persistence-capable class.
-     * @return the names of the managed fields
-     */
-    public String[] getFieldNames()
-    {
-        return fieldNames;
-    }
-
-    /**
-     * Returns the types of the managed field of the persistence-capable class.
-     * @return the types of the managed fields
-     */
-    public Class[] getFieldTypes()
-    {
-        return fieldTypes;
-    }
-
-    /**
-     * Returns the flags of the managed field of the persistence-capable class.
-     * @return the flags of the managed fields
-     */
-    public byte[] getFieldFlags()
-    {
-        return fieldFlags;
-    }
-
-    /**
-     * Returns the class object of the persistence-capable superclass.
-     * @return the persistence-capable superclass.
-     */
-    public Class getPersistenceCapableSuperclass()
-    {
-        return persistenceCapableSuperclass;
-    }
-    
-}
-
-
-
diff --git a/api11/src/java/javax/jdo/spi/RegisterClassListener.java b/api11/src/java/javax/jdo/spi/RegisterClassListener.java
deleted file mode 100644
index c90f687..0000000
--- a/api11/src/java/javax/jdo/spi/RegisterClassListener.java
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
- * 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.
- */
-
-/*
- *  RegisterClassListener.java
- *
- * Created on July 11, 2001
- */
-
-package javax.jdo.spi;
-
-import java.util.EventListener;
-
-/**
- * A "RegisterClassEvent" event gets fired whenever a persistence-capable class 
- * is loaded and gets registered with the <code>JDOImplHelper</code>. You can register a 
- * <code>RegisterClassListener</code> so as to be notified of any registration of a 
- * persistence-capable class.
- *
- * @author Michael Bouschen
- * @version 1.0
- */
-public interface RegisterClassListener 
-    extends EventListener
-{
-    /**
-     * This method gets called when a persistence-capable class is registered.
-     * @param event a <code>RegisterClassEvent</code> instance describing the registered 
-     * class plus metadata.
-     */
-    public void registerClass(RegisterClassEvent event);
-}
diff --git a/api11/src/java/javax/jdo/spi/StateManager.java b/api11/src/java/javax/jdo/spi/StateManager.java
deleted file mode 100644
index 5b6057a..0000000
--- a/api11/src/java/javax/jdo/spi/StateManager.java
+++ /dev/null
@@ -1,462 +0,0 @@
-/*
- * 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.
- */
-
-package javax.jdo.spi;
-
-import javax.jdo.PersistenceManager;
-
-/** This interface is the point of contact between managed instances of
- * <code>PersistenceCapable</code> classes and the JDO implementation.  It contains
- * the methods used by <code>PersistenceCapable</code> instances to delegate behavior to 
- * the JDO implementation.
- *<P>Each managed <code>PersistenceCapable</code> instance contains a reference to a
- * <code>StateManager</code>.  A <code>StateManager</code> might manage one or multiple instances of
- * <code>PersistenceCapable</code> instances, at the choice of the implementation.
- *
- * @author  Craig Russell
- * @version 1.0
- *
- */
-public interface StateManager {
-    
-    /** The owning <code>StateManager</code> uses this method to supply the 
-     * value of the flags to the <code>PersistenceCapable</code> instance.
-     * @param pc the calling <code>PersistenceCapable</code> instance
-     * @return the value of <code>jdoFlags</code> to be stored in the <code>PersistenceCapable</code> instance
-     */
-    byte replacingFlags(PersistenceCapable pc);
-
-    /** Replace the current value of <code>jdoStateManager</code>.
-     * <P>
-     * This method is called by the <code>PersistenceCapable</code> whenever
-     * <code>jdoReplaceStateManager</code> is called and there is already
-     * an owning <code>StateManager</code>.  This is a security precaution
-     * to ensure that the owning <code>StateManager</code> is the only
-     * source of any change to its reference in the <code>PersistenceCapable</code>.
-     * @return the new value for the <code>jdoStateManager</code>
-     * @param pc the calling <code>PersistenceCapable</code> instance
-     * @param sm the proposed new value for the <code>jdoStateManager</code>
-     */ 
-    StateManager replacingStateManager (PersistenceCapable pc, StateManager sm);
-    
-    /** Tests whether this object is dirty.
-     *
-     * Instances that have been modified, deleted, or newly 
-     * made persistent in the current transaction return <code>true</code>.
-     *
-     *<P>Transient nontransactional instances return <code>false</code>.
-     *<P>
-     * @see PersistenceCapable#jdoMakeDirty(String fieldName)
-     * @param pc the calling <code>PersistenceCapable</code> instance
-     * @return <code>true</code> if this instance has been modified in the current transaction.
-     */
-    boolean isDirty(PersistenceCapable pc);
-
-    /** Tests whether this object is transactional.
-     *
-     * Instances that respect transaction boundaries return <code>true</code>.  These instances
-     * include transient instances made transactional as a result of being the
-     * target of a <code>makeTransactional</code> method call; newly made persistent or deleted
-     * persistent instances; persistent instances read in data store
-     * transactions; and persistent instances modified in optimistic transactions.
-     *
-     *<P>Transient nontransactional instances return <code>false</code>.
-     *<P>
-     * @param pc the calling <code>PersistenceCapable</code> instance
-     * @return <code>true</code> if this instance is transactional.
-     */
-    boolean isTransactional(PersistenceCapable pc);
-
-    /** Tests whether this object is persistent.
-     *
-     * Instances whose state is stored in the data store return <code>true</code>.
-     *
-     *<P>Transient instances return <code>false</code>.
-     *<P>
-     * @see PersistenceManager#makePersistent(Object pc)
-     * @param pc the calling <code>PersistenceCapable</code> instance
-     * @return <code>true</code> if this instance is persistent.
-     */
-    boolean isPersistent(PersistenceCapable pc);
-
-    /** Tests whether this object has been newly made persistent.
-     *
-     * Instances that have been made persistent in the current transaction 
-     * return <code>true</code>.
-     *
-     *<P>Transient instances return <code>false</code>.
-     *<P>
-     * @see PersistenceManager#makePersistent(Object pc)
-     * @param pc the calling <code>PersistenceCapable</code> instance
-     * @return <code>true</code> if this instance was made persistent
-     * in the current transaction.
-     */
-    boolean isNew(PersistenceCapable pc);
-
-    /** Tests whether this object has been deleted.
-     *
-     * Instances that have been deleted in the current transaction return <code>true</code>.
-     *
-     *<P>Transient instances return <code>false</code>.
-     *<P>
-     * @see PersistenceManager#deletePersistent(Object pc)
-     * @param pc the calling <code>PersistenceCapable</code> instance
-     * @return <code>true</code> if this instance was deleted
-     * in the current transaction.
-     */
-    boolean isDeleted(PersistenceCapable pc);
-    
-    /** Return the <code>PersistenceManager</code> that owns this instance.
-     * @param pc the calling <code>PersistenceCapable</code> instance
-     * @return the <code>PersistenceManager</code> that owns this instance
-     */
-    PersistenceManager getPersistenceManager (PersistenceCapable pc);
-    
-    /** Mark the associated <code>PersistenceCapable</code> field dirty.
-     * <P>The <code>StateManager</code> will make a copy of the field
-     * so it can be restored if needed later, and then mark
-     * the field as modified in the current transaction.
-     * @param pc the calling <code>PersistenceCapable</code> instance
-     * @param fieldName the name of the field
-     */    
-    void makeDirty (PersistenceCapable pc, String fieldName);
-    
-    /** Return the object representing the JDO identity 
-     * of the calling instance.  If the JDO identity is being changed in
-     * the current transaction, this method returns the identity as of
-     * the beginning of the transaction.
-     * @param pc the calling <code>PersistenceCapable</code> instance
-     * @return the object representing the JDO identity of the calling instance
-     */    
-    Object getObjectId (PersistenceCapable pc);
-
-    /** Return the object representing the JDO identity 
-     * of the calling instance.  If the JDO identity is being changed in
-     * the current transaction, this method returns the current identity as
-     * changed in the transaction.
-     * @param pc the calling <code>PersistenceCapable</code> instance
-     * @return the object representing the JDO identity of the calling instance
-     */    
-    Object getTransactionalObjectId (PersistenceCapable pc);
-
-    /** Return <code>true</code> if the field is cached in the calling
-     * instance.
-     * @param pc the calling <code>PersistenceCapable</code> instance
-     * @param field the field number
-     * @return whether the field is cached in the calling instance
-     */    
-    boolean isLoaded (PersistenceCapable pc, int field);
-    
-    /** Guarantee that the serializable transactional and persistent fields
-     * are loaded into the instance.  This method is called by the generated
-     * <code>jdoPreSerialize</code> method prior to serialization of the
-     * instance.
-     * @param pc the calling <code>PersistenceCapable</code> instance
-     */    
-    void preSerialize (PersistenceCapable pc);
-    
-    /** Return the value for the field.
-     * @param pc the calling <code>PersistenceCapable</code> instance
-     * @param field the field number 
-     * @param currentValue the current value of the field
-     * @return the new value for the field
-     */    
-    boolean getBooleanField (PersistenceCapable pc, int field, boolean currentValue);
-    
-    /** Return the value for the field.
-     * @param pc the calling <code>PersistenceCapable</code> instance
-     * @param field the field number 
-     * @param currentValue the current value of the field
-     * @return the new value for the field
-     */    
-    char getCharField (PersistenceCapable pc, int field, char currentValue);
-    
-    /** Return the value for the field.
-     * @param pc the calling <code>PersistenceCapable</code> instance
-     * @param field the field number 
-     * @param currentValue the current value of the field
-     * @return the new value for the field
-     */    
-    byte getByteField (PersistenceCapable pc, int field, byte currentValue);
-    
-    /** Return the value for the field.
-     * @param pc the calling <code>PersistenceCapable</code> instance
-     * @param field the field number 
-     * @param currentValue the current value of the field
-     * @return the new value for the field
-     */    
-    short getShortField (PersistenceCapable pc, int field, short currentValue);
-    
-    /** Return the value for the field.
-     * @param pc the calling <code>PersistenceCapable</code> instance
-     * @param field the field number 
-     * @param currentValue the current value of the field
-     * @return the new value for the field
-     */    
-    int getIntField (PersistenceCapable pc, int field, int currentValue);
-    
-    /** Return the value for the field.
-     * @param pc the calling <code>PersistenceCapable</code> instance
-     * @param field the field number 
-     * @param currentValue the current value of the field
-     * @return the new value for the field
-     */    
-    long getLongField (PersistenceCapable pc, int field, long currentValue);
-    
-    /** Return the value for the field.
-     * @param pc the calling <code>PersistenceCapable</code> instance
-     * @param field the field number 
-     * @param currentValue the current value of the field
-     * @return the new value for the field
-     */    
-    float getFloatField (PersistenceCapable pc, int field, float currentValue);
-    
-    /** Return the value for the field.
-     * @param pc the calling <code>PersistenceCapable</code> instance
-     * @param field the field number 
-     * @param currentValue the current value of the field
-     * @return the new value for the field
-     */    
-    double getDoubleField (PersistenceCapable pc, int field, double currentValue);
-    
-    /** Return the value for the field.
-     * @param pc the calling <code>PersistenceCapable</code> instance
-     * @param field the field number 
-     * @param currentValue the current value of the field
-     * @return the new value for the field
-     */    
-    String getStringField (PersistenceCapable pc, int field, String currentValue);
-    
-    /** Return the value for the field.
-     * @param pc the calling <code>PersistenceCapable</code> instance
-     * @param field the field number 
-     * @param currentValue the current value of the field
-     * @return the new value for the field
-     */    
-    Object getObjectField (PersistenceCapable pc, int field, Object currentValue);
-
-    /** Mark the field as modified by the user.
-     * @param pc the calling <code>PersistenceCapable</code> instance
-     * @param field the field number
-     * @param currentValue the current value of the field
-     * @param newValue the proposed new value of the field */    
-    void setBooleanField (PersistenceCapable pc, int field, boolean currentValue, boolean newValue);
-
-    /** Mark the field as modified by the user.
-     * @param pc the calling <code>PersistenceCapable</code> instance
-     * @param field the field number
-     * @param currentValue the current value of the field
-     * @param newValue the proposed new value of the field */    
-    void setCharField (PersistenceCapable pc, int field, char currentValue, char newValue);
-
-    /** Mark the field as modified by the user.
-     * @param pc the calling <code>PersistenceCapable</code> instance
-     * @param field the field number
-     * @param currentValue the current value of the field
-     * @param newValue the proposed new value of the field */    
-    void setByteField (PersistenceCapable pc, int field, byte currentValue, byte newValue);
-
-    /** Mark the field as modified by the user.
-     * @param pc the calling <code>PersistenceCapable</code> instance
-     * @param field the field number
-     * @param currentValue the current value of the field
-     * @param newValue the proposed new value of the field */    
-    void setShortField (PersistenceCapable pc, int field, short currentValue, short newValue);
-
-    /** Mark the field as modified by the user.
-     * @param pc the calling <code>PersistenceCapable</code> instance
-     * @param field the field number
-     * @param currentValue the current value of the field
-     * @param newValue the proposed new value of the field */    
-    void setIntField (PersistenceCapable pc, int field, int currentValue, int newValue);
-
-    /** Mark the field as modified by the user.
-     * @param pc the calling <code>PersistenceCapable</code> instance
-     * @param field the field number
-     * @param currentValue the current value of the field
-     * @param newValue the proposed new value of the field */    
-    void setLongField (PersistenceCapable pc, int field, long currentValue, long newValue);
-
-    /** Mark the field as modified by the user.
-     * @param pc the calling <code>PersistenceCapable</code> instance
-     * @param field the field number
-     * @param currentValue the current value of the field
-     * @param newValue the proposed new value of the field */    
-    void setFloatField (PersistenceCapable pc, int field, float currentValue, float newValue);
-
-    /** Mark the field as modified by the user.
-     * @param pc the calling <code>PersistenceCapable</code> instance
-     * @param field the field number
-     * @param currentValue the current value of the field
-     * @param newValue the proposed new value of the field */    
-    void setDoubleField (PersistenceCapable pc, int field, double currentValue, double newValue);
-
-    /** Mark the field as modified by the user.
-     * @param pc the calling <code>PersistenceCapable</code> instance
-     * @param field the field number
-     * @param currentValue the current value of the field
-     * @param newValue the proposed new value of the field */    
-    void setStringField (PersistenceCapable pc, int field, String currentValue, String newValue);
-
-    /** Mark the field as modified by the user.
-     * @param pc the calling <code>PersistenceCapable</code> instance
-     * @param field the field number
-     * @param currentValue the current value of the field
-     * @param newValue the proposed new value of the field */    
-    void setObjectField (PersistenceCapable pc, int field, Object currentValue, Object newValue);
-
-    /** The value of the field requested to be provided to the <code>StateManager</code>
-     * @param pc the calling <code>PersistenceCapable</code> instance
-     * @param field the field number 
-     * @param currentValue the current value of the field
-     */    
-    void providedBooleanField (PersistenceCapable pc, int field, boolean currentValue);
-
-    /** The value of the field requested to be provided to the <code>StateManager</code>
-     * @param pc the calling <code>PersistenceCapable</code> instance
-     * @param field the field number 
-     * @param currentValue the current value of the field
-     */    
-    void providedCharField (PersistenceCapable pc, int field, char currentValue);
-
-    /** The value of the field requested to be provided to the <code>StateManager</code>
-     * @param pc the calling <code>PersistenceCapable</code> instance
-     * @param field the field number 
-     * @param currentValue the current value of the field
-     */    
-    void providedByteField (PersistenceCapable pc, int field, byte currentValue);
-
-    /** The value of the field requested to be provided to the <code>StateManager</code>
-     * @param pc the calling <code>PersistenceCapable</code> instance
-     * @param field the field number 
-     * @param currentValue the current value of the field
-     */    
-    void providedShortField (PersistenceCapable pc, int field, short currentValue);
-
-    /** The value of the field requested to be provided to the <code>StateManager</code>
-     * @param pc the calling <code>PersistenceCapable</code> instance
-     * @param field the field number 
-     * @param currentValue the current value of the field
-     */    
-    void providedIntField (PersistenceCapable pc, int field, int currentValue);
-
-    /** The value of the field requested to be provided to the <code>StateManager</code>
-     * @param pc the calling <code>PersistenceCapable</code> instance
-     * @param field the field number 
-     * @param currentValue the current value of the field
-     */    
-    void providedLongField (PersistenceCapable pc, int field, long currentValue);
-
-    /** The value of the field requested to be provided to the <code>StateManager</code>
-     * @param pc the calling <code>PersistenceCapable</code> instance
-     * @param field the field number 
-     * @param currentValue the current value of the field
-     */    
-    void providedFloatField (PersistenceCapable pc, int field, float currentValue);
-
-    /** The value of the field requested to be provided to the <code>StateManager</code>
-     * @param pc the calling <code>PersistenceCapable</code> instance
-     * @param field the field number 
-     * @param currentValue the current value of the field
-     */    
-    void providedDoubleField (PersistenceCapable pc, int field, double currentValue);
-
-    /** The value of the field requested to be provided to the <code>StateManager</code>
-     * @param pc the calling <code>PersistenceCapable</code> instance
-     * @param field the field number 
-     * @param currentValue the current value of the field
-     */    
-    void providedStringField (PersistenceCapable pc, int field, String currentValue);
-
-    /** The value of the field requested to be provided to the <code>StateManager</code>
-     * @param pc the calling <code>PersistenceCapable</code> instance
-     * @param field the field number 
-     * @param currentValue the current value of the field
-     */    
-    void providedObjectField (PersistenceCapable pc, int field, Object currentValue);
-
-    /** The replacing value of the field in the calling instance
-     * @param pc the calling <code>PersistenceCapable</code> instance
-     * @param field the field number
-     * @return the new value for the field
-     */    
-    boolean replacingBooleanField (PersistenceCapable pc, int field);
-
-    /** The replacing value of the field in the calling instance
-     * @param pc the calling <code>PersistenceCapable</code> instance
-     * @param field the field number 
-     * @return the new value for the field
-     */    
-    char replacingCharField (PersistenceCapable pc, int field);
-
-    /** The replacing value of the field in the calling instance
-     * @param pc the calling <code>PersistenceCapable</code> instance
-     * @param field the field number 
-     * @return the new value for the field
-     */    
-    byte replacingByteField (PersistenceCapable pc, int field);
-
-    /** The replacing value of the field in the calling instance
-     * @param pc the calling <code>PersistenceCapable</code> instance
-     * @param field the field number 
-     * @return the new value for the field
-     */    
-    short replacingShortField (PersistenceCapable pc, int field);
-
-    /** The replacing value of the field in the calling instance
-     * @param pc the calling <code>PersistenceCapable</code> instance
-     * @param field the field number 
-     * @return the new value for the field
-     */    
-    int replacingIntField (PersistenceCapable pc, int field);
-
-    /** The replacing value of the field in the calling instance
-     * @param pc the calling <code>PersistenceCapable</code> instance
-     * @param field the field number 
-     * @return the new value for the field
-     */    
-    long replacingLongField (PersistenceCapable pc, int field);
-
-    /** The replacing value of the field in the calling instance
-     * @param pc the calling <code>PersistenceCapable</code> instance
-     * @param field the field number 
-     * @return the new value for the field
-     */    
-    float replacingFloatField (PersistenceCapable pc, int field);
-
-    /** The replacing value of the field in the calling instance
-     * @param pc the calling <code>PersistenceCapable</code> instance
-     * @param field the field number 
-     * @return the new value for the field
-     */    
-    double replacingDoubleField (PersistenceCapable pc, int field);
-
-    /** The replacing value of the field in the calling instance
-     * @param pc the calling <code>PersistenceCapable</code> instance
-     * @param field the field number 
-     * @return the new value for the field
-     */    
-    String replacingStringField (PersistenceCapable pc, int field);
-
-    /** The replacing value of the field in the calling instance
-     * @param pc the calling <code>PersistenceCapable</code> instance
-     * @param field the field number 
-     * @return the new value for the field
-     */    
-    Object replacingObjectField (PersistenceCapable pc, int field);
-
-}
-
diff --git a/api11/src/java/javax/jdo/spi/package.html b/api11/src/java/javax/jdo/spi/package.html
deleted file mode 100644
index fc16c0d..0000000
--- a/api11/src/java/javax/jdo/spi/package.html
+++ /dev/null
@@ -1,47 +0,0 @@
-<!--
- 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.
--->
-
-<html>
-<head>
-<title>JDO Service Provider Interface package</title>
-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-</head>
-
-<body bgcolor="#FFFFFF">
-<P>This package contains the interfaces and classes used by JDO implementations. 
-<P>JDO defines interfaces and classes to be used by application programmers 
-when using classes whose instances are to be stored in persistent storage 
-(persistence-capable classes), and specifies the contracts between 
-suppliers of persistence-capable classes and the 
-runtime environment (which is part of the JDO implementation).
-<P>The PersistenceCapable interface is implemented by all classes
-whose instances are to be made persistent.  The implementation might be
-done by a combination of techniques, as determined by the JDO vendor:
-<ul>
-<li>Pre-processing .java files
-<li>Post-processing .class files
-<li>Generating .java or .class files directly from an abstraction
-</ul
-<P>The StateManager interface is the implementation's contact point with
-the PersistenceCapable instances.  It defines methods that are called by 
-the PersistenceCapable instances to implement the required PersistenceCapable
-behavior for persistent and transactional instances.
-<P>The JDOPermission class is used to manage security controls on JDO implementations.
-<P>The RegisterClassEvent class and RegisterClassListener interface are used
-by JDO implementations that need access to metadata of PersistenceCapable classes.
-<P>The JDOImplHelper class contains helper methods for JDO implementations.
-</body>
-</html>
diff --git a/api11/test/java/javax/jdo/JDOHelperTest.java b/api11/test/java/javax/jdo/JDOHelperTest.java
deleted file mode 100644
index 91fd4d9..0000000
--- a/api11/test/java/javax/jdo/JDOHelperTest.java
+++ /dev/null
@@ -1,142 +0,0 @@
-/*
- * 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.
- */
-
-package javax.jdo;
-
-import java.util.Properties;
-
-import javax.jdo.pc.PCPoint;
-import javax.jdo.util.AbstractTest;
-import javax.jdo.util.BatchTestRunner;
-
-/**
- * Tests class javax.jdo.JDOHelper.
- * <p>
- * TBD: implementation of testMakeDirty, 
- * TBD: testing interrogative methods for persistent instances
- * TBD: getPMF for valid PMF class
- */
-public class JDOHelperTest extends AbstractTest {
-    
-    /** */
-    public static void main(String args[]) {
-        BatchTestRunner.run(JDOHelperTest.class);
-    }
-
-    /** */
-    public void testGetPM() {
-        PCPoint p = new PCPoint(1, new Integer(1));
-        if (JDOHelper.getPersistenceManager(p) != null) {
-            fail("JDOHelper.getPersistenceManager should return null pm for non-persistent instance");
-        }
-
-        // TBD: test for persistent instance
-    }
-
-    /** */
-    public void testMakeDirty() {
-        // TBD: test JDOHelper.makeDirty(pc, fieldName);
-    }
-
-    /** */
-    public void testGetObjectId() {
-        PCPoint p = new PCPoint(1, new Integer(1));
-        if (JDOHelper.getObjectId(p) != null) {
-            fail("JDOHelper.getObjectId should return null ObjectId for non-persistent instance");
-        }
-
-        // TBD test JDOHelper.getObjectId(pc) for persistent instance
-    }
-
-    /** */
-    public void testGetTransactionObjectId() {
-        PCPoint p = new PCPoint(1, new Integer(1));
-        if (JDOHelper.getObjectId(p) != null) {
-            fail("JDOHelper.getTransactionalObjectId should return null ObjectId for non-persistent instance");
-        }
-
-        // TBD test JDOHelper.getTransactionalObjectId(pc) for persistent instance
-    }
-
-    /** */
-    public void testIsDirty() {
-        PCPoint p = new PCPoint(1, new Integer(1));
-        if (JDOHelper.isDirty(p)) {
-            fail("JDOHelper.isDirty should return false for non-persistent instance");
-        }
-
-        // TBD test JDOHelper.isDirty(pc) for persistent instance
-    }
-
-    /** */
-    public void testIsTransactional() {
-        PCPoint p = new PCPoint(1, new Integer(1));
-        if (JDOHelper.isTransactional(p)) {
-            fail("JDOHelper.isTransactional should return false for non-persistent instance");
-        }
-
-        // TBD test JDOHelper.isTransactional(pc) for persistent instance
-    }
-
-    /** */
-    public void testIsPersistent() {
-        PCPoint p = new PCPoint(1, new Integer(1));
-        if (JDOHelper.isPersistent(p)) {
-            fail("JDOHelper.isPersistent should return false for non-persistent instance");
-        }
-
-        // TBD test JDOHelper.isPersistent(pc) for persistent instance
-    }
-
-    /** */
-    public void testIsNew() {
-        PCPoint p = new PCPoint(1, new Integer(1));
-        if (JDOHelper.isNew(p)) {
-            fail("JDOHelper.isNew should return false for non-persistent instance");
-        }
-
-        // TBD test JDOHelper.isNew(pc) for persistent instance
-    }
-
-
-    /** */
-    public void testIsDeleted() {
-        PCPoint p = new PCPoint(1, new Integer(1));
-        if (JDOHelper.isDeleted(p)) {
-            fail("JDOHelper.isDeleted should return false for non-persistent instance");
-        }
-
-        // TBD test JDOHelper.isDeleted(pc) for persistent instance
-    }
-
-    /** */
-    public void testGetPMF() {
-        // test missing property javax.jdo.PersistenceManagerFactoryClass
-        PersistenceManagerFactory pmf = null;
-        try {
-            pmf = JDOHelper.getPersistenceManagerFactory(new Properties());
-            fail("Missing property PersistenceManagerFactoryClass should result in JDOFatalUserException ");
-        }
-        catch (JDOFatalUserException ex) {
-            if (verbose)
-                println("Caught expected exception " + ex);
-        }
-
-        // TBD: valid PMF class
-    }
-
-}
-
diff --git a/api11/test/java/javax/jdo/pc/PCPoint.java b/api11/test/java/javax/jdo/pc/PCPoint.java
deleted file mode 100644
index bd8668f..0000000
--- a/api11/test/java/javax/jdo/pc/PCPoint.java
+++ /dev/null
@@ -1,448 +0,0 @@
-/*
- * 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.
- */
-
-package javax.jdo.pc;
-
-import java.io.*;
-import java.util.*;
-import javax.jdo.PersistenceManager;
-import javax.jdo.spi.*;
-
-import javax.jdo.spi.PersistenceCapable;
-
-/**
- * This is a hand-enhanced version of a simple class with two fields. The
- * enhanced code assumes datastore identity.
- *
- * @author Michael Bouschen
- */
-public class PCPoint 
-    implements PersistenceCapable
-{
-    public int x;
-    public Integer y;
-
-    // JDO generated fields
-    protected transient StateManager jdoStateManager;
-    protected transient byte jdoFlags;
-    private static final int jdoInheritedFieldCount = 0;
-    private static final String jdoFieldNames[] = { "x", "y" };
-    private static final Class jdoFieldTypes[]; 
-    private static final byte jdoFieldFlags[] = { 
-        (byte)(PersistenceCapable.CHECK_READ + PersistenceCapable.CHECK_WRITE + 
-               PersistenceCapable.SERIALIZABLE), 
-        (byte)(PersistenceCapable.CHECK_READ + PersistenceCapable.CHECK_WRITE + 
-               PersistenceCapable.SERIALIZABLE), 
-    }; 
-    private static final Class jdoPersistenceCapableSuperclass; 
-
-    static 
-    {
-        jdoFieldTypes = (new Class[] {
-            Integer.TYPE, sunjdo$classForName$("java.lang.Integer")
-        });
-        jdoPersistenceCapableSuperclass = null;
-        JDOImplHelper.registerClass(
-            sunjdo$classForName$("javax.jdo.pc.PCPoint"), 
-            jdoFieldNames, jdoFieldTypes, jdoFieldFlags, 
-            jdoPersistenceCapableSuperclass, new PCPoint());
-    }
-
-    /** JDO required no-args constructor. */
-    public PCPoint() { }
-
-    /** Constructor. */
-    public PCPoint(int x, Integer y) {
-        jdoSetx(this, x);
-        jdoSety(this, y);
-    }
-
-    /** */
-    public void setX(int x) {
-        jdoSetx(this, x);
-    }
-
-    /** */
-    public int getX() {
-        return jdoGetx(this);
-    }
-
-    /** */
-    public void setY(Integer y) {
-        jdoSety(this, y);
-    }
-
-    /** */
-    public Integer getY() {
-        return jdoGety(this);
-    }
-
-    /** */
-    public boolean equals(Object o) {
-        if (o == null || !(o instanceof PCPoint))
-            return false;
-        PCPoint other = (PCPoint)o;
-        if (jdoGetx(this) != jdoGetx(other))
-            return false;
-        if (jdoGety(this) == null)
-            return jdoGety(other) == null;
-        if (jdoGety(other) == null)
-            return jdoGety(this) == null;
-        else
-            return jdoGety(this).intValue() == jdoGety(other).intValue();
-    }
-
-    /** */
-    public int hashCode() {
-        int code = getX();
-        if (getY() != null) {
-            code += getY().intValue();
-        }
-        return code;
-    }
-    
-    /** */
-    public String toString() {
-        return "PCPoint(x: " + getX() + ", y: " + getY() + ")";
-    }
-    
-
-    // Generated methods in least-derived PersistenceCapable class
-
-    public final boolean jdoIsPersistent() {
-        StateManager statemanager = jdoStateManager;
-        if (statemanager != null)
-            return statemanager.isPersistent(this);
-        else
-            return false;
-    }
-
-    public final boolean jdoIsTransactional() {
-        StateManager statemanager = jdoStateManager;
-        if (statemanager != null)
-            return statemanager.isTransactional(this);
-        else
-            return false;
-    }
-
-    public final boolean jdoIsNew() {
-        StateManager statemanager = jdoStateManager;
-        if (statemanager != null)
-            return statemanager.isNew(this);
-        else
-            return false;
-    }
-
-    public final boolean jdoIsDirty() {
-        StateManager statemanager = jdoStateManager;
-        if (statemanager != null)
-            return statemanager.isDirty(this);
-        else
-            return false;
-    }
-
-    public final boolean jdoIsDeleted() {
-        StateManager statemanager = jdoStateManager;
-        if (statemanager != null)
-            return statemanager.isDeleted(this);
-        else
-            return false;
-    }
-
-    public final void jdoMakeDirty(String s) {
-        StateManager statemanager = jdoStateManager;
-        if (statemanager != null)
-            statemanager.makeDirty(this, s);
-    }
-
-    public final PersistenceManager jdoGetPersistenceManager() {
-        StateManager statemanager = jdoStateManager;
-        if (statemanager != null)
-            return statemanager.getPersistenceManager(this);
-        else
-            return null;
-    }
-
-    public final Object jdoGetObjectId() {
-        StateManager statemanager = jdoStateManager;
-        if (statemanager != null)
-            return statemanager.getObjectId(this);
-        else
-            return null;
-    }
-
-    public final Object jdoGetTransactionalObjectId() {
-        StateManager statemanager = jdoStateManager;
-        if (statemanager != null)
-            return statemanager.getTransactionalObjectId(this);
-        else
-            return null;
-    }
-
-    public final synchronized void jdoReplaceStateManager(
-        StateManager statemanager) {
-        StateManager statemanager1 = jdoStateManager;
-        if (statemanager1 != null) {
-            jdoStateManager = statemanager1.replacingStateManager(
-                this, statemanager);
-            return;
-        } 
-        else {
-            JDOImplHelper.checkAuthorizedStateManager(statemanager);
-            jdoStateManager = statemanager;
-            jdoFlags = PersistenceCapable.LOAD_REQUIRED;
-            return;
-        }
-    }
-    
-    public final void jdoReplaceFlags() {
-        StateManager statemanager = jdoStateManager;
-        if (statemanager != null)
-            jdoFlags = statemanager.replacingFlags(this);
-    }
-
-    public final void jdoReplaceFields(int fields[]) {
-        if (fields == null)
-            throw new IllegalArgumentException("fields is null");
-        int i = fields.length;
-        for(int j = 0; j < i; j++)
-            jdoReplaceField(fields[j]);
-
-    }
-
-    public final void jdoProvideFields(int fields[]) {
-        if (fields == null)
-            throw new IllegalArgumentException("fields is null");
-        int i = fields.length;
-        for(int j = 0; j < i; j++)
-            jdoProvideField(fields[j]);
-
-    }
-
-    protected final void jdoPreSerialize() {
-        StateManager statemanager = jdoStateManager;
-        if (statemanager != null)
-            statemanager.preSerialize(this);
-    }
-
-    // Generated methods in PersistenceCapable root classes and all classes
-    // that declare objectid-class in xml metadata:
-
-    public void jdoCopyKeyFieldsToObjectId(
-        PersistenceCapable.ObjectIdFieldSupplier objectidfieldsupplier, 
-        Object obj) { }
-
-    public void jdoCopyKeyFieldsToObjectId(Object obj) {
-    }
-    
-    public void jdoCopyKeyFieldsFromObjectId(
-        PersistenceCapable.ObjectIdFieldConsumer objectidfieldconsumer, 
-        Object obj) { }
-
-    protected void jdoCopyKeyFieldsFromObjectId(Object obj) {
-    }
-
-    public Object jdoNewObjectIdInstance() {
-        return null;
-    }
-
-    public Object jdoNewObjectIdInstance(String s) {
-        return null;
-    }
-    
-    // Generated methods in all PersistenceCapable classes
-
-    public PersistenceCapable jdoNewInstance(StateManager statemanager) {
-        PCPoint pcpoint = new PCPoint();
-        pcpoint.jdoFlags = PersistenceCapable.LOAD_REQUIRED;
-        pcpoint.jdoStateManager = statemanager;
-        return pcpoint;
-    }
-
-    public PersistenceCapable jdoNewInstance(
-        StateManager statemanager, Object obj) {
-        PCPoint pcpoint = new PCPoint();
-        pcpoint.jdoCopyKeyFieldsFromObjectId(obj);
-        pcpoint.jdoFlags = PersistenceCapable.LOAD_REQUIRED;
-        pcpoint.jdoStateManager = statemanager;
-        return pcpoint;
-    }
-
-    protected static int jdoGetManagedFieldCount() {
-        return 2;
-    }
-
-     public static final int jdoGetx(PCPoint pcpoint) {
-        if (pcpoint.jdoFlags <= PersistenceCapable.READ_WRITE_OK)
-            return pcpoint.x;
-        StateManager statemanager = pcpoint.jdoStateManager;
-        if (statemanager == null)
-            return pcpoint.x;
-        if (statemanager.isLoaded(pcpoint, jdoInheritedFieldCount + 0))
-            return pcpoint.x;
-        else
-            return statemanager.getIntField(
-                pcpoint, jdoInheritedFieldCount + 0, pcpoint.x);
-    }
-
-    public static final Integer jdoGety(PCPoint pcpoint) {
-        if (pcpoint.jdoFlags <= PersistenceCapable.READ_WRITE_OK)
-            return pcpoint.y;
-        StateManager statemanager = pcpoint.jdoStateManager;
-        if (statemanager == null)
-            return pcpoint.y;
-        if (statemanager.isLoaded(pcpoint, jdoInheritedFieldCount + 1))
-            return pcpoint.y;
-        else
-            return (Integer)statemanager.getObjectField(
-                pcpoint, jdoInheritedFieldCount + 1, pcpoint.y);
-    }
-
-    public static final void jdoSetx(PCPoint pcpoint, int i) {
-        if (pcpoint.jdoFlags == PersistenceCapable.READ_WRITE_OK) {
-            pcpoint.x = i;
-            return;
-        }
-        StateManager statemanager = pcpoint.jdoStateManager;
-        if (statemanager == null) {
-            pcpoint.x = i;
-            return;
-        } 
-        else {
-            statemanager.setIntField(
-                pcpoint, jdoInheritedFieldCount + 0, pcpoint.x, i);
-            return;
-        }
-    }
-
-    public static final void jdoSety(PCPoint pcpoint, Integer integer) {
-        if (pcpoint.jdoFlags == PersistenceCapable.READ_WRITE_OK) {
-            pcpoint.y = integer;
-            return;
-        }
-        StateManager statemanager = pcpoint.jdoStateManager;
-        if (statemanager == null) {
-            pcpoint.y = integer;
-            return;
-        } 
-        else {
-            statemanager.setObjectField(pcpoint, jdoInheritedFieldCount + 1, pcpoint.y, integer);
-            return;
-        }
-    }
-
-    public void jdoReplaceField(int field) {
-        StateManager statemanager = jdoStateManager;
-        switch(field - jdoInheritedFieldCount) {
-        case 0: 
-            if (statemanager == null) {
-                throw new IllegalStateException("jdoStateManager is null");
-            } 
-            else {
-                x = statemanager.replacingIntField(this, field);
-                return;
-            }
-        case 1:
-            if (statemanager == null) {
-                throw new IllegalStateException("jdoStateManager is null");
-            } 
-            else {
-                y = (Integer)statemanager.replacingObjectField(this, field);
-                return;
-            }
-        }
-        throw new IllegalArgumentException("field number out of range");
-    }
-
-    public void jdoProvideField(int field) {
-        StateManager statemanager = jdoStateManager;
-        switch(field - jdoInheritedFieldCount) {
-        case 0:
-            if (statemanager == null) {
-                throw new IllegalStateException("jdoStateManager is null");
-            } 
-            else {
-                statemanager.providedIntField(this, field, x);
-                return;
-            }
-        case 1: 
-            if (statemanager == null) {
-                throw new IllegalStateException("jdoStateManager is null");
-            } 
-            else {
-                statemanager.providedObjectField(this, field, y);
-                return;
-            }
-        }
-        throw new IllegalArgumentException("field number out of range");
-    }
-
-    public void jdoCopyFields(Object obj, int fieldNumbers[]) {
-        if (jdoStateManager == null)
-            throw new IllegalStateException("jdoStateManager is null");
-        if (!(obj instanceof PCPoint))
-            throw new ClassCastException(obj.getClass().getName());
-        if (fieldNumbers == null)
-            throw new IllegalArgumentException("fieldNumber is null");
-        PCPoint pcpoint = (PCPoint)obj;
-        if (pcpoint.jdoStateManager != jdoStateManager)
-            throw new IllegalArgumentException("wrong jdoStateManager");
-        int i = fieldNumbers.length;
-        for(int j = 0; j < i; j++)
-            jdoCopyField(pcpoint, fieldNumbers[j]);
-    }
-
-    protected final void jdoCopyField(PCPoint pcpoint, int fieldNumber)
-    {
-        switch(fieldNumber - jdoInheritedFieldCount) {
-        case 0: 
-            if (pcpoint == null) {
-                throw new IllegalArgumentException("pcpoint is null");
-            } 
-            else {
-                x = pcpoint.x;
-                return;
-            }
-        case 1: 
-            if (pcpoint == null) {
-                throw new IllegalArgumentException("pcpoint is null");
-            } 
-            else {
-                y = pcpoint.y;
-                return;
-            }
-        }
-        throw new IllegalArgumentException("field number out of range");
-    }
-
-    private void writeObject(java.io.ObjectOutputStream out)
-        throws java.io.IOException {
-        jdoPreSerialize();
-        out.defaultWriteObject();
-    }
-    
-    protected static final Class sunjdo$classForName$(String s) {
-        try {
-            return Class.forName(s);
-        }
-        catch(ClassNotFoundException ex) {
-            throw new NoClassDefFoundError(ex.getMessage());
-        }
-    }
-    
-    
-
-}
diff --git a/api11/test/java/javax/jdo/spi/JDOImplHelperTest.java b/api11/test/java/javax/jdo/spi/JDOImplHelperTest.java
deleted file mode 100644
index 073536e..0000000
--- a/api11/test/java/javax/jdo/spi/JDOImplHelperTest.java
+++ /dev/null
@@ -1,202 +0,0 @@
-/*
- * 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.
- */
-
-package javax.jdo.spi;
-
-import java.util.Collection;
-
-import javax.jdo.pc.PCPoint;
-import javax.jdo.util.AbstractTest;
-import javax.jdo.util.BatchTestRunner;
-
-/** 
- * Tests class javax.jdo.spi.JDOImplHelper.
- * <p>
- * Missing: testNewInstance + testNewObjectIdInstance
- * Missing: tests for JDOImplHelper methods: copyKeyFieldsToObjectId and 
- * copyKeyFieldsFromObjectId.
- */
-public class JDOImplHelperTest extends AbstractTest {
-    
-    /** */
-    private RegisterClassEvent event;
-
-    /** */
-    public static void main(String args[]) {
-        BatchTestRunner.run(JDOImplHelperTest.class);
-    }
-
-    /** */
-    public void testGetFieldNames() {
-        JDOImplHelper implHelper = JDOImplHelper.getInstance();
-        String[] fieldNames = implHelper.getFieldNames(PCPoint.class);
-        if (fieldNames == null) {
-            fail("array of field names is null");
-        }
-        if (fieldNames.length != 2) {
-            fail("Unexpected length of fieldNames; expected 2, got " + 
-                 fieldNames.length);
-        }
-        if (!fieldNames[0].equals("x")) {
-            fail("Unexpected field; expected x, got " + fieldNames[0]);
-        }
-        if (!fieldNames[1].equals("y")) {
-            fail("Unexpected field; expected y, got " + fieldNames[1]);
-        }
-    }
-
-    /** */
-    public void testGetFieldTypes() {
-        JDOImplHelper implHelper = JDOImplHelper.getInstance();
-        Class[] fieldTypes = implHelper.getFieldTypes(PCPoint.class);
-        if (fieldTypes == null) {
-            fail("array of field types is null");
-        }
-        if (fieldTypes.length != 2) {
-            fail("Unexpected length of fieldTypes; expected 2, got " + 
-                 fieldTypes.length);
-        }
-        if (fieldTypes[0] != int.class) {
-            fail("Unexpected field type; expected int, got " + 
-                 fieldTypes[0]);
-        }
-        if (fieldTypes[1] != Integer.class) {
-            fail("Unexpected field type; expected Integer, got " + 
-                 fieldTypes[1]);
-        }
-    }
-    
-    /** */
-    public void testGetFieldFlags() {
-        byte expected = (byte) (PersistenceCapable.CHECK_READ +
-            PersistenceCapable.CHECK_WRITE + PersistenceCapable.SERIALIZABLE);
-            
-        JDOImplHelper implHelper = JDOImplHelper.getInstance();
-        byte[] fieldFlags = implHelper.getFieldFlags(PCPoint.class);
-        if (fieldFlags == null) {
-            fail("array of field flags is null");
-        }
-        if (fieldFlags.length != 2) {
-            fail("Unexpected length of fieldFlags; expected 2, got " + 
-                 fieldFlags.length);
-        }
-        if (fieldFlags[0] != expected) {
-            fail("Unexpected field flag; expected " + expected + 
-                 ", got " + fieldFlags[0]);
-        }
-        if (fieldFlags[1] != expected) {
-            fail("Unexpected field flag; expected " + expected + 
-                 ", got " + fieldFlags[1]);
-        }
-    }
-
-    /** */
-    public void testGetPCSuperclass() {
-        JDOImplHelper implHelper = JDOImplHelper.getInstance();
-        Class pcSuper = 
-            implHelper.getPersistenceCapableSuperclass(PCPoint.class);
-        if (pcSuper != null) {
-            fail("Wrong pc superclass of PCPoint; expected null, got " + 
-                 pcSuper);
-        }
-    }
-
-    /** */
-    public void testNewInstance() {
-        // TBD: test JDOImplHelper.newInstance(pcClass, sm) and
-        // JDOImplHelper.newInstance(pcClass, sm, oid)  
-    }
-
-    /** */
-    public void testNewObjectIdInstance() {
-        // TBD: test JDOImplHelper.newObjectIdInstance(pcClass)
-    }
-    
-    /** */
-    public void testClassRegistration() {
-        JDOImplHelper implHelper = JDOImplHelper.getInstance();
-        // make sure PCClass is loaded
-        PCPoint p = new PCPoint(1, new Integer(1));
-
-        Collection registeredClasses = implHelper.getRegisteredClasses();
-        // test whether PCPoint is registered
-        if (!registeredClasses.contains(PCPoint.class)) {
-            fail("Missing registration of pc class PCPoint");
-        }
-
-        // Save registered meta data for restoring
-        String[] fieldNames = implHelper.getFieldNames(PCPoint.class);
-        Class[] fieldTypes = implHelper.getFieldTypes(PCPoint.class);
-        byte[] fieldFlags = implHelper.getFieldFlags(PCPoint.class);
-        Class pcSuperclass = implHelper.getPersistenceCapableSuperclass(PCPoint.class);
-        
-        // test unregisterClass with null parameter
-        try {
-            implHelper.unregisterClass(null);
-            fail("Missing exception when calling unregisterClass(null)");
-        }
-        catch (NullPointerException ex) {
-            // expected exception => OK
-        }
-
-        // test unregister PCPoint class
-        implHelper.unregisterClass(PCPoint.class);
-        registeredClasses = implHelper.getRegisteredClasses();
-        if (registeredClasses.contains(PCPoint.class)) {
-            fail("PCPoint still registered");
-        }
-
-        // register PCPoint again
-        JDOImplHelper.registerClass(PCPoint.class, fieldNames, fieldTypes, 
-                                    fieldFlags, pcSuperclass, new PCPoint());
-    }
-
-    /** */
-    public void testClassListenerRegistration() {
-        JDOImplHelper implHelper = JDOImplHelper.getInstance();
-
-        // add listener and check event
-        event = null;
-        RegisterClassListener listener = new SimpleListener();
-        implHelper.addRegisterClassListener(listener);
-        JDOImplHelper.registerClass(JDOImplHelperTest.class, new String[0], 
-                                    new Class[0], new byte[0], null, null);
-        if (event == null) {
-            fail("Missing event "); 
-        }
-
-        // remove listener and check event
-        event = null;
-        implHelper.removeRegisterClassListener(listener);
-        JDOImplHelper.registerClass(JDOImplHelperTest.class, new String[0], 
-                                    new Class[0], new byte[0], null, null);
-        if (event != null) {
-            fail("Unexpected event " + event);
-        }
-    }
-
-    /** */
-    class SimpleListener implements RegisterClassListener {
-
-        /** */
-        public void registerClass(RegisterClassEvent event) {
-            JDOImplHelperTest.this.event = event;
-        }
-        
-    }
-    
-}
-
diff --git a/api11/test/java/javax/jdo/util/AbstractTest.java b/api11/test/java/javax/jdo/util/AbstractTest.java
deleted file mode 100644
index 62c0945..0000000
--- a/api11/test/java/javax/jdo/util/AbstractTest.java
+++ /dev/null
@@ -1,47 +0,0 @@
-/*
- * 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.
- */
-
-package javax.jdo.util;
-
-import java.io.PrintStream;
-
-import junit.framework.TestCase;
-
-/** */
-public class AbstractTest extends TestCase {
-
-    /** */
-    protected static PrintStream out = System.out;
-    
-    /** If true, print extra messages. */
-    protected boolean verbose;
-
-    /**
-     * Construct and initialize from properties.
-     */
-    protected AbstractTest() {
-        super(null);
-        verbose = Boolean.getBoolean("verbose");
-    }
-    
-    /**
-     */
-    protected void println(String s) {
-        if (verbose) 
-            out.println(s);
-    }
-}
-
diff --git a/api11/test/java/javax/jdo/util/BatchResultPrinter.java b/api11/test/java/javax/jdo/util/BatchResultPrinter.java
deleted file mode 100644
index 7252319..0000000
--- a/api11/test/java/javax/jdo/util/BatchResultPrinter.java
+++ /dev/null
@@ -1,103 +0,0 @@
-/*
- * 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.
- */
-
-package javax.jdo.util;
-
-import java.io.PrintStream;
-
-import junit.framework.AssertionFailedError;
-import junit.framework.Test;
-import junit.framework.TestCase;
-import junit.framework.TestResult;
-import junit.textui.ResultPrinter;
-
-/**
- * Default result printer implementation for running tests in batch mode.
- * 
- * @author Michael Bouschen
- */
-public class BatchResultPrinter
-    extends ResultPrinter
-{
-    /** */
-    public BatchResultPrinter(PrintStream writer) {
-        super(writer);
-    }
-        
-    /** Called in case of a test error. */
-    public void addError(Test test, Throwable t) {
-        getWriter().print("   ERROR");
-    }
-        
-    /** Called in case of a test failure. */ 
-    public void addFailure(Test test, AssertionFailedError t) {
-        getWriter().print("   FAILURE");
-    }
-        
-    /** Called when a test case is finished. */
-    public void endTest(Test test) {
-        getWriter().println();
-    }
-        
-    /** Called when a test case is started. */
-    public void startTest(Test test) {
-        String testName;
-        if (test instanceof TestCase) {
-            testName = getClassBaseName(test) + "." + ((TestCase)test).getName();
-        }
-        else {
-            testName = test.toString();
-        }
-        getWriter().print("RUN " + testName);
-    }
-        
-    /** */
-    protected void printHeader(long runTime) {
-        getWriter().println("Time: "+elapsedTimeAsString(runTime));
-    }
-        
-    /** */
-    protected void printFooter(TestResult result) {
-        if (result.wasSuccessful()) {
-            getWriter().print("OK");
-            getWriter().println (" (" + result.runCount() + " test" + (result.runCount() == 1 ? "": "s") + ")");
-                
-        } else {
-            getWriter().println("FAILURES!!!");
-            getWriter().println("Tests run: "+result.runCount()+ 
-                                ",  Failures: "+result.failureCount()+
-                                ",  Errors: "+result.errorCount());
-        }
-    }
-        
-    // helper method
-        
-    /** 
-     * @return Name of the class of the given object without package prefix
-     */
-    private String getClassBaseName(Object obj) {
-        if (obj == null) return null;
-        String className = obj.getClass().getName();
-        int index = className.lastIndexOf('.');
-        if (index != -1) {
-            className = className.substring(index + 1);
-        }
-        return className;
-    }
-        
-}
-
-
diff --git a/api11/test/java/javax/jdo/util/BatchTestRunner.java b/api11/test/java/javax/jdo/util/BatchTestRunner.java
deleted file mode 100644
index f76b72b..0000000
--- a/api11/test/java/javax/jdo/util/BatchTestRunner.java
+++ /dev/null
@@ -1,163 +0,0 @@
-/*
- * 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.
- */
-
-package javax.jdo.util;
-
-import java.lang.reflect.Constructor;
-import java.lang.reflect.InvocationTargetException;
-import java.io.PrintStream;
-
-import junit.framework.Test;
-import junit.framework.TestResult;
-import junit.framework.TestSuite;
-import junit.textui.ResultPrinter;
-import junit.textui.TestRunner;
-
-/**
- * TestRunner class for running a single test or a test suite in batch
- * mode. The format of the test output is specified by the result printer
- * class. The main method sets an exit code according to the test result:
- * <ul>
- * <li><code>0</code>: success
- * <li><code>1</code>: failure, the test shows an unexpected behavior
- * <li><code>2</code>: exception, the test throws an unhandled excption 
- * </ul>
- * 
- * @author Michael Bouschen
- */
-public class BatchTestRunner
-    extends TestRunner
-{
-    /** Name of the system property to specify the result printer class. */
-    public static final String RESULTPRINTER_PROPERTY = "ResultPrinterClass"; 
-    
-    /** Default of the system property ResultPrinterClass. */
-    public static final String RESULTPRINTER_DEFAULT = BatchResultPrinter.class.getName();
-    
-    /** 
-     * Constructor. 
-     * It creates a result printer instance based on the system property
-     * and delegates to the constructor taking a result printer argument. 
-     */
-    public BatchTestRunner() {
-    	super();
-        setPrinter(getResultPrinter());
-    }
-    
-    /**  
-     * Constructor. USes teh specified resultPrinter to format the test result.
-     */
-    public BatchTestRunner(ResultPrinter resultPrinter) {
-        super(resultPrinter);
-    }
-
-    /** Runs all test methods from the specified class. */
-    public static void run(Class clazz) {
-        run(new TestSuite(clazz));
-    }
-    
-    /** Runs the specified test. */
-    public static TestResult run(Test test) {
-		return new BatchTestRunner().doRun(test);
-    }
-
-	/**	Runs the specified test and waits until the user types RETURN. */
-	public static void runAndWait(Test suite) {
-		new BatchTestRunner().doRun(suite, true);
-	}
-
-	/** 
-     * Runs in batch mode and sets an exit code. If the specified String
-     * array includes a single fully qualified class name, this test class
-     * is executed. If it is empty it runs the TestListSuite.
-     */
-    public static void main(String args[]) {
-		BatchTestRunner aTestRunner= new BatchTestRunner();
-		try {
-            /*
-            if ((args == null) || args.length == 0)
-                args = new String[] { TestListSuite.class.getName() };
-            */
-			TestResult r = aTestRunner.start(args);
-			if (!r.wasSuccessful()) 
-				System.exit(FAILURE_EXIT);
-			System.exit(SUCCESS_EXIT);
-		} catch(Exception e) {
-			System.err.println(e.getMessage());
-			System.exit(EXCEPTION_EXIT);
-		}
-	}
-    
-    /** Returns a result printer instance. n instance of tCheck the system property */
-    protected ResultPrinter getResultPrinter() {
-      	String className =  System.getProperty(RESULTPRINTER_PROPERTY);
-        if (className != null) {
-            className = className.trim();
-            if (className.length() != 0) {
-                String msg = null;
-                try {
-                    // get class instance
-                    Class clazz = Class.forName(className);
-                    // constructor taking PrintStream arg
-                    Constructor ctor = clazz.getConstructor(
-                        new Class[] { PrintStream.class } );
-                    // create instance
-                    return (ResultPrinter)ctor.newInstance(
-                        new Object[] { System.out });
-                }
-                catch (ClassNotFoundException ex) {
-                    // specified ResultPrinter class not 
-                    msg = "Cannot find specified result printer class " + 
-                        className + ".";
-                }
-                catch (NoSuchMethodException ex) {
-                    msg = "Class " + className + 
-                        " does not provide constructor taking a PrintStream.";
-                }
-                catch (InstantiationException ex) {
-                    msg = "Class " + className + " is abstract.";
-                }
-                catch (IllegalAccessException ex) {
-                    msg = "Constructor taking a PrintStream of class " + 
-                        className + " is not accessible.";
-                }
-                catch (InvocationTargetException ex) {
-                    msg = "Constructor call results in exception " + ex + ".";
-                }
-
-                // ResultPrinter class specified, but not avaiable
-                System.out.println(msg);
-                ResultPrinter printer = getDefaultResultPrinter();
-                System.out.println("Using default result printer of class " + 
-                                   printer.getClass().getName());
-            }
-        }
-        
-        // ResultPrinter class not specified => use default
-        return getDefaultResultPrinter();
-    }
-
-    /** 
-     * Returns an instance of the default result printer class
-     * BatchResultPrinter.
-     */
-    protected ResultPrinter getDefaultResultPrinter() {
-        return new BatchResultPrinter(System.out);
-    }
-    
-
-}
-
diff --git a/api11/xdocs/index.xml b/api11/xdocs/index.xml
deleted file mode 100644
index 9fe4244..0000000
--- a/api11/xdocs/index.xml
+++ /dev/null
@@ -1,37 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-    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.
--->
-
-<document>
-  <properties> <title>About</title> </properties>
-
-  <body>
-    <section name="JDO1 API">
-      <p>The Java Data Objects (JDO) API is a standard interface-based 
-Java model abstraction of persistence, developed as 
-<a href="http://www.jcp.org/en/jsr/detail?id=12">Java Specification 
-Request 12</a> under the auspices of the <a href="http://www.jcp.org">
-Java Community Process</a>.
-      </p>
-      <p>
-This project implements the public interfaces, helper classes and exceptions 
-as specified in the JDO specification. They are intended to be shared by all 
-JDO implementations. 
-      </p>
-    </section>
-
-  </body>
-</document>
diff --git a/api11/xdocs/navigation.xml b/api11/xdocs/navigation.xml
deleted file mode 100644
index 29cc7aa..0000000
--- a/api11/xdocs/navigation.xml
+++ /dev/null
@@ -1,37 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-    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.
--->
-
-<project name="JDO1 API">
-
-  <body>
-    <links>
-      <item name="Apache" href="http://www.apache.org"/>
-      <item name="JDO Wiki" href="http://wiki.apache.org/jdo"/>
-    </links>
-
-    <menu name="JDO Links">
-      <item name="JDO Wiki" href="http://wiki.apache.org/jdo"/>
-    </menu>
-    <menu name="JCP Links">
-      <item name="JDO 1.0 JSR-12" href="http://www.jcp.org/en/jsr/detail?id=12"/>
-      <item name="JDO 2.0 JSR-243" href="http://www.jcp.org/en/jsr/detail?id=243"/>
-    </menu>
-
-    <footer><div>Java, J2EE, and JCP are trademarks or registered trademarks of
-      Sun Microsystems, Inc. in the United States and other countries.</div></footer>
-  </body>
-</project>
diff --git a/fostore20/LICENSE.txt b/fostore20/LICENSE.txt
deleted file mode 100644
index d645695..0000000
--- a/fostore20/LICENSE.txt
+++ /dev/null
@@ -1,202 +0,0 @@
-
-                                 Apache License
-                           Version 2.0, January 2004
-                        http://www.apache.org/licenses/
-
-   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
-   1. Definitions.
-
-      "License" shall mean the terms and conditions for use, reproduction,
-      and distribution as defined by Sections 1 through 9 of this document.
-
-      "Licensor" shall mean the copyright owner or entity authorized by
-      the copyright owner that is granting the License.
-
-      "Legal Entity" shall mean the union of the acting entity and all
-      other entities that control, are controlled by, or are under common
-      control with that entity. For the purposes of this definition,
-      "control" means (i) the power, direct or indirect, to cause the
-      direction or management of such entity, whether by contract or
-      otherwise, or (ii) ownership of fifty percent (50%) or more of the
-      outstanding shares, or (iii) beneficial ownership of such entity.
-
-      "You" (or "Your") shall mean an individual or Legal Entity
-      exercising permissions granted by this License.
-
-      "Source" form shall mean the preferred form for making modifications,
-      including but not limited to software source code, documentation
-      source, and configuration files.
-
-      "Object" form shall mean any form resulting from mechanical
-      transformation or translation of a Source form, including but
-      not limited to compiled object code, generated documentation,
-      and conversions to other media types.
-
-      "Work" shall mean the work of authorship, whether in Source or
-      Object form, made available under the License, as indicated by a
-      copyright notice that is included in or attached to the work
-      (an example is provided in the Appendix below).
-
-      "Derivative Works" shall mean any work, whether in Source or Object
-      form, that is based on (or derived from) the Work and for which the
-      editorial revisions, annotations, elaborations, or other modifications
-      represent, as a whole, an original work of authorship. For the purposes
-      of this License, Derivative Works shall not include works that remain
-      separable from, or merely link (or bind by name) to the interfaces of,
-      the Work and Derivative Works thereof.
-
-      "Contribution" shall mean any work of authorship, including
-      the original version of the Work and any modifications or additions
-      to that Work or Derivative Works thereof, that is intentionally
-      submitted to Licensor for inclusion in the Work by the copyright owner
-      or by an individual or Legal Entity authorized to submit on behalf of
-      the copyright owner. For the purposes of this definition, "submitted"
-      means any form of electronic, verbal, or written communication sent
-      to the Licensor or its representatives, including but not limited to
-      communication on electronic mailing lists, source code control systems,
-      and issue tracking systems that are managed by, or on behalf of, the
-      Licensor for the purpose of discussing and improving the Work, but
-      excluding communication that is conspicuously marked or otherwise
-      designated in writing by the copyright owner as "Not a Contribution."
-
-      "Contributor" shall mean Licensor and any individual or Legal Entity
-      on behalf of whom a Contribution has been received by Licensor and
-      subsequently incorporated within the Work.
-
-   2. Grant of Copyright License. Subject to the terms and conditions of
-      this License, each Contributor hereby grants to You a perpetual,
-      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
-      copyright license to reproduce, prepare Derivative Works of,
-      publicly display, publicly perform, sublicense, and distribute the
-      Work and such Derivative Works in Source or Object form.
-
-   3. Grant of Patent License. Subject to the terms and conditions of
-      this License, each Contributor hereby grants to You a perpetual,
-      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
-      (except as stated in this section) patent license to make, have made,
-      use, offer to sell, sell, import, and otherwise transfer the Work,
-      where such license applies only to those patent claims licensable
-      by such Contributor that are necessarily infringed by their
-      Contribution(s) alone or by combination of their Contribution(s)
-      with the Work to which such Contribution(s) was submitted. If You
-      institute patent litigation against any entity (including a
-      cross-claim or counterclaim in a lawsuit) alleging that the Work
-      or a Contribution incorporated within the Work constitutes direct
-      or contributory patent infringement, then any patent licenses
-      granted to You under this License for that Work shall terminate
-      as of the date such litigation is filed.
-
-   4. Redistribution. You may reproduce and distribute copies of the
-      Work or Derivative Works thereof in any medium, with or without
-      modifications, and in Source or Object form, provided that You
-      meet the following conditions:
-
-      (a) You must give any other recipients of the Work or
-          Derivative Works a copy of this License; and
-
-      (b) You must cause any modified files to carry prominent notices
-          stating that You changed the files; and
-
-      (c) You must retain, in the Source form of any Derivative Works
-          that You distribute, all copyright, patent, trademark, and
-          attribution notices from the Source form of the Work,
-          excluding those notices that do not pertain to any part of
-          the Derivative Works; and
-
-      (d) If the Work includes a "NOTICE" text file as part of its
-          distribution, then any Derivative Works that You distribute must
-          include a readable copy of the attribution notices contained
-          within such NOTICE file, excluding those notices that do not
-          pertain to any part of the Derivative Works, in at least one
-          of the following places: within a NOTICE text file distributed
-          as part of the Derivative Works; within the Source form or
-          documentation, if provided along with the Derivative Works; or,
-          within a display generated by the Derivative Works, if and
-          wherever such third-party notices normally appear. The contents
-          of the NOTICE file are for informational purposes only and
-          do not modify the License. You may add Your own attribution
-          notices within Derivative Works that You distribute, alongside
-          or as an addendum to the NOTICE text from the Work, provided
-          that such additional attribution notices cannot be construed
-          as modifying the License.
-
-      You may add Your own copyright statement to Your modifications and
-      may provide additional or different license terms and conditions
-      for use, reproduction, or distribution of Your modifications, or
-      for any such Derivative Works as a whole, provided Your use,
-      reproduction, and distribution of the Work otherwise complies with
-      the conditions stated in this License.
-
-   5. Submission of Contributions. Unless You explicitly state otherwise,
-      any Contribution intentionally submitted for inclusion in the Work
-      by You to the Licensor shall be under the terms and conditions of
-      this License, without any additional terms or conditions.
-      Notwithstanding the above, nothing herein shall supersede or modify
-      the terms of any separate license agreement you may have executed
-      with Licensor regarding such Contributions.
-
-   6. Trademarks. This License does not grant permission to use the trade
-      names, trademarks, service marks, or product names of the Licensor,
-      except as required for reasonable and customary use in describing the
-      origin of the Work and reproducing the content of the NOTICE file.
-
-   7. Disclaimer of Warranty. Unless required by applicable law or
-      agreed to in writing, Licensor provides the Work (and each
-      Contributor provides its Contributions) on an "AS IS" BASIS,
-      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
-      implied, including, without limitation, any warranties or conditions
-      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
-      PARTICULAR PURPOSE. You are solely responsible for determining the
-      appropriateness of using or redistributing the Work and assume any
-      risks associated with Your exercise of permissions under this License.
-
-   8. Limitation of Liability. In no event and under no legal theory,
-      whether in tort (including negligence), contract, or otherwise,
-      unless required by applicable law (such as deliberate and grossly
-      negligent acts) or agreed to in writing, shall any Contributor be
-      liable to You for damages, including any direct, indirect, special,
-      incidental, or consequential damages of any character arising as a
-      result of this License or out of the use or inability to use the
-      Work (including but not limited to damages for loss of goodwill,
-      work stoppage, computer failure or malfunction, or any and all
-      other commercial damages or losses), even if such Contributor
-      has been advised of the possibility of such damages.
-
-   9. Accepting Warranty or Additional Liability. While redistributing
-      the Work or Derivative Works thereof, You may choose to offer,
-      and charge a fee for, acceptance of support, warranty, indemnity,
-      or other liability obligations and/or rights consistent with this
-      License. However, in accepting such obligations, You may act only
-      on Your own behalf and on Your sole responsibility, not on behalf
-      of any other Contributor, and only if You agree to indemnify,
-      defend, and hold each Contributor harmless for any liability
-      incurred by, or claims asserted against, such Contributor by reason
-      of your accepting any such warranty or additional liability.
-
-   END OF TERMS AND CONDITIONS
-
-   APPENDIX: How to apply the Apache License to your work.
-
-      To apply the Apache License to your work, attach the following
-      boilerplate notice, with the fields enclosed by brackets "[]"
-      replaced with your own identifying information. (Don't include
-      the brackets!)  The text should be enclosed in the appropriate
-      comment syntax for the file format. We also recommend that a
-      file or class name and description of purpose be included on the
-      same "printed page" as the copyright notice for easier
-      identification within third-party archives.
-
-   Copyright [yyyy] [name of copyright owner]
-
-   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.
diff --git a/fostore20/maven.xml b/fostore20/maven.xml
deleted file mode 100644
index 829a0b7..0000000
--- a/fostore20/maven.xml
+++ /dev/null
@@ -1,332 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-    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.
--->
-
-<project default="default"
-    xmlns:j="jelly:core"
-    xmlns:ant="jelly:ant"
-    xmlns:maven="jelly:maven"
-    >
-
-    <!-- ==================== -->
-    <!-- Default Global Goals -->
-    <!-- ==================== -->
-
-    <goal name="default">
-        <attainGoal name="jar:install"/>
-    </goal>
-
-    <goal name="build">
-        <attainGoal name="default"/>
-    </goal>
-
-    <goal name="rebuild">
-        <attainGoal name="clean"/>
-        <attainGoal name="build"/>
-    </goal>
-
-    <postGoal name="test:prepare-filesystem">
-        <mkdir dir="${jdo.testdir}"/>
-    </postGoal>
-
-    <preGoal name="test:test">
-        <attainGoal name="pcclasses"/>
-        <attainGoal name="testjar.build"/>
-        <attainGoal name="fsuid2.build"/>
-    </preGoal>
-
-    <postGoal name="clean:clean">
-        <delete file="${jdo.pcclasses.jarfile}"/>
-        <delete file="${jdo.testclasses.jarfile}"/>
-        <ant dir="${basedir}/test/fsuid2" target="clean"/>
-    </postGoal>
-
-    <goal name="clobber" prereqs="clean">
-        <delete>
-            <fileset dir="." defaultexcludes="no" includes="**/*~"/>
-        </delete>
-        <ant dir="${basedir}/test/fsuid2" target="clobber"/>
-    </goal>
-
-    <!-- ================== -->
-    <!-- Running test cases -->
-    <!-- ================== -->
-
-    <goal name="runtest">
-        <attainGoal name="runtest.list"/>
-        <attainGoal name="runtest.security"/>
-        <attainGoal name="runtest.multiJVMtests"/>
-    </goal>
-
-    <!-- Runs all tests from the specified test list in batch mode. -->
-    <goal name="runtest.list" prereqs="pcclasses, testjar.build">
-        <ant target="runtest.list"
-             dir="${basedir}/test" antfile="runtest.xml">
-            <property name="testlist" value="${jdo.testlist}"/>
-            <property name="jdoapi" value="${jdo.api.jarfile}"/>
-            <property name="jdobtree" value="${jdo.jdobtree.jarfile}"/>
-            <property name="jdocore" value="${jdo.jdocore.jarfile}"/>
-            <property name="jdoruntime" value="${jdo.jdoruntime.jarfile}"/>
-            <property name="jdoquery" value="${jdo.jdoquery.jarfile}"/>
-            <property name="jdofostore" value="${maven.build.dir}/classes"/>
-            <property name="jdoritests" value="${jdo.testclasses.jarfile}"/>
-            <property name="pcclasses" value="${jdo.pcclasses.jarfile}"/>
-            <property name="testdir" value="${jdo.testdir}"/>
-            <property name="fsuidjar" value="${jdo.fsuid.jarfile}"/>
-            <property name="junit" value="${junit.jarfile}"/>
-            <property name="jta" value="${jta.jarfile}"/>
-            <property name="antlr" value="${antlr.jarfile}"/>
-            <property name="logging" value="${logging.jarfile}"/>
-            <property name="jndi" value="${jndi}"/>
-            <property name="xmlparser" value="${xmlparser}"/>
-            <property name="status.verbose" value="${status.verbose}"/>
-        </ant>
-    </goal>
-
-    <goal name="runtest.security" prereqs="pcclasses, testjar.build">
-        <ant target="runtest.security"
-             dir="${basedir}/test" antfile="runtest.xml">
-            <property name="policyfile" value="${jdo.security.policy}"/>
-            <property name="testlist" value="${jdo.testlist}"/>
-            <property name="jdoapi" value="${jdo.api.jarfile}"/>
-            <property name="jdobtree" value="${jdo.jdobtree.jarfile}"/>
-            <property name="jdocore" value="${jdo.jdocore.jarfile}"/>
-            <property name="jdoruntime" value="${jdo.jdoruntime.jarfile}"/>
-            <property name="jdoquery" value="${jdo.jdoquery.jarfile}"/>
-            <property name="jdofostore" value="${maven.build.dir}/classes"/>
-            <property name="jdoritests" value="${jdo.testclasses.jarfile}"/>
-            <property name="pcclasses" value="${jdo.pcclasses.jarfile}"/>
-            <property name="testdir" value="${jdo.testdir}"/>
-            <property name="fsuidjar" value="${jdo.fsuid.jarfile}"/>
-            <property name="junit" value="${junit.jarfile}"/>
-            <property name="jta" value="${jta.jarfile}"/>
-            <property name="antlr" value="${antlr.jarfile}"/>
-            <property name="logging" value="${logging.jarfile}"/>
-            <property name="jndi" value="${jndi}"/>
-            <property name="xmlparser" value="${xmlparser}"/>
-            <property name="status.verbose" value="${status.verbose}"/>
-        </ant>
-    </goal>
-
-    <!-- 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.
-    -->
-    <goal name="runtest.multiJVMtests" prereqs="pcclasses, testjar.build">
-        <ant target="runtest.multiJVMtests" 
-             dir="${basedir}/test" antfile="runtest.xml">
-            <property name="jdoapi" value="${jdo.api.jarfile}"/>
-            <property name="jdobtree" value="${jdo.jdobtree.jarfile}"/>
-            <property name="jdocore" value="${jdo.jdocore.jarfile}"/>
-            <property name="jdoruntime" value="${jdo.jdoruntime.jarfile}"/>
-            <property name="jdoquery" value="${jdo.jdoquery.jarfile}"/>
-            <property name="jdofostore" value="${maven.build.dir}/classes"/>
-            <property name="jdoenhancer" value="${jdo.jdoenhancer.jarfile}"/>
-            <property name="jdoritests" value="${jdo.testclasses.jarfile}"/>
-            <property name="pcclasses" value="${jdo.pcclasses.jarfile}"/>
-            <property name="testdir" value="${jdo.testdir}"/>
-            <property name="fsuidjar" value="${jdo.fsuid.jarfile}"/>
-            <property name="junit" value="${junit.jarfile}"/>
-            <property name="jta" value="${jta.jarfile}"/>
-            <property name="antlr" value="${antlr.jarfile}"/>
-            <property name="logging" value="${logging.jarfile}"/>
-            <property name="jndi" value="${jndi}"/>
-            <property name="xmlparser" value="${xmlparser}"/>
-            <property name="status.verbose" value="${status.verbose}"/>
-        </ant>
-    </goal>
-
-    <!-- ================ -->
-    <!-- Enhancer support -->
-    <!-- ================ -->
-
-    <preGoal name="pcclasses">
-        <condition property="enhancement.required">
-            <not>
-                <uptodate targetfile="${jdo.pcclasses.jarfile}">
-                    <srcfiles dir="${basedir}/test/jdo"
-                              includes="org/apache/jdo/pc/**/*.jdo, 
-                                        org/apache/jdo/pc/**/*.jdoproperties"/>
-                    <srcfiles dir="${basedir}/test/java"
-                              includes="org/apache/jdo/pc/**/*.java,
-                                        org/apache/jdo/util/Util.java,
-                                        org/apache/jdo/test/Test_PCDerived.java"/>
-                </uptodate>
-            </not>
-        </condition>
-    </preGoal>
-
-    <goal name="pcclasses">
-        <j:if test="${enhancement.required}">
-            <attainGoal name="copymetadata"/>
-            <attainGoal name="checkmetadata"/>
-            <attainGoal name="enhance"/>
-            <attainGoal name="augmentationtest"/>
-            <attainGoal name="annotationtest"/>
-	    <attainGoal name="pcclassesjar.build"/>
-        </j:if>
-    </goal>
-
-    <goal name="copymetadata"
-          description="Copies JDO metadata files to target/test-classes">
-        <copy todir="${jdo.testclasses.dir}">
-            <fileset dir="${basedir}/test/jdo" includes="**/*.jdo"/>
-        </copy>
-        <mkdir dir="${jdo.enhancer.enhanced.dir}"/>
-        <copy todir="${jdo.enhancer.enhanced.dir}">
-            <fileset dir="${basedir}/test/jdo" includes="**/*.jdo"/>
-        </copy>
-    </goal>
-
-    <goal name="checkmetadata"
-          description="Check existence of XML metadata for pc classes">
-        <echo>Check existence of XML metadata for pc classes</echo>
-        <java fork="yes" failonerror="yes" 
-              classname="${jdo.xmlexists.main}" 
-              classpath="${jdo.xmlexists.classpath}">
-            <arg line="${jdo.pcclasses.pc.classes}"/>
-            <arg line="${jdo.pcclasses.empdept.classes}"/>
-            <arg line="${jdo.pcclasses.xempdept.classes}"/>
-            <arg line="${jdo.pcclasses.appid.classes}"/>
-            <arg line="${jdo.pcclasses.serializable.classes}"/>
-        </java>
-    </goal>
-
-    <goal name="enhance"
-          description="Enhance persistence-capable and persistence-aware classes">
-        <echo>Enhance persistence-capable and persistence-aware classes</echo>
-        <java failonerror="true" fork="true" 
-              classname="${jdo.enhancer.main}" 
-              classpath="${jdo.enhancer.classpath}">
-            <arg line="${jdo.enhancer.options}"/>
-            <arg line="${jdo.pcclasses.pc.files}"/>
-            <arg line="${jdo.pcclasses.empdept.files}"/>
-            <arg line="${jdo.pcclasses.xempdept.files}"/>
-            <arg line="${jdo.pcclasses.appid.files}"/>
-            <arg line="${jdo.pcclasses.serializable.files}"/>
-            <arg line="${jdo.pawareclasses.test.files}"/>
-        </java>
-   </goal>
-
-    <goal name="augmentationtest">
-        <java fork="yes" failonerror="yes" 
-              classname="${jdo.augmentationtest.main}" 
-              classpath="${jdo.enhancer.classpath}">
-            <arg line="${jdo.augmentationtest.options}"/>
-            <arg line="--properties ${basedir}/test/jdo/org/apache/jdo/pc/pc.jdoproperties"/>
-            <arg line="${jdo.pcclasses.pc.classes}"/>
-        </java>
-        <java fork="yes" failonerror="yes"
-              classname="${jdo.augmentationtest.main}" 
-              classpath="${jdo.enhancer.classpath}">
-            <arg line="${jdo.augmentationtest.options}"/>
-            <arg line="--properties ${basedir}/test/jdo/org/apache/jdo/pc/empdept/empdept.jdoproperties"/>
-            <arg line="${jdo.pcclasses.empdept.classes}"/>
-        </java>
-        <java fork="yes" failonerror="yes"
-              classname="${jdo.augmentationtest.main}" 
-              classpath="${jdo.enhancer.classpath}">
-            <arg line="${jdo.augmentationtest.options}"/>
-            <arg line=" --properties ${basedir}/test/jdo/org/apache/jdo/pc/xempdept/xempdept.jdoproperties"/>
-            <arg line="${jdo.pcclasses.xempdept.classes}"/>
-        </java>
-        <java fork="yes" failonerror="yes"
-              classname="${jdo.augmentationtest.main}" 
-              classpath="${jdo.enhancer.classpath}">
-            <arg line="${jdo.augmentationtest.options}"/>
-            <arg line=" --properties ${basedir}/test/jdo/org/apache/jdo/pc/appid/appid.jdoproperties"/>
-            <arg line=" ${jdo.pcclasses.appid.classes}"/>
-        </java>
-        <java fork="yes" failonerror="yes"
-              classname="${jdo.augmentationtest.main}" 
-              classpath="${jdo.enhancer.classpath}">
-            <arg line="${jdo.augmentationtest.options}"/>
-            <arg line="--properties ${basedir}/test/jdo/org/apache/jdo/pc/serializable/serializable.jdoproperties"/>
-            <arg line="${jdo.pcclasses.serializable.classes}"/>
-        </java>
-    </goal>
-
-    <goal name="annotationtest">
-        <java fork="yes" failonerror="yes"
-              classname="${jdo.annotationtest.main}" 
-              classpath="${jdo.enhancer.classpath}">
-            <arg line="--properties ${basedir}/test/jdo/org/apache/jdo/pc/pc.jdoproperties"/>
-            <arg line="${jdo.pcclasses.pc.files}"/>
-            <arg line="${jdo.pawareclasses.test.files}"/>
-        </java>
-        <java fork="yes" failonerror="yes"
-              classname="${jdo.annotationtest.main}"
-              classpath="${jdo.enhancer.classpath}">
-            <arg line="--properties ${basedir}/test/jdo/org/apache/jdo/pc/empdept/empdept.jdoproperties"/>
-            <arg line="${jdo.pcclasses.empdept.files}"/>
-        </java>
-        <java fork="yes" failonerror="yes"
-              classname="${jdo.annotationtest.main}" 
-              classpath="${jdo.enhancer.classpath}">
-            <arg line="--properties ${basedir}/test/jdo/org/apache/jdo/pc/xempdept/xempdept.jdoproperties"/>
-            <arg line="${jdo.pcclasses.xempdept.files}"/>
-        </java>
-        <java fork="yes" failonerror="yes"
-              classname="${jdo.annotationtest.main}" 
-              classpath="${jdo.enhancer.classpath}">
-            <arg line="--properties ${basedir}/test/jdo/org/apache/jdo/pc/appid/appid.jdoproperties"/>
-            <arg line=" ${jdo.pcclasses.appid.files}"/>
-        </java>
-        <java fork="yes" failonerror="yes"
-              classname="${jdo.annotationtest.main}" 
-              classpath="${jdo.enhancer.classpath}">
-            <arg line="--properties ${basedir}/test/jdo/org/apache/jdo/pc/serializable/serializable.jdoproperties"/>
-            <arg line="${jdo.pcclasses.serializable.files}"/>
-        </java>
-    </goal>
-
-    <goal name="pcclassesjar.build">
-        <delete file="${jdo.pcclasses.jarfile}"/>
-        <jar jarfile="${jdo.pcclasses.jarfile}">
-            <fileset dir="${jdo.testclasses.dir}" 
-                     includes="org/apache/jdo/util/Util.class, 
-                               org/apache/jdo/pc/**/*.class, 
-                               org/apache/jdo/pc/**/*.jdo"/>
-        </jar>
-    </goal>
-
-    <!-- ==== -->
-    <!-- Misc -->
-    <!-- ==== -->
-
-    <goal name="testjar.build">
-        <delete file="${jdo.testclasses.jarfile}"/>
-        <jar jarfile="${jdo.testclasses.jarfile}">
-            <fileset dir="${jdo.testclasses.dir}" 
-                     includes="org/apache/jdo/test/**/*.class, 
-                               org/apache/jdo/impl/fostore/*.class"/> 
-            <fileset dir="${basedir}/test/conf"
-                     includes="*properties"/>
-        </jar>
-    </goal>
-
-    <goal name="fsuid2.build">
-        <ant dir="${basedir}/test/fsuid2" target="build">
-            <property name="jdoapi" value="${jdo.api.jarfile}"/>
-            <property name="jdocore" value="${jdo.jdocore.jarfile}"/>
-            <property name="jdoenhancer" value="${jdo.jdoenhancer.jarfile}"/>
-            <property name="logging" value="${logging.jarfile}"/>
-            <property name="xerces" value="${xerces.jarfile}"/>
-            <property name="fsuid2.jarfile" value="${jdo.fsuid.jarfile}"/>
-        </ant>
-    </goal>
-
-</project>
diff --git a/fostore20/project.properties b/fostore20/project.properties
deleted file mode 100644
index c580ca8..0000000
--- a/fostore20/project.properties
+++ /dev/null
@@ -1,202 +0,0 @@
-#
-# 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.
-
-# Start new JVM for junit tests
-maven.junit.fork = yes
-maven.junit.dir = ${jdo.testdir}
-
-# checkstyle settings
-maven.checkstyle.properties = ${basedir}/../jdo_checks.xml
-
-# dependencies
-jdo.api.jarfile = ${pom.getDependencyPath('javax.jdo:jdo2-api')}
-jdo.jdobtree.jarfile = ${pom.getDependencyPath('org.apache.jdo:jdo-btree')}
-jdo.jdocore.jarfile = ${pom.getDependencyPath('org.apache.jdo:jdo2-core')}
-jdo.jdoenhancer.jarfile = ${pom.getDependencyPath('org.apache.jdo:jdo2-enhancer')}
-jdo.jdoruntime.jarfile = ${pom.getDependencyPath('org.apache.jdo:jdo2-runtime')}
-jdo.jdoquery.jarfile = ${pom.getDependencyPath('org.apache.jdo:jdo2-query')}
-junit.jarfile = ${pom.getDependencyPath('junit:junit')}
-antlr.jarfile = ${pom.getDependencyPath('antlr:antlr')}
-jta.jarfile = ${pom.getDependencyPath('geronimo-spec:geronimo-spec-jta')}
-logging.jarfile = ${pom.getDependencyPath('commons-logging')}
-xmlparser = 
-
-# jndi dependencies
-jndi = ${basedir}/../lib/ext/fscontext.jar${path.separator}${basedir}/../lib/ext/providerutil.jar
-
-jdo.testclasses.dir = ${maven.build.dir}/test-classes
-jdo.pcclasses.jarfile = ${maven.build.dir}/test-classes/pcclasses.jar
-jdo.testclasses.jarfile = ${maven.build.dir}/test-classes/jdo-ri-tests.jar
-jdo.fsuid.jarfile = ${maven.build.dir}/test-classes/fsuid2.jar
-jdo.testlist = ${basedir}/test/conf/tests.list
-jdo.testdir = ${maven.build.dir}/database
-jdo.security.policy = ${basedir}/test/conf/JDO20Policy
-
-# enhancer 
-jdo.enhancer.enhanced.dir = ${maven.build.dir}/test-classes
-jdo.enhancer.main = org.apache.jdo.enhancer.Main
-jdo.enhancer.options = -f -d "${jdo.enhancer.enhanced.dir}" -s "${jdo.enhancer.sourcepath}"
-jdo.enhancer.sourcepath = ${maven.build.dir}/test-classes${path.separator}${jdo.api.jarfile}
-jdo.enhancer.classpath = ${jdo.jdoenhancer.jarfile}${path.separator}${jdo.jdocore.jarfile}${path.separator}${jdo.api.jarfile}${path.separator}${logging.jarfile}
-jdo.annotationtest.main = org.apache.jdo.impl.enhancer.util.AnnotationTest
-jdo.annotationtest.options = -s "${jdo.enhancer.enhanced.dir}${path.separator}${jdo.enhancer.sourcepath}"
-jdo.augmentationtest.main = org.apache.jdo.impl.enhancer.util.AugmentationTest
-jdo.augmentationtest.options = -s "${jdo.enhancer.enhanced.dir}${path.separator}${jdo.enhancer.sourcepath}"
-jdo.xmlexists.main = org.apache.jdo.impl.model.jdo.xml.XMLExists
-jdo.xmlexists.classpath = ${maven.build.dir}/test-classes${path.separator}${jdo.jdoruntime.jarfile}${path.separator}${jdo.jdocore.jarfile}${path.separator}${jdo.api.jarfile}${path.separator}${logging.jarfile}
-
-jdo.pcclasses.pc.classes= \
-  org.apache.jdo.pc.PCArrays \
-  org.apache.jdo.pc.PCCollections \
-  org.apache.jdo.pc.PCCycle \
-  org.apache.jdo.pc.PCCycle2 \
-  org.apache.jdo.pc.PCDepartment \
-  org.apache.jdo.pc.PCDepartment1 \
-  org.apache.jdo.pc.PCEmployee \
-  org.apache.jdo.pc.PCEmployee1 \
-  org.apache.jdo.pc.PCFullTimeEmployee1 \
-  org.apache.jdo.pc.PCInsurance \
-  org.apache.jdo.pc.PCInsurance1 \
-  org.apache.jdo.pc.PCInterfaces \
-  org.apache.jdo.pc.PCLargeObj \
-  org.apache.jdo.pc.PCPoint \
-  org.apache.jdo.pc.PCPoint1 \
-  org.apache.jdo.pc.PCPrimitive \
-  org.apache.jdo.pc.PCProject \
-  org.apache.jdo.pc.PCProject1 \
-  org.apache.jdo.pc.PCRect \
-  org.apache.jdo.pc.PCRefArrays \
-  org.apache.jdo.pc.PCSCO \
-  org.apache.jdo.pc.PCStroke \
-  org.apache.jdo.pc.PCBase \
-  org.apache.jdo.pc.PCDerived \
-  org.apache.jdo.pc.PCId \
-  org.apache.jdo.pc.PCCollection
-
-jdo.pcclasses.pc.files= \
-  ${jdo.testclasses.dir}/org/apache/jdo/pc/PCArrays.class \
-  ${jdo.testclasses.dir}/org/apache/jdo/pc/PCCollections.class \
-  ${jdo.testclasses.dir}/org/apache/jdo/pc/PCCycle.class \
-  ${jdo.testclasses.dir}/org/apache/jdo/pc/PCCycle2.class \
-  ${jdo.testclasses.dir}/org/apache/jdo/pc/PCDepartment.class \
-  ${jdo.testclasses.dir}/org/apache/jdo/pc/PCDepartment1.class \
-  ${jdo.testclasses.dir}/org/apache/jdo/pc/PCEmployee.class \
-  ${jdo.testclasses.dir}/org/apache/jdo/pc/PCEmployee1.class \
-  ${jdo.testclasses.dir}/org/apache/jdo/pc/PCFullTimeEmployee1.class \
-  ${jdo.testclasses.dir}/org/apache/jdo/pc/PCInsurance.class \
-  ${jdo.testclasses.dir}/org/apache/jdo/pc/PCInsurance1.class \
-  ${jdo.testclasses.dir}/org/apache/jdo/pc/PCInterfaces.class \
-  ${jdo.testclasses.dir}/org/apache/jdo/pc/PCLargeObj.class \
-  ${jdo.testclasses.dir}/org/apache/jdo/pc/PCPoint.class \
-  ${jdo.testclasses.dir}/org/apache/jdo/pc/PCPoint1.class \
-  ${jdo.testclasses.dir}/org/apache/jdo/pc/PCPrimitive.class \
-  ${jdo.testclasses.dir}/org/apache/jdo/pc/PCProject.class \
-  ${jdo.testclasses.dir}/org/apache/jdo/pc/PCProject1.class \
-  ${jdo.testclasses.dir}/org/apache/jdo/pc/PCRect.class \
-  ${jdo.testclasses.dir}/org/apache/jdo/pc/PCRefArrays.class \
-  ${jdo.testclasses.dir}/org/apache/jdo/pc/PCSCO.class \
-  ${jdo.testclasses.dir}/org/apache/jdo/pc/PCStroke.class \
-  ${jdo.testclasses.dir}/org/apache/jdo/pc/PCBase.class \
-  ${jdo.testclasses.dir}/org/apache/jdo/pc/PCDerived.class \
-  ${jdo.testclasses.dir}/org/apache/jdo/pc/PCId.class \
-  ${jdo.testclasses.dir}/org/apache/jdo/pc/PCCollection.class
-
-jdo.pcclasses.empdept.classes= \
-  org.apache.jdo.pc.empdept.PCPerson \
-  org.apache.jdo.pc.empdept.PCEmployee \
-  org.apache.jdo.pc.empdept.PCFullTimeEmployee \
-  org.apache.jdo.pc.empdept.PCPartTimeEmployee \
-  org.apache.jdo.pc.empdept.PCInsurance \
-  org.apache.jdo.pc.empdept.PCDepartment \
-  org.apache.jdo.pc.empdept.PCProject
-
-jdo.pcclasses.empdept.files= \
-  ${jdo.testclasses.dir}/org/apache/jdo/pc/empdept/PCPerson.class \
-  ${jdo.testclasses.dir}/org/apache/jdo/pc/empdept/PCEmployee.class \
-  ${jdo.testclasses.dir}/org/apache/jdo/pc/empdept/PCFullTimeEmployee.class \
-  ${jdo.testclasses.dir}/org/apache/jdo/pc/empdept/PCPartTimeEmployee.class \
-  ${jdo.testclasses.dir}/org/apache/jdo/pc/empdept/PCInsurance.class \
-  ${jdo.testclasses.dir}/org/apache/jdo/pc/empdept/PCDepartment.class \
-  ${jdo.testclasses.dir}/org/apache/jdo/pc/empdept/PCProject.class
-
-jdo.pcclasses.xempdept.classes= \
-  org.apache.jdo.pc.xempdept.Company \
-  org.apache.jdo.pc.xempdept.Department \
-  org.apache.jdo.pc.xempdept.Person \
-  org.apache.jdo.pc.xempdept.Employee \
-  org.apache.jdo.pc.xempdept.FullTimeEmployee \
-  org.apache.jdo.pc.xempdept.PartTimeEmployee \
-  org.apache.jdo.pc.xempdept.Insurance \
-  org.apache.jdo.pc.xempdept.Project \
-  org.apache.jdo.pc.xempdept.PrimitiveTypes
-
-jdo.pcclasses.xempdept.files= \
-  ${jdo.testclasses.dir}/org/apache/jdo/pc/xempdept/Company.class \
-  ${jdo.testclasses.dir}/org/apache/jdo/pc/xempdept/Department.class \
-  ${jdo.testclasses.dir}/org/apache/jdo/pc/xempdept/Person.class \
-  ${jdo.testclasses.dir}/org/apache/jdo/pc/xempdept/Employee.class \
-  ${jdo.testclasses.dir}/org/apache/jdo/pc/xempdept/FullTimeEmployee.class \
-  ${jdo.testclasses.dir}/org/apache/jdo/pc/xempdept/PartTimeEmployee.class \
-  ${jdo.testclasses.dir}/org/apache/jdo/pc/xempdept/Insurance.class \
-  ${jdo.testclasses.dir}/org/apache/jdo/pc/xempdept/Project.class \
-  ${jdo.testclasses.dir}/org/apache/jdo/pc/xempdept/PrimitiveTypes.class
-
-jdo.pcclasses.appid.classes= \
-  org.apache.jdo.pc.appid.PCPoint \
-  org.apache.jdo.pc.appid.PCRect \
-  org.apache.jdo.pc.appid.PCPerson \
-  org.apache.jdo.pc.appid.PCEmployee \
-  org.apache.jdo.pc.appid.PCFullTimeEmployee \
-  org.apache.jdo.pc.appid.PCPartTimeEmployee \
-  org.apache.jdo.pc.appid.PCInsurance \
-  org.apache.jdo.pc.appid.PCDepartment \
-  org.apache.jdo.pc.appid.PCProject \
-  org.apache.jdo.pc.appid.PCObjectKey
-
-jdo.pcclasses.appid.files= \
-  ${jdo.testclasses.dir}/org/apache/jdo/pc/appid/PCPoint.class \
-  ${jdo.testclasses.dir}/org/apache/jdo/pc/appid/PCRect.class \
-  ${jdo.testclasses.dir}/org/apache/jdo/pc/appid/PCPerson.class \
-  ${jdo.testclasses.dir}/org/apache/jdo/pc/appid/PCEmployee.class \
-  ${jdo.testclasses.dir}/org/apache/jdo/pc/appid/PCFullTimeEmployee.class \
-  ${jdo.testclasses.dir}/org/apache/jdo/pc/appid/PCPartTimeEmployee.class \
-  ${jdo.testclasses.dir}/org/apache/jdo/pc/appid/PCInsurance.class \
-  ${jdo.testclasses.dir}/org/apache/jdo/pc/appid/PCDepartment.class \
-  ${jdo.testclasses.dir}/org/apache/jdo/pc/appid/PCProject.class \
-  ${jdo.testclasses.dir}/org/apache/jdo/pc/appid/PCObjectKey.class
-
-jdo.pcclasses.serializable.classes= \
-  org.apache.jdo.pc.serializable.PCClass1 \
-  org.apache.jdo.pc.serializable.PCClass2A \
-  org.apache.jdo.pc.serializable.PCClass2B \
-  org.apache.jdo.pc.serializable.PCSuper \
-  org.apache.jdo.pc.serializable.PCSub3 \
-  org.apache.jdo.pc.serializable.PCSub4A \
-  org.apache.jdo.pc.serializable.PCSub4B
-
-jdo.pcclasses.serializable.files= \
-  ${jdo.testclasses.dir}/org/apache/jdo/pc/serializable/PCClass1.class \
-  ${jdo.testclasses.dir}/org/apache/jdo/pc/serializable/PCClass2A.class \
-  ${jdo.testclasses.dir}/org/apache/jdo/pc/serializable/PCClass2B.class \
-  ${jdo.testclasses.dir}/org/apache/jdo/pc/serializable/PCSuper.class \
-  ${jdo.testclasses.dir}/org/apache/jdo/pc/serializable/PCSub3.class \
-  ${jdo.testclasses.dir}/org/apache/jdo/pc/serializable/PCSub4A.class \
-  ${jdo.testclasses.dir}/org/apache/jdo/pc/serializable/PCSub4B.class
-
-jdo.pawareclasses.test.classes= \
-  org.apache.jdo.test.Test_PCDerived
-
-jdo.pawareclasses.test.files= \
-  ${jdo.testclasses.dir}/org/apache/jdo/test/Test_PCDerived.class
diff --git a/fostore20/project.xml b/fostore20/project.xml
deleted file mode 100644
index ba86777..0000000
--- a/fostore20/project.xml
+++ /dev/null
@@ -1,137 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-
-    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.
--->
-
-<project>
-    <pomVersion>3</pomVersion>
-    <extend>../project.xml</extend>
-    <!-- ============== -->
-    <!-- Identification -->
-    <!-- ============== -->
-    <name>JDO2 Implementation (FOStore)</name>
-    <artifactId>jdo2-fostore</artifactId>
-    <currentVersion>SNAPSHOT</currentVersion>
-    <package>org.apache.jdo</package>
-    <shortDescription>Java Data Object 2.0 (JDO) Core</shortDescription>
-    <description>The Java Data Objects 2.0 (JDO) API is a standard interface-based 
-Java model abstraction of persistence, developed as Java Specification 
-Request JSR 243 under the auspices of the Java Community Process.</description>
-    <repository />
-    <!-- ============ -->
-    <!-- Dependencies -->
-    <!-- ============ -->
-    <dependencies>
-        <dependency>
-            <groupId>javax.jdo</groupId>
-            <artifactId>jdo2-api</artifactId>
-            <version>SNAPSHOT</version>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.jdo</groupId>
-            <artifactId>jdo2-runtime</artifactId>
-            <version>SNAPSHOT</version>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.jdo</groupId>
-            <artifactId>jdo2-core</artifactId>
-            <version>SNAPSHOT</version>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.jdo</groupId>
-            <artifactId>jdo2-enhancer</artifactId>
-            <version>SNAPSHOT</version>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.jdo</groupId>
-            <artifactId>jdo2-query</artifactId>
-            <version>SNAPSHOT</version>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.jdo</groupId>
-            <artifactId>jdo-btree</artifactId>
-            <version>1.1</version>
-        </dependency>
-        <dependency>
-            <groupId>geronimo-spec</groupId>
-            <artifactId>geronimo-spec-jta</artifactId>
-            <version>1.0.1B-rc2</version>
-        </dependency>
-        <dependency>
-            <groupId>junit</groupId>
-            <artifactId>junit</artifactId>
-            <version>3.8.1</version>
-        </dependency>
-        <dependency>
-            <groupId>commons-logging</groupId>
-            <artifactId>commons-logging</artifactId>
-            <version>1.0.4</version>
-        </dependency>
-        <dependency>
-            <groupId>antlr</groupId>
-            <artifactId>antlr</artifactId>
-            <version>2.7.5</version>
-            <url>http://www.antlr.org/download.html</url>
-        </dependency>
-    </dependencies>
-    <!-- =================== -->
-    <!-- Build Specification -->
-    <!-- =================== -->
-    <build>
-        <sourceDirectory>src/java</sourceDirectory>
-        <unitTestSourceDirectory>test/java</unitTestSourceDirectory>
-        <!-- Unit test cases -->
-        <unitTest>
-            <includes>
-                <include>org/**/Test_*.java</include>
-            </includes>
-            <excludes>
-                <exclude>org/**/util/*.java</exclude>
-                <exclude>org/**/Test_ClassRegistration.java</exclude>
-                <exclude>org/**/Test_FSUID2.java</exclude>
-                <exclude>org/**/Test_FetchInserted.java</exclude>
-                <exclude>org/**/Test_GetObjectById2.java</exclude>
-                <exclude>org/**/Test_NonExistent.java</exclude>
-                <exclude>org/**/Test_EmpDeptAppIdInsert.java</exclude>
-                <exclude>org/**/Test_EmpDeptAppIdUpdate.java</exclude>
-                <exclude>org/**/Test_EmpDeptAppIdDelete.java</exclude>
-            </excludes>
-            <resources>
-                <resource>
-                    <directory>${basedir}/test/conf</directory>
-                    <includes>
-                        <include>PMF.properties</include>
-                        <include>jndi.properties</include>
-                        <include>commons-logging.properties</include>
-                        <include>simplelog.properties</include>
-                        <include>logging.properties</include>
-                    </includes>
-                </resource>
-            </resources>
-        </unitTest>
-        <!-- J A R  R E S O U R C E S -->
-        <!-- Resources that are packaged up inside the JAR file -->
-        <resources>
-            <resource>
-                <directory>${basedir}/src/java</directory>
-                <includes>
-                    <include>**/*.properties</include>
-                </includes>
-            </resource>
-        </resources>
-    </build>
-</project>
-
diff --git a/fostore20/src/conf/commons-logging.properties b/fostore20/src/conf/commons-logging.properties
deleted file mode 100644
index 10b6571..0000000
--- a/fostore20/src/conf/commons-logging.properties
+++ /dev/null
@@ -1,45 +0,0 @@
-#
... 365279 lines suppressed ...

[db-jdo] 05/06: Clean up 2.0-rc1

Posted by cl...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

clr pushed a commit to branch origin/2.0-rc1
in repository https://gitbox.apache.org/repos/asf/db-jdo.git

commit 7ad160f34bce8e414cee11ae06bb7138d2d7a18f
Author: Craig L Russell <cl...@apache.org>
AuthorDate: Thu Feb 23 01:31:23 2006 +0000

    Clean up 2.0-rc1
---
 query20/LICENSE.txt                                |  202 --
 query20/maven.xml                                  |   99 -
 query20/project.properties                         |   25 -
 query20/project.xml                                |   82 -
 query20/src/conf/commons-logging.properties        |   44 -
 query20/src/conf/logging.properties                |   66 -
 query20/src/conf/simplelog.properties              |   56 -
 .../org/apache/jdo/impl/jdoql/Bundle.properties    |  225 --
 .../jdo/impl/jdoql/JDOQLQueryFactoryImpl.java      |  116 -
 .../org/apache/jdo/impl/jdoql/MemoryQuery.java     | 1484 -----------
 .../apache/jdo/impl/jdoql/OrderingComparator.java  |  125 -
 .../java/org/apache/jdo/impl/jdoql/QueryImpl.java  |  994 --------
 .../jdo/impl/jdoql/QueryResultHelperImpl.java      |  226 --
 .../org/apache/jdo/impl/jdoql/jdoqlc/ErrorMsg.java |  143 --
 .../java/org/apache/jdo/impl/jdoql/jdoqlc/JDOQL.g  |  843 -------
 .../org/apache/jdo/impl/jdoql/jdoqlc/JDOQLAST.java |  220 --
 .../jdo/impl/jdoql/jdoqlc/JDOQLASTFactory.java     |   95 -
 .../org/apache/jdo/impl/jdoql/jdoqlc/JDOQLC.java   |  326 ---
 .../org/apache/jdo/impl/jdoql/jdoqlc/Optimizer.g   | 1313 ----------
 .../org/apache/jdo/impl/jdoql/jdoqlc/Semantic.g    | 1727 -------------
 .../jdo/impl/jdoql/jdoqlc/SimpleFieldManager.java  |  189 --
 .../apache/jdo/impl/jdoql/jdoqlc/TypeSupport.java  |  440 ----
 .../jdo/impl/jdoql/jdoqlc/VariableChecker.java     |  290 ---
 .../jdo/impl/jdoql/scope/AbstractValueTable.java   |  175 --
 .../jdo/impl/jdoql/scope/ParameterTable.java       |  173 --
 .../apache/jdo/impl/jdoql/scope/SymbolTable.java   |   87 -
 .../org/apache/jdo/impl/jdoql/scope/TypeNames.java |  156 --
 .../org/apache/jdo/impl/jdoql/scope/UNDEFINED.java |   62 -
 .../apache/jdo/impl/jdoql/scope/VariableTable.java |   66 -
 .../org/apache/jdo/impl/jdoql/tree/AndExpr.java    |   94 -
 .../jdo/impl/jdoql/tree/AscendingOrderingExpr.java |   79 -
 .../org/apache/jdo/impl/jdoql/tree/BinaryExpr.java |  166 --
 .../jdo/impl/jdoql/tree/BooleanLiteralExpr.java    |   93 -
 .../jdo/impl/jdoql/tree/ByteLiteralExpr.java       |   92 -
 .../jdo/impl/jdoql/tree/CandidateClassImpl.java    |   94 -
 .../org/apache/jdo/impl/jdoql/tree/CastExpr.java   |  116 -
 .../jdo/impl/jdoql/tree/CharLiteralExpr.java       |   92 -
 .../apache/jdo/impl/jdoql/tree/ComplementExpr.java |   78 -
 .../jdo/impl/jdoql/tree/ConditionalAndExpr.java    |   96 -
 .../jdo/impl/jdoql/tree/ConditionalOrExpr.java     |   96 -
 .../apache/jdo/impl/jdoql/tree/ConstantExpr.java   |  127 -
 .../jdo/impl/jdoql/tree/ContainsCallExpr.java      |  121 -
 .../java/org/apache/jdo/impl/jdoql/tree/Decl.java  |   87 -
 .../impl/jdoql/tree/DescendingOrderingExpr.java    |   79 -
 .../org/apache/jdo/impl/jdoql/tree/DivideExpr.java |   95 -
 .../jdo/impl/jdoql/tree/DoubleLiteralExpr.java     |   92 -
 .../jdo/impl/jdoql/tree/EndsWithCallExpr.java      |  119 -
 .../org/apache/jdo/impl/jdoql/tree/EqualsExpr.java |   94 -
 .../java/org/apache/jdo/impl/jdoql/tree/Expr.java  |   50 -
 .../jdo/impl/jdoql/tree/FieldAccessExpr.java       |  204 --
 .../impl/jdoql/tree/FilterExpressionDumper.java    |  497 ----
 .../jdo/impl/jdoql/tree/FloatLiteralExpr.java      |   92 -
 .../jdo/impl/jdoql/tree/GreaterThanEqualsExpr.java |   96 -
 .../jdo/impl/jdoql/tree/GreaterThanExpr.java       |   95 -
 .../apache/jdo/impl/jdoql/tree/IdentifierExpr.java |  100 -
 .../apache/jdo/impl/jdoql/tree/IntLiteralExpr.java |   92 -
 .../jdo/impl/jdoql/tree/IsEmptyCallExpr.java       |   89 -
 .../jdo/impl/jdoql/tree/LessThanEqualsExpr.java    |   96 -
 .../apache/jdo/impl/jdoql/tree/LessThanExpr.java   |   94 -
 .../jdo/impl/jdoql/tree/LongLiteralExpr.java       |   92 -
 .../apache/jdo/impl/jdoql/tree/MethodCallExpr.java |  114 -
 .../org/apache/jdo/impl/jdoql/tree/MinusExpr.java  |   94 -
 .../org/apache/jdo/impl/jdoql/tree/NodeImpl.java   |  259 --
 .../apache/jdo/impl/jdoql/tree/NotEqualsExpr.java  |   96 -
 .../org/apache/jdo/impl/jdoql/tree/NotExpr.java    |   77 -
 .../org/apache/jdo/impl/jdoql/tree/OrExpr.java     |   94 -
 .../apache/jdo/impl/jdoql/tree/OrderingExpr.java   |   64 -
 .../jdo/impl/jdoql/tree/ParameterAccessExpr.java   |   81 -
 .../apache/jdo/impl/jdoql/tree/ParameterDecl.java  |   77 -
 .../org/apache/jdo/impl/jdoql/tree/PlusExpr.java   |   94 -
 .../jdo/impl/jdoql/tree/ShortLiteralExpr.java      |   92 -
 .../jdo/impl/jdoql/tree/StartsWithCallExpr.java    |  119 -
 .../jdo/impl/jdoql/tree/StaticFieldAccessExpr.java |  166 --
 .../org/apache/jdo/impl/jdoql/tree/ThisExpr.java   |   76 -
 .../org/apache/jdo/impl/jdoql/tree/TimesExpr.java  |   95 -
 .../java/org/apache/jdo/impl/jdoql/tree/Tree.java  | 1021 --------
 .../org/apache/jdo/impl/jdoql/tree/TypeImpl.java   |   93 -
 .../org/apache/jdo/impl/jdoql/tree/UnaryExpr.java  |   64 -
 .../apache/jdo/impl/jdoql/tree/UnaryMinusExpr.java |   77 -
 .../apache/jdo/impl/jdoql/tree/UnaryPlusExpr.java  |   76 -
 .../jdo/impl/jdoql/tree/VariableAccessExpr.java    |   81 -
 .../apache/jdo/impl/jdoql/tree/VariableDecl.java   |   77 -
 .../org/apache/jdo/jdoql/JDOQLQueryFactory.java    |  151 --
 .../org/apache/jdo/jdoql/JDOQueryException.java    |   61 -
 query20/src/java/org/apache/jdo/jdoql/package.html |   27 -
 .../apache/jdo/jdoql/tree/AbstractNodeVisitor.java | 1586 ------------
 .../org/apache/jdo/jdoql/tree/AndExpression.java   |   29 -
 .../jdoql/tree/AscendingOrderingExpression.java    |   29 -
 .../apache/jdo/jdoql/tree/BinaryExpression.java    |   52 -
 .../jdo/jdoql/tree/BooleanLiteralExpression.java   |   32 -
 .../jdo/jdoql/tree/ByteLiteralExpression.java      |   31 -
 .../org/apache/jdo/jdoql/tree/CandidateClass.java  |   29 -
 .../org/apache/jdo/jdoql/tree/CastExpression.java  |   39 -
 .../jdo/jdoql/tree/CharLiteralExpression.java      |   31 -
 .../jdo/jdoql/tree/ComplementExpression.java       |   28 -
 .../jdo/jdoql/tree/ConditionalAndExpression.java   |   28 -
 .../jdo/jdoql/tree/ConditionalOrExpression.java    |   28 -
 .../apache/jdo/jdoql/tree/ConstantExpression.java  |   33 -
 .../jdo/jdoql/tree/ContainsCallExpression.java     |   29 -
 .../org/apache/jdo/jdoql/tree/Declaration.java     |   41 -
 .../jdoql/tree/DescendingOrderingExpression.java   |   29 -
 .../apache/jdo/jdoql/tree/DivideExpression.java    |   28 -
 .../jdo/jdoql/tree/DoubleLiteralExpression.java    |   31 -
 .../jdo/jdoql/tree/EndsWithCallExpression.java     |   29 -
 .../apache/jdo/jdoql/tree/EqualsExpression.java    |   28 -
 .../java/org/apache/jdo/jdoql/tree/Expression.java |   29 -
 .../apache/jdo/jdoql/tree/ExpressionFactory.java   |  330 ---
 .../jdo/jdoql/tree/FieldAccessExpression.java      |   52 -
 .../jdo/jdoql/tree/FloatLiteralExpression.java     |   31 -
 .../jdoql/tree/GreaterThanEqualsExpression.java    |   28 -
 .../jdo/jdoql/tree/GreaterThanExpression.java      |   28 -
 .../jdo/jdoql/tree/IdentifierExpression.java       |   40 -
 .../jdo/jdoql/tree/IntLiteralExpression.java       |   31 -
 .../jdo/jdoql/tree/IsEmptyCallExpression.java      |   28 -
 .../jdo/jdoql/tree/LessThanEqualsExpression.java   |   28 -
 .../apache/jdo/jdoql/tree/LessThanExpression.java  |   28 -
 .../jdo/jdoql/tree/LongLiteralExpression.java      |   31 -
 .../jdo/jdoql/tree/MethodCallExpression.java       |   50 -
 .../org/apache/jdo/jdoql/tree/MinusExpression.java |   27 -
 .../src/java/org/apache/jdo/jdoql/tree/Node.java   |  119 -
 .../org/apache/jdo/jdoql/tree/NodeVisitor.java     | 1676 -------------
 .../apache/jdo/jdoql/tree/NotEqualsExpression.java |   28 -
 .../org/apache/jdo/jdoql/tree/NotExpression.java   |   28 -
 .../org/apache/jdo/jdoql/tree/OrExpression.java    |   29 -
 .../apache/jdo/jdoql/tree/OrderingExpression.java  |   33 -
 .../jdo/jdoql/tree/ParameterAccessExpression.java  |   27 -
 .../jdo/jdoql/tree/ParameterDeclaration.java       |   27 -
 .../org/apache/jdo/jdoql/tree/PlusExpression.java  |   27 -
 .../java/org/apache/jdo/jdoql/tree/QueryTree.java  |  127 -
 .../jdo/jdoql/tree/ShortLiteralExpression.java     |   31 -
 .../jdo/jdoql/tree/StartsWithCallExpression.java   |   29 -
 .../jdoql/tree/StaticFieldAccessExpression.java    |   43 -
 .../org/apache/jdo/jdoql/tree/ThisExpression.java  |   27 -
 .../org/apache/jdo/jdoql/tree/TimesExpression.java |   28 -
 .../java/org/apache/jdo/jdoql/tree/TreeWalker.java |   69 -
 .../src/java/org/apache/jdo/jdoql/tree/Type.java   |   41 -
 .../org/apache/jdo/jdoql/tree/UnaryExpression.java |   33 -
 .../jdo/jdoql/tree/UnaryMinusExpression.java       |   28 -
 .../apache/jdo/jdoql/tree/UnaryPlusExpression.java |   28 -
 .../java/org/apache/jdo/jdoql/tree/ValueTable.java |   63 -
 .../jdo/jdoql/tree/VariableAccessExpression.java   |   27 -
 .../apache/jdo/jdoql/tree/VariableDeclaration.java |   27 -
 .../java/org/apache/jdo/jdoql/tree/package.html    |   26 -
 runtime20/maven.xml                                |   56 -
 runtime20/project.properties                       |   18 -
 runtime20/project.xml                              |   85 -
 runtime20/src/conf/commons-logging.properties      |   42 -
 runtime20/src/conf/logging.properties              |   62 -
 runtime20/src/conf/simplelog.properties            |   52 -
 .../src/java/org/apache/jdo/ejb/EJBHelper.java     |  130 -
 .../src/java/org/apache/jdo/ejb/EJBImplHelper.java |  138 --
 runtime20/src/java/org/apache/jdo/ejb/package.html |   26 -
 .../jdo/impl/model/java/runtime/Bundle.properties  |   59 -
 .../model/java/runtime/RegisterClassListener.java  |  178 --
 .../impl/model/java/runtime/RuntimeJavaModel.java  |  172 --
 .../java/runtime/RuntimeJavaModelFactory.java      |  147 --
 .../impl/model/java/runtime/RuntimeJavaType.java   |   70 -
 .../java/runtime/jdk5/ComponentTypeHelper.java     |  107 -
 .../java/runtime/jdk5/JDK5RuntimeJavaField.java    |   71 -
 .../java/runtime/jdk5/JDK5RuntimeJavaMethod.java   |   59 -
 .../java/runtime/jdk5/JDK5RuntimeJavaModel.java    |   58 -
 .../runtime/jdk5/JDK5RuntimeJavaModelFactory.java  |   88 -
 .../java/runtime/jdk5/JDK5RuntimeJavaProperty.java |   74 -
 .../java/runtime/jdk5/JDK5RuntimeJavaType.java     |   84 -
 .../jdo/impl/model/java/runtime/package.html       |   27 -
 .../apache/jdo/impl/model/jdo/xml/XMLExists.java   |  268 --
 .../java/org/apache/jdo/impl/pm/Bundle.properties  |  102 -
 .../org/apache/jdo/impl/pm/CacheManagerImpl.java   |  631 -----
 .../jdo/impl/pm/PersistenceManagerFactoryImpl.java | 1791 --------------
 .../apache/jdo/impl/pm/PersistenceManagerImpl.java | 2573 -------------------
 .../jdo/impl/pm/PersistenceManagerWrapper.java     | 1140 ---------
 .../org/apache/jdo/impl/pm/TransactionImpl.java    | 1181 ---------
 .../jdo/impl/pm/TransactionSynchronization.java    |   60 -
 .../src/java/org/apache/jdo/impl/pm/package.html   |   28 -
 .../java/org/apache/jdo/impl/sco/ArrayList.java    |  605 -----
 .../java/org/apache/jdo/impl/sco/Bundle.properties |   34 -
 .../src/java/org/apache/jdo/impl/sco/Date.java     |  247 --
 .../src/java/org/apache/jdo/impl/sco/Freezer.java  |  403 ---
 .../src/java/org/apache/jdo/impl/sco/HashMap.java  |  607 -----
 .../src/java/org/apache/jdo/impl/sco/HashSet.java  |  589 -----
 .../java/org/apache/jdo/impl/sco/Hashtable.java    |  614 -----
 .../java/org/apache/jdo/impl/sco/LinkedList.java   |  669 -----
 .../java/org/apache/jdo/impl/sco/SCOHelper.java    |  206 --
 .../src/java/org/apache/jdo/impl/sco/SqlDate.java  |  203 --
 .../src/java/org/apache/jdo/impl/sco/SqlTime.java  |  204 --
 .../java/org/apache/jdo/impl/sco/SqlTimestamp.java |  288 ---
 .../src/java/org/apache/jdo/impl/sco/TreeMap.java  |  603 -----
 .../src/java/org/apache/jdo/impl/sco/TreeSet.java  |  596 -----
 .../src/java/org/apache/jdo/impl/sco/Vector.java   |  737 ------
 .../src/java/org/apache/jdo/impl/sco/package.html  |   27 -
 .../apache/jdo/impl/state/AutoPersistentNew.java   |  118 -
 .../jdo/impl/state/AutoPersistentNewFlushed.java   |  118 -
 .../impl/state/AutoPersistentNewFlushedDirty.java  |  101 -
 .../jdo/impl/state/AutoPersistentPending.java      |   88 -
 .../org/apache/jdo/impl/state/Bundle.properties    |   67 -
 .../src/java/org/apache/jdo/impl/state/Hollow.java |  219 --
 .../org/apache/jdo/impl/state/LifeCycleState.java  |  573 -----
 .../org/apache/jdo/impl/state/PersistentClean.java |  148 --
 .../impl/state/PersistentCleanTransactional.java   |   70 -
 .../apache/jdo/impl/state/PersistentDeleted.java   |  110 -
 .../jdo/impl/state/PersistentDeletedFlushed.java   |   58 -
 .../org/apache/jdo/impl/state/PersistentDirty.java |  110 -
 .../jdo/impl/state/PersistentDirtyFlushed.java     |   92 -
 .../org/apache/jdo/impl/state/PersistentNew.java   |  108 -
 .../jdo/impl/state/PersistentNewDeleted.java       |  105 -
 .../jdo/impl/state/PersistentNewFlushed.java       |   92 -
 .../impl/state/PersistentNewFlushedDeleted.java    |   68 -
 .../jdo/impl/state/PersistentNewFlushedDirty.java  |   70 -
 .../jdo/impl/state/PersistentNonTransactional.java |  282 ---
 .../apache/jdo/impl/state/ReachabilityHandler.java |  255 --
 .../org/apache/jdo/impl/state/SCOProcessor.java    |  438 ----
 .../apache/jdo/impl/state/SimpleFieldManager.java  |  212 --
 .../apache/jdo/impl/state/StateFieldManager.java   |  207 --
 .../apache/jdo/impl/state/StateManagerFactory.java |   66 -
 .../apache/jdo/impl/state/StateManagerImpl.java    | 2599 --------------------
 .../org/apache/jdo/impl/state/TransientClean.java  |  127 -
 .../org/apache/jdo/impl/state/TransientDirty.java  |   96 -
 runtime20/src/java/org/apache/jdo/pm/Accessor.java |   37 -
 .../jdo/pm/PersistenceManagerFactoryInternal.java  |   78 -
 .../apache/jdo/pm/PersistenceManagerInternal.java  |  265 --
 runtime20/src/java/org/apache/jdo/pm/package.html  |   27 -
 .../org/apache/jdo/query/BasicQueryResult.java     |  310 ---
 .../java/org/apache/jdo/query/Bundle.properties    |   28 -
 .../src/java/org/apache/jdo/query/QueryResult.java |   42 -
 .../org/apache/jdo/query/QueryResultHelper.java    |   83 -
 .../org/apache/jdo/query/QueryResultIterator.java  |   40 -
 runtime20/src/java/org/apache/jdo/sco/SCO.java     |   64 -
 .../src/java/org/apache/jdo/sco/SCOCollection.java |  116 -
 runtime20/src/java/org/apache/jdo/sco/SCODate.java |   36 -
 runtime20/src/java/org/apache/jdo/sco/SCOMap.java  |  142 --
 runtime20/src/java/org/apache/jdo/sco/package.html |   26 -
 .../java/org/apache/jdo/state/FieldManager.java    |  137 --
 .../org/apache/jdo/state/StateManagerInternal.java |  283 ---
 .../src/java/org/apache/jdo/state/package.html     |   26 -
 .../java/org/apache/jdo/store/Bundle.properties    |   30 -
 .../src/java/org/apache/jdo/store/Connector.java   |   85 -
 .../java/org/apache/jdo/store/StoreManager.java    |  269 --
 .../org/apache/jdo/store/StoreManagerImpl.java     |  124 -
 .../src/java/org/apache/jdo/store/Transcriber.java |   26 -
 .../org/apache/jdo/store/TranscriberFactory.java   |   26 -
 .../src/java/org/apache/jdo/store/package.html     |   26 -
 241 files changed, 47586 deletions(-)

diff --git a/query20/LICENSE.txt b/query20/LICENSE.txt
deleted file mode 100644
index d645695..0000000
--- a/query20/LICENSE.txt
+++ /dev/null
@@ -1,202 +0,0 @@
-
-                                 Apache License
-                           Version 2.0, January 2004
-                        http://www.apache.org/licenses/
-
-   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
-   1. Definitions.
-
-      "License" shall mean the terms and conditions for use, reproduction,
-      and distribution as defined by Sections 1 through 9 of this document.
-
-      "Licensor" shall mean the copyright owner or entity authorized by
-      the copyright owner that is granting the License.
-
-      "Legal Entity" shall mean the union of the acting entity and all
-      other entities that control, are controlled by, or are under common
-      control with that entity. For the purposes of this definition,
-      "control" means (i) the power, direct or indirect, to cause the
-      direction or management of such entity, whether by contract or
-      otherwise, or (ii) ownership of fifty percent (50%) or more of the
-      outstanding shares, or (iii) beneficial ownership of such entity.
-
-      "You" (or "Your") shall mean an individual or Legal Entity
-      exercising permissions granted by this License.
-
-      "Source" form shall mean the preferred form for making modifications,
-      including but not limited to software source code, documentation
-      source, and configuration files.
-
-      "Object" form shall mean any form resulting from mechanical
-      transformation or translation of a Source form, including but
-      not limited to compiled object code, generated documentation,
-      and conversions to other media types.
-
-      "Work" shall mean the work of authorship, whether in Source or
-      Object form, made available under the License, as indicated by a
-      copyright notice that is included in or attached to the work
-      (an example is provided in the Appendix below).
-
-      "Derivative Works" shall mean any work, whether in Source or Object
-      form, that is based on (or derived from) the Work and for which the
-      editorial revisions, annotations, elaborations, or other modifications
-      represent, as a whole, an original work of authorship. For the purposes
-      of this License, Derivative Works shall not include works that remain
-      separable from, or merely link (or bind by name) to the interfaces of,
-      the Work and Derivative Works thereof.
-
-      "Contribution" shall mean any work of authorship, including
-      the original version of the Work and any modifications or additions
-      to that Work or Derivative Works thereof, that is intentionally
-      submitted to Licensor for inclusion in the Work by the copyright owner
-      or by an individual or Legal Entity authorized to submit on behalf of
-      the copyright owner. For the purposes of this definition, "submitted"
-      means any form of electronic, verbal, or written communication sent
-      to the Licensor or its representatives, including but not limited to
-      communication on electronic mailing lists, source code control systems,
-      and issue tracking systems that are managed by, or on behalf of, the
-      Licensor for the purpose of discussing and improving the Work, but
-      excluding communication that is conspicuously marked or otherwise
-      designated in writing by the copyright owner as "Not a Contribution."
-
-      "Contributor" shall mean Licensor and any individual or Legal Entity
-      on behalf of whom a Contribution has been received by Licensor and
-      subsequently incorporated within the Work.
-
-   2. Grant of Copyright License. Subject to the terms and conditions of
-      this License, each Contributor hereby grants to You a perpetual,
-      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
-      copyright license to reproduce, prepare Derivative Works of,
-      publicly display, publicly perform, sublicense, and distribute the
-      Work and such Derivative Works in Source or Object form.
-
-   3. Grant of Patent License. Subject to the terms and conditions of
-      this License, each Contributor hereby grants to You a perpetual,
-      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
-      (except as stated in this section) patent license to make, have made,
-      use, offer to sell, sell, import, and otherwise transfer the Work,
-      where such license applies only to those patent claims licensable
-      by such Contributor that are necessarily infringed by their
-      Contribution(s) alone or by combination of their Contribution(s)
-      with the Work to which such Contribution(s) was submitted. If You
-      institute patent litigation against any entity (including a
-      cross-claim or counterclaim in a lawsuit) alleging that the Work
-      or a Contribution incorporated within the Work constitutes direct
-      or contributory patent infringement, then any patent licenses
-      granted to You under this License for that Work shall terminate
-      as of the date such litigation is filed.
-
-   4. Redistribution. You may reproduce and distribute copies of the
-      Work or Derivative Works thereof in any medium, with or without
-      modifications, and in Source or Object form, provided that You
-      meet the following conditions:
-
-      (a) You must give any other recipients of the Work or
-          Derivative Works a copy of this License; and
-
-      (b) You must cause any modified files to carry prominent notices
-          stating that You changed the files; and
-
-      (c) You must retain, in the Source form of any Derivative Works
-          that You distribute, all copyright, patent, trademark, and
-          attribution notices from the Source form of the Work,
-          excluding those notices that do not pertain to any part of
-          the Derivative Works; and
-
-      (d) If the Work includes a "NOTICE" text file as part of its
-          distribution, then any Derivative Works that You distribute must
-          include a readable copy of the attribution notices contained
-          within such NOTICE file, excluding those notices that do not
-          pertain to any part of the Derivative Works, in at least one
-          of the following places: within a NOTICE text file distributed
-          as part of the Derivative Works; within the Source form or
-          documentation, if provided along with the Derivative Works; or,
-          within a display generated by the Derivative Works, if and
-          wherever such third-party notices normally appear. The contents
-          of the NOTICE file are for informational purposes only and
-          do not modify the License. You may add Your own attribution
-          notices within Derivative Works that You distribute, alongside
-          or as an addendum to the NOTICE text from the Work, provided
-          that such additional attribution notices cannot be construed
-          as modifying the License.
-
-      You may add Your own copyright statement to Your modifications and
-      may provide additional or different license terms and conditions
-      for use, reproduction, or distribution of Your modifications, or
-      for any such Derivative Works as a whole, provided Your use,
-      reproduction, and distribution of the Work otherwise complies with
-      the conditions stated in this License.
-
-   5. Submission of Contributions. Unless You explicitly state otherwise,
-      any Contribution intentionally submitted for inclusion in the Work
-      by You to the Licensor shall be under the terms and conditions of
-      this License, without any additional terms or conditions.
-      Notwithstanding the above, nothing herein shall supersede or modify
-      the terms of any separate license agreement you may have executed
-      with Licensor regarding such Contributions.
-
-   6. Trademarks. This License does not grant permission to use the trade
-      names, trademarks, service marks, or product names of the Licensor,
-      except as required for reasonable and customary use in describing the
-      origin of the Work and reproducing the content of the NOTICE file.
-
-   7. Disclaimer of Warranty. Unless required by applicable law or
-      agreed to in writing, Licensor provides the Work (and each
-      Contributor provides its Contributions) on an "AS IS" BASIS,
-      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
-      implied, including, without limitation, any warranties or conditions
-      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
-      PARTICULAR PURPOSE. You are solely responsible for determining the
-      appropriateness of using or redistributing the Work and assume any
-      risks associated with Your exercise of permissions under this License.
-
-   8. Limitation of Liability. In no event and under no legal theory,
-      whether in tort (including negligence), contract, or otherwise,
-      unless required by applicable law (such as deliberate and grossly
-      negligent acts) or agreed to in writing, shall any Contributor be
-      liable to You for damages, including any direct, indirect, special,
-      incidental, or consequential damages of any character arising as a
-      result of this License or out of the use or inability to use the
-      Work (including but not limited to damages for loss of goodwill,
-      work stoppage, computer failure or malfunction, or any and all
-      other commercial damages or losses), even if such Contributor
-      has been advised of the possibility of such damages.
-
-   9. Accepting Warranty or Additional Liability. While redistributing
-      the Work or Derivative Works thereof, You may choose to offer,
-      and charge a fee for, acceptance of support, warranty, indemnity,
-      or other liability obligations and/or rights consistent with this
-      License. However, in accepting such obligations, You may act only
-      on Your own behalf and on Your sole responsibility, not on behalf
-      of any other Contributor, and only if You agree to indemnify,
-      defend, and hold each Contributor harmless for any liability
-      incurred by, or claims asserted against, such Contributor by reason
-      of your accepting any such warranty or additional liability.
-
-   END OF TERMS AND CONDITIONS
-
-   APPENDIX: How to apply the Apache License to your work.
-
-      To apply the Apache License to your work, attach the following
-      boilerplate notice, with the fields enclosed by brackets "[]"
-      replaced with your own identifying information. (Don't include
-      the brackets!)  The text should be enclosed in the appropriate
-      comment syntax for the file format. We also recommend that a
-      file or class name and description of purpose be included on the
-      same "printed page" as the copyright notice for easier
-      identification within third-party archives.
-
-   Copyright [yyyy] [name of copyright owner]
-
-   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.
diff --git a/query20/maven.xml b/query20/maven.xml
deleted file mode 100644
index 89f80fb..0000000
--- a/query20/maven.xml
+++ /dev/null
@@ -1,99 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-    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.
--->
-
-<project default="default"
-    xmlns:j="jelly:core"
-    xmlns:ant="jelly:ant"
-    xmlns:maven="jelly:maven"
-    >
-
-    <!-- ==================== -->
-    <!-- Default Global Goals -->
-    <!-- ==================== -->
-
-    <goal name="default">
-        <attainGoal name="jar:install"/>
-    </goal>
-
-    <goal name="build">
-        <attainGoal name="default"/>
-    </goal>
-
-    <goal name="rebuild">
-        <attainGoal name="clean"/>
-        <attainGoal name="build"/>
-    </goal>
-
-    <preGoal name="java:compile">
-        <attainGoal name="antlr.compile"/>
-    </preGoal>
-
-    <postGoal name="clean:clean">
-        <attainGoal name="antlr.clean"/>
-    </postGoal>
-
-    <goal name="clobber" prereqs="clean">
-        <delete>
-            <fileset dir="." defaultexcludes="no" includes="**/*~"/>
-        </delete>
-    </goal>
-
-    <!-- ============= -->
-    <!-- ANTLR support -->
-    <!-- ============= -->
-
-    <preGoal name="antlr.compile">
-        <condition property="antlr.required">
-            <not>
-                <and>
-                    <uptodate targetfile="${jdo.antlr.src.dir}/JDOQLParser.java"
-                              srcfile="${jdo.antlr.src.dir}/JDOQL.g" />
-                    <uptodate targetfile="${jdo.antlr.src.dir}/Semantic.java"
-                              srcfile="${jdo.antlr.src.dir}/Semantic.g" />
-                    <uptodate targetfile="${jdo.antlr.src.dir}/Optimizer.java"
-                              srcfile="${jdo.antlr.src.dir}/Optimizer.g" />
-                </and>
-            </not>
-        </condition>
-    </preGoal>
-
-    <goal name="antlr.compile">
-        <j:if test="${antlr.required}">
-	    <java dir="${jdo.antlr.src.dir}" classname="antlr.Tool" fork="yes">
-                <arg value="JDOQL.g"/> 
-                <classpath refid="maven.dependency.classpath"/>
-            </java>
-	    <java dir="${jdo.antlr.src.dir}" classname="antlr.Tool" fork="yes">
-                <arg value="Semantic.g"/> 
-                <classpath refid="maven.dependency.classpath"/>
-            </java>
-	    <java dir="${jdo.antlr.src.dir}" classname="antlr.Tool" fork="yes">
-                <arg value="Optimizer.g"/> 
-                <classpath refid="maven.dependency.classpath"/>
-            </java>
-        </j:if>
-    </goal>
-
-    <goal name="antlr.clean">
-        <delete>
-            <fileset dir="${jdo.antlr.src.dir}" 
-                     includes="JDOQLLexer.java, JDOQLParser.java, Semantic*.java, 
-                               Optimizer*.java, *TokenTypes.*"/>
-        </delete>
-    </goal>
-
-</project>
diff --git a/query20/project.properties b/query20/project.properties
deleted file mode 100644
index 49a7a03..0000000
--- a/query20/project.properties
+++ /dev/null
@@ -1,25 +0,0 @@
-#
-# 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.
-
-# checkstyle settings
-maven.checkstyle.properties = ${basedir}/../jdo_checks.xml
-maven.checkstyle.excludes = \
-org/apache/jdo/impl/jdoql/jdoqlc/*TokenTypes.java,\
-org/apache/jdo/impl/jdoql/jdoqlc/JDOQLParser.java, \
-org/apache/jdo/impl/jdoql/jdoqlc/JDOQLLexer.java, \
-org/apache/jdo/impl/jdoql/jdoqlc/Semantic.java, \
-org/apache/jdo/impl/jdoql/jdoqlc/Optimizer.java
-
-jdo.antlr.src.dir = ${basedir}/src/java/org/apache/jdo/impl/jdoql/jdoqlc
diff --git a/query20/project.xml b/query20/project.xml
deleted file mode 100644
index 40f2299..0000000
--- a/query20/project.xml
+++ /dev/null
@@ -1,82 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-
-    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.
--->
-
-<project>
-    <pomVersion>3</pomVersion>
-    <extend>../project.xml</extend>
-    <!-- ============== -->
-    <!-- Identification -->
-    <!-- ============== -->
-    <name>JDO2 Implementation (Query)</name>
-    <groupId>org.apache.jdo</groupId>
-    <artifactId>jdo2-query</artifactId>
-    <currentVersion>2.0-rc1</currentVersion>
-    <package>org.apache.jdo</package>
-    <shortDescription>Java Data Object 2.0 (JDO) Core</shortDescription>
-    <description>The Java Data Objects 2.0 (JDO) API is a standard interface-based 
-Java model abstraction of persistence, developed as Java Specification 
-Request JSR 243 under the auspices of the Java Community Process.</description>
-    <repository />
-    <!-- ============ -->
-    <!-- Dependencies -->
-    <!-- ============ -->
-    <dependencies>
-        <dependency>
-            <groupId>javax.jdo</groupId>
-            <artifactId>jdo2-api</artifactId>
-            <version>2.0-rc1</version>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.jdo</groupId>
-            <artifactId>jdo2-core</artifactId>
-            <version>2.0-rc1</version>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.jdo</groupId>
-            <artifactId>jdo2-runtime</artifactId>
-            <version>2.0-rc1</version>
-        </dependency>
-        <dependency>
-            <id>commons-logging</id>
-            <version>1.0.4</version>
-        </dependency>
-        <dependency>
-            <groupId>antlr</groupId>
-            <artifactId>antlr</artifactId>
-            <version>2.7.5</version>
-            <url>http://www.antlr.org/download.html</url>
-        </dependency>
-    </dependencies>
-    <!-- =================== -->
-    <!-- Build Specification -->
-    <!-- =================== -->
-    <build>
-        <sourceDirectory>src/java</sourceDirectory>
-        <!-- J A R  R E S O U R C E S -->
-        <!-- Resources that are packaged up inside the JAR file -->
-        <resources>
-            <resource>
-                <directory>${basedir}/src/java</directory>
-                <includes>
-                    <include>**/*.properties</include>
-                </includes>
-            </resource>
-        </resources>
-    </build>
-</project>
-
diff --git a/query20/src/conf/commons-logging.properties b/query20/src/conf/commons-logging.properties
deleted file mode 100644
index 40d8e3d..0000000
--- a/query20/src/conf/commons-logging.properties
+++ /dev/null
@@ -1,44 +0,0 @@
-#
-# 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.
-
-#
-# This is a sample apache commons logging configuration file defining logging
-# properties for the JDO2 Implementation (Query) sources. It defines what
-# logging implementation the apache commons logging API should use by specifying
-# the property org.apache.commons.logging.Log (see below). Please note, that
-# there are separate property files for each logging implementation to set the
-# log level of the loggers:
-# - SimpleLog:      simplelog.properties 
-# - JDK1.4 logging: logging.properties
-#
-# The JDO2 Implementation (Query) sources use the following logger instances:
-# org.apache.jdo.impl.jdoql           JDOQL query runtime
-# org.apache.jdo.impl.jdoql.jdoqlc    JDOQL query compiler
-# Dependent projects:
-# org.apache.jdo.util                 Utility classes
-# org.apache.jdo.impl.model.jdo       JDOModel implementation
-# org.apache.jdo.impl.model.jdo.xml   XML parser for JDO metadata files
-# org.apache.jdo.impl.pm              PM and PMF implementation
-# org.apache.jdo.impl.sco             SCO implementation
-# org.apache.jdo.impl.state           StateManager implementation
-# org.apache.jdo.store                Generic StoreManager implementation
-#
-
-# Uncomment the next line if you want to use the apache simple logger
-#org.apache.commons.logging.Log = org.apache.commons.logging.impl.SimpleLog
-
-# Uncomment the next two lines if you want to use JDK 1.4 logging
-#org.apache.commons.logging.Log = org.apache.jdo.util.JDOJdk14Logger
-
diff --git a/query20/src/conf/logging.properties b/query20/src/conf/logging.properties
deleted file mode 100644
index 0340f7d..0000000
--- a/query20/src/conf/logging.properties
+++ /dev/null
@@ -1,66 +0,0 @@
-#
-# 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.
-
-#
-# This is a sample properties file to configure standard JDK 1.4 logging for 
-# the JDO2 Implementation (Query) sources. 
-# Below you find an entry for each of the source logger instances. 
-# Please uncomment the line and adapt the log level to your needs, 
-# in case to want to enable a particular logger.
-#
-# The following describes the mapping between the log level of JDK 1.4 logging
-# and apache commns logging:
-#   JDK 1.4        Apache 
-#   FINEST         trace 
-#   FINE, FINER    debug 
-#   INFO, CONFIG   info
-#   WARNING        warn
-#   SEVERE         error, fatal
-#
-
-######################
-# Query source logger
-######################
-
-# JDOQL query logger
-#org.apache.jdo.impl.jdoql.level = FINE
-# JDOQL query compiler logger
-#org.apache.jdo.impl.jdoql.jdoqlc.level = FINE
-
-######################
-# Dependent projects
-######################
-
-# Utility class logger
-#org.apache.jdo.util.level = FINE
-# JDOModel logger
-#org.apache.jdo.impl.model.jdo.level = FINE
-# XML parser logger
-#org.apache.jdo.impl.model.jdo.xml.level = FINE
-# PM and PMF logger
-#org.apache.jdo.impl.pm.level = FINE
-# SCO logger
-#org.apache.jdo.impl.sco.level = FINE
-# StateManager logger
-#org.apache.jdo.impl.state.level = FINE
-# Generic StoreManager logger
-#org.apache.jdo.store.level = FINE
-
-######################
-# JDK 1.4 logging properties
-######################
-
-handlers = java.util.logging.ConsoleHandler
-java.util.logging.ConsoleHandler.level = FINEST
diff --git a/query20/src/conf/simplelog.properties b/query20/src/conf/simplelog.properties
deleted file mode 100644
index 280c098..0000000
--- a/query20/src/conf/simplelog.properties
+++ /dev/null
@@ -1,56 +0,0 @@
-#
-# 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.
-
-#
-# This is a sample properties file to configure apache commons logging SimpleLog
-# implementation for the JDO2 Implementation (Query) sources. 
-# Below you find an entry for each of the source logger instances. 
-# Please uncomment the line and adapt the log level to your needs, 
-# in case to want to enable a particular logger.
-#
-
-######################
-# Query source logger
-######################
-
-# JDOQL query logger
-#org.apache.commons.logging.simplelog.log.org.apache.jdo.impl.jdoql = debug
-# JDOQL query compiler logger
-#org.apache.commons.logging.simplelog.log.org.apache.jdo.impl.jdoql.jdoqlc = debug
-
-######################
-# Dependent projects
-######################
-
-# Utility class logger
-#org.apache.commons.logging.simplelog.log.org.apache.jdo.util = debug
-# JDOModel logger
-#org.apache.commons.logging.simplelog.log.org.apache.jdo.impl.model.jdo = debug
-# XML parser logger
-#org.apache.commons.logging.simplelog.log.org.apache.jdo.impl.model.jdo.xml = debug
-# PM and PMF logger
-#org.apache.commons.logging.simplelog.log.org.apache.jdo.impl.pm = debug
-# SCO logger
-#org.apache.commons.logging.simplelog.log.org.apache.jdo.impl.sco = debug
-# StateManager logger
-#org.apache.commons.logging.simplelog.log.org.apache.jdo.impl.state = debug
-# Generic StoreManager logger
-#org.apache.commons.logging.simplelog.log.org.apache.jdo.store = debug
-
-######################
-# Default logging level
-######################
-
-org.apache.commons.logging.simplelog.defaultlog = error
diff --git a/query20/src/java/org/apache/jdo/impl/jdoql/Bundle.properties b/query20/src/java/org/apache/jdo/impl/jdoql/Bundle.properties
deleted file mode 100644
index 1db7774..0000000
--- a/query20/src/java/org/apache/jdo/impl/jdoql/Bundle.properties
+++ /dev/null
@@ -1,225 +0,0 @@
-#
-# 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.
-
-# This file should conform to netbeans standards
-# (http://www.netbeans.org/i18n)
-
-# resource bundle for the messages
-# key consists of: <PREFIX_><description>
-# <PREFIX_> - any valid prefix like MSG_, EXC_, etc.
-# <description> - short description started with the upper case letter and used
-# upper case to represent each next word.
-
-#
-# resource bundle for query messages
-#
-
-#
-# generic
-#
-EXC_MissingCandidateClass=Missing candidate class specification.
-
-#
-# QueryImpl
-#
-EXC_NullQueryInstance=Specified query is null.
-EXC_InvalidCompiledQuery=Invalid compiled query of type ''{0}''.
-EXC_UnboundQuery=Query is not bound to a PersistenceManager.
-EXC_UnknownCandidateClass=Unknown candidate class ''{0}''
-EXC_NoTransaction=No transaction and NontransactionalRead is false.
-
-#
-# main jdoqlc compiler class
-#
-#NOI18N
-ERR_UnexpectedExceptionSemantic=JDOQLC.semanticCheck unexpected exception
-#NOI18N
-ERR_UnexpectedExceptionOptimizer=JDOQLC.optimize unexpected exception
-
-#
-# jdoqlc error message helper class
-#
-EXC_PositionInfoMsg={0}: {1}
-EXC_PositionInfoMsgColumn={0} column({1}): {2}
-EXC_PositionInfoMsgLineColumn={0} line({1}) column({2}): {3}
-
-#
-# jdoqlc syntax error messages
-#
-EXC_SyntaxError=Syntax error.
-EXC_SyntaxErrorAt=Syntax error at ''{0}''.
-EXC_UnexpectedToken=Syntax error unexpected token ''{0}''.
-EXC_UnexpectedChar=Syntax error unexpected char ''{0}''.
-EXC_ExpectedCharFound=Syntax error expected char ''{0}'', found ''{1}''.
-EXC_UnexpectedEOF=Unexpected end of text.
-#NOI18N
-ERR_UnexpectedExceptionUnicode=JDOQLLexer.UNICODE_STR unexpected exception
-
-#
-# jdoqlc semantic error messages (unsupported operations)
-#
-
-#
-# jdoqlc semantic error messages (user errors)
-#
-EXC_CollectionElementTypeMismatch=Collection element type ''{0}'' and argument type ''{1}'' not compatible.
-EXC_ClassTypeExpressionExpected=Expression of class type expected.
-EXC_InvalidStaticReference=Cannot make a static reference to non-static variable ''{0}'' of class ''{1}''.
-EXC_NotSortableType=Operand type ''{0}'' of {1} is not sortable.
-EXC_UndefinedExpression=Undefined expression ''{0}''.
-EXC_BooleanFilterExpected=Boolean expression expected, filter expression has type ''{0}''.
-EXC_CollectionTypeExpected=Collection expression expected, expression has type ''{0}''.
-EXC_StringTypeExpected=String expression expected, expression has type ''{0}''.
-EXC_MultipleDeclaration=Multiple declaration of ''{0}''.
-EXC_MultipleImport=Multiple import of ''{0}''.
-EXC_WrongNumberOfArgs=Wrong number of arguments.
-EXC_ArgumentTypeMismatch=Incompatible type of argument. Cannot convert ''{0}'' to ''{1}''.
-EXC_InvalidArguments=Invalid argument(s) for ''{0}''.
-EXC_InvalidMethodCall=Invalid method call.
-EXC_UnknownField=Field ''{0}'' not defined for class ''{1}''.
-EXC_UnknownType=Unknown type ''{0}''.
-EXC_UndefinedIdentifier=Undefined identifier ''{0}''.
-EXC_InvalidCast=Cannot cast expression of type ''{0}'' to type ''{1}''.
-EXC_NotSortableInOrdering=Type ''{0}'' of ordering expression is not sortable.
-EXC_InvalidParameterAccess=Identifier ''{0}'' used in parameter access node is not declared as parameter
-EXC_InvalidVariableAccess=Identifier ''{0}'' used in variable access node is not declared as variable
-#NOI18N
-ERR_SemanticError=Semantic error:
-#NOI18N
-ERR_MissingChildren=Ivalid node (missing children): ''{0}''
-
-#
-# jdoqlc variable checker
-#
-EXC_UnsupportedMultipleConstraints=Multiple constraints for variable ''{0}''.
-EXC_UnconstraintVariable=Variable ''{0}'' is not constrained by contains call - unconstrained variables not supported.
-EXC_UnusedVariable=Variable ''{0}'' defined but not used.
-EXC_UnsupportedCyclicConstaint=Unsupported cyclic constraint definition for variable ''{0}''.
-EXC_DifferentConstraints=Different constraints for the same variable ''{0}''.
-#NOI18N
-ERR_VariableCheckerUndefinedVariable=VariableChecker.{0}: undefined variable ''{1}''
-#NOI18N
-ERR_VariableCheckerMultipleDependencies=VariableChecker.markUsed: multiple dependencies for variable ''{0}'' old ''{1}'' new ''{2}''
-
-#
-# jdoqlc optimizer messages
-#
-EXC_InvalidLiteral=Invalid {0} literal ''{1}''.
-#NOI18N
-ERR_OptimizerError=Optimizer error:
-#NOI18N
-ERR_OptmizerInvalidType=Optimizer.{0}: invalid type ''{1}''
-#NOI18N
-ERR_OptmizerNumberExpected=Optimizer.{0}: expected number value ''{1}''
-#NOI18N
-ERR_OptmizerCollectionExpected=Optimizer.{0}: expected collection ''{1}''
-
-#
-# jdoqlc JDOQLASTFactory
-#
-#NOI18N
-ERR_UnexpectedExceptionClone=Unexpected exception during clone
-
-#
-# scope.AbstractValueTable
-#
-#NOI18N
-ERR_InvalidTableForExecution=Invalid table ''{0}'' for query execution, value map not initialized.
-#NOI18N
-ERR_UnexpectedCloneProblems=Unexpected problems during clone
-
-#
-# scope.ParameterTable
-#
-EXC_UnboundQueryParameter=Unbound query parameter ''{0}''.
-EXC_UndefinedQueryParameter=Undefined query parameter ''{0}''.
-EXC_WrongNumberOfQueryParameters=Wrong number of query parameter values.
-EXC_IncompatibleTypeOfQueryParameter=Incompatible type of actual query parameter. Cannot convert ''{0}'' to ''{1}''.
-
-#
-# scope.VariableTable
-#
-EXC_UndefinedQueryVariable=Undefined query variable ''{0}''.
-
-#
-# TypeSupport
-#
-EXC_CannotFindField=Cannot find field ''{0}'' of class ''{1}''.
-EXC_CannotAccessField=Cannot access field ''{0}'' of class ''{1}''.
-# {0} - field name
-# {1} - class name
-EXC_CannotChangeAccessibility=A SecurityException was thrown when trying to \
-make field ''{0}'' in class ''{1}'' accessible in order to access its value \
-while executing a query.  In order to execute queries on transient instances, \
-you must grant java.lang.reflect.ReflectPermission("suppressAccessChecks") to \
-the codeBase containing the JDOQL implementation.
-EXC_InstanceBoundToDifferentPM=Instance ''{0}'' not bound to the PersistenceManager of the query
-#NOI18N
-ERR_CollectionFieldExpected=Collection field expected; field ''{0}'' of class ''{1}'' has type ''{2}''.
-
-#
-# tree.BinaryExpr
-#
-EXC_IncompatibleTypes=The operands ''{0}'', ''{1}'' for binary expression ''{2}'' have incompatible types. Change one of the operands.
-
-#
-# tree.CastExpr
-#
-EXC_IllegalCast=Cannot cast ''{0}'' to ''{1}''. Change one of the operands for cast expression ''{2}''.
-
-#
-# tree.MethodCallExpr
-#
-EXC_IllegalNumberOfParameters=Illegal number of parameters supplied for method call ''{0}''.
-
-#
-# tree.ContainsCallExpr
-# tree.IsEmptyCallExpr
-#
-EXC_NoCollectionType=The target expression ''{0}'' must have a collection type for method call expression ''{1}''. Change the target expression.
-
-#
-# tree.EndsWithCallExpr
-# tree.StartsWithCallExpr
-#
-EXC_NoStringType=The target expression ''{0}'' must have a string type for method call expression ''{1}''. Change the target expression.
-
-#
-# tree.FieldAccessExpr
-#
-EXC_NoSuchField=The identifier ''{0}'' does neither correspond with a declared parameter/variable nor with a field in class ''{1}''.
-
-#
-# tree.Node
-#
-EXC_CannotProcessNullNodes=Cannot construct node ''{0}'' for children which equal null. Do not use null arguments in any expression factory methods.
-EXC_CannotReuseNodes=The node ''{0}'' is already used in expression ''{1}''. Cannot reuse this node in another expression.
-
-#
-# tree.Tree
-#
-EXC_ParameterVariableCollision=You try to declare a parameter having name ''{0}''. This name is already used by a declared variable.
-EXC_VariableParameterCollision=You try to declare a variable having name ''{0}''. This name is already used by a declared parameter.
-EXC_IllegalTypeForFilterExpression=Cannot set filter expression ''{0}'' as it returns a non boolean type.
-EXC_IllegalIdentifier=You cannot create an identifier expression for Java key word. Do not use ''{0}'' for an identifier.
-EXC_NonSupportedMethodCall=Cannot construct a method call expression for method ''{0}''. This method is not supported.
-EXC_CannotResolveTokenType=Cannot resolve token type ''{0}''.
-
-#
-# MemoryQuery
-#
-EXC_IllegalResultTypeForExpression=Cannot apply operator ''{0}'' for operands of type ''{1}''.
-EXC_CannotAccessUnboundVariables=Cannot access unbound variable ''{0}''. Unbound variables do not have a corresponding contains clause.
-EXC_CannotProcessMultipleContainsClauses=Cannot process two contains clauses for the same binary expression.
diff --git a/query20/src/java/org/apache/jdo/impl/jdoql/JDOQLQueryFactoryImpl.java b/query20/src/java/org/apache/jdo/impl/jdoql/JDOQLQueryFactoryImpl.java
deleted file mode 100644
index 6af0952..0000000
--- a/query20/src/java/org/apache/jdo/impl/jdoql/JDOQLQueryFactoryImpl.java
+++ /dev/null
@@ -1,116 +0,0 @@
-/*
- * 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.
- */
-
-package org.apache.jdo.impl.jdoql;
-
-import java.util.Collection;
-
-import javax.jdo.Extent;
-import javax.jdo.Query;
-
-import org.apache.jdo.impl.jdoql.tree.Tree;
-import org.apache.jdo.jdoql.JDOQLQueryFactory;
-import org.apache.jdo.jdoql.tree.QueryTree;
-import org.apache.jdo.pm.PersistenceManagerInternal;
-
-/**
- * Implements the @link{QueryFactory} interface 
- * in order to implement a component which is capable 
- * to run together with JDO runtime.
- * 
- * @author Michael Watzek
- */
-public class JDOQLQueryFactoryImpl implements JDOQLQueryFactory 
-{
-
-    /** 
-     * Returns a new QueryTree instance. This instance allows to specify a 
-     * query with an API (see {@link org.apache.jdo.jdoql.tree.QueryTree} and 
-     * {@link org.apache.jdo.jdoql.tree.ExpressionFactory}) rather than as
-     * JDOQL strings. To run you create a query object from the QueryTree (see 
-     * {@link javax.jdo.PersistenceManager#newQuery(Object compiled)}) 
-     * and call the execute method on the Query object.
-     * @return new QueryTree instance.
-     */
-    public QueryTree newTree()
-    {
-        return new Tree();
-    }
-
-    /*
-     * @see org.apache.jdo.jdoql.QueryFactory#newQuery(org.apache.jdo.pm.PersistenceManagerInternal)
-     */
-    public Query newQuery(PersistenceManagerInternal pm) 
-    {
-        return new QueryImpl(pm);
-    }
-
-    /*
-     * @see org.apache.jdo.jdoql.QueryFactory#newQuery(org.apache.jdo.pm.PersistenceManagerInternal, java.lang.Object)
-     */
-    public Query newQuery(PersistenceManagerInternal pm, Object compiled) 
-    {
-        return new QueryImpl(pm, compiled);
-    }
-
-    /*
-     * @see org.apache.jdo.jdoql.QueryFactory#newQuery(org.apache.jdo.pm.PersistenceManagerInternal, java.lang.Class)
-     */
-    public Query newQuery(PersistenceManagerInternal pm, Class cls) 
-    {
-        return new QueryImpl(pm, cls);
-    }
-
-    /*
-     * @see org.apache.jdo.jdoql.QueryFactory#newQuery(org.apache.jdo.pm.PersistenceManagerInternal, javax.jdo.Extent)
-     */
-    public Query newQuery(PersistenceManagerInternal pm, Extent cln) 
-    {
-        return new QueryImpl(pm, cln);
-    }
-
-    /*
-     * @see org.apache.jdo.jdoql.QueryFactory#newQuery(org.apache.jdo.pm.PersistenceManagerInternal, java.lang.Class, java.util.Collection)
-     */
-    public Query newQuery(PersistenceManagerInternal pm, Class cls, Collection cln) 
-    {
-        return new QueryImpl(pm, cls, cln);
-    }
-
-    /*
-     * @see org.apache.jdo.jdoql.QueryFactory#newQuery(org.apache.jdo.pm.PersistenceManagerInternal, java.lang.Class, java.lang.String)
-     */
-    public Query newQuery(PersistenceManagerInternal pm, Class cls, String filter) 
-    {
-        return new QueryImpl(pm, cls, filter);
-    }
-
-    /*
-     * @see org.apache.jdo.jdoql.QueryFactory#newQuery(org.apache.jdo.pm.PersistenceManagerInternal, java.lang.Class, java.util.Collection, java.lang.String)
-     */
-    public Query newQuery(PersistenceManagerInternal pm, Class cls, Collection cln, String filter) 
-    {
-        return new QueryImpl(pm, cls, cln, filter);
-    }
-
-    /*
-     * @see org.apache.jdo.jdoql.QueryFactory#newQuery(org.apache.jdo.pm.PersistenceManagerInternal, javax.jdo.Extent, java.lang.String)
-     */
-    public Query newQuery(PersistenceManagerInternal pm, Extent cln, String filter) 
-    {
-        return new QueryImpl(pm, cln, filter);
-    }
-}
diff --git a/query20/src/java/org/apache/jdo/impl/jdoql/MemoryQuery.java b/query20/src/java/org/apache/jdo/impl/jdoql/MemoryQuery.java
deleted file mode 100644
index 1cc4ce3..0000000
--- a/query20/src/java/org/apache/jdo/impl/jdoql/MemoryQuery.java
+++ /dev/null
@@ -1,1484 +0,0 @@
-/*
- * 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.
- */
-
-package org.apache.jdo.impl.jdoql;
-
-import java.math.BigDecimal;
-import java.math.BigInteger;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Date;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Collections;
-
-import javax.jdo.JDOHelper;
-import javax.jdo.PersistenceManager;
-
-import org.apache.jdo.impl.jdoql.scope.ParameterTable;
-import org.apache.jdo.impl.jdoql.scope.UNDEFINED;
-import org.apache.jdo.impl.jdoql.scope.VariableTable;
-import org.apache.jdo.jdoql.JDOQueryException;
-import org.apache.jdo.jdoql.tree.AbstractNodeVisitor;
-import org.apache.jdo.jdoql.tree.AndExpression;
-import org.apache.jdo.jdoql.tree.CastExpression;
-import org.apache.jdo.jdoql.tree.ComplementExpression;
-import org.apache.jdo.jdoql.tree.ConditionalAndExpression;
-import org.apache.jdo.jdoql.tree.ConditionalOrExpression;
-import org.apache.jdo.jdoql.tree.ConstantExpression;
-import org.apache.jdo.jdoql.tree.ContainsCallExpression;
-import org.apache.jdo.jdoql.tree.DivideExpression;
-import org.apache.jdo.jdoql.tree.EndsWithCallExpression;
-import org.apache.jdo.jdoql.tree.EqualsExpression;
-import org.apache.jdo.jdoql.tree.Expression;
-import org.apache.jdo.jdoql.tree.FieldAccessExpression;
-import org.apache.jdo.jdoql.tree.GreaterThanEqualsExpression;
-import org.apache.jdo.jdoql.tree.GreaterThanExpression;
-import org.apache.jdo.jdoql.tree.IsEmptyCallExpression;
-import org.apache.jdo.jdoql.tree.LessThanEqualsExpression;
-import org.apache.jdo.jdoql.tree.LessThanExpression;
-import org.apache.jdo.jdoql.tree.MinusExpression;
-import org.apache.jdo.jdoql.tree.NotEqualsExpression;
-import org.apache.jdo.jdoql.tree.NotExpression;
-import org.apache.jdo.jdoql.tree.OrExpression;
-import org.apache.jdo.jdoql.tree.OrderingExpression;
-import org.apache.jdo.jdoql.tree.ParameterAccessExpression;
-import org.apache.jdo.jdoql.tree.PlusExpression;
-import org.apache.jdo.jdoql.tree.StartsWithCallExpression;
-import org.apache.jdo.jdoql.tree.StaticFieldAccessExpression;
-import org.apache.jdo.jdoql.tree.ThisExpression;
-import org.apache.jdo.jdoql.tree.TimesExpression;
-import org.apache.jdo.jdoql.tree.TreeWalker;
-import org.apache.jdo.jdoql.tree.UnaryMinusExpression;
-import org.apache.jdo.jdoql.tree.UnaryPlusExpression;
-import org.apache.jdo.jdoql.tree.VariableAccessExpression;
-import org.apache.jdo.pm.PersistenceManagerInternal;
-import org.apache.jdo.util.I18NHelper;
-
-/**
- * An instance of this class is used to evaluate a
- * query tree in memory. For this purpose this class keeps references
- * to a parameter/variable table and to the current object corresponding
- * with a <code>ThisExpression</code>.
- * It extends <code>AbstractNodeVisitor</code>.
- * To evaluate a query tree, you need to pass the query tree instance and
- * an instance of this class to method <code>walk</code> of a tree walker
- * instance.
- *
- * @author Michael Watzek
- */
-public class MemoryQuery extends AbstractNodeVisitor
-{
-    /** I18N support */
-    final static I18NHelper msg = I18NHelper.getInstance(MemoryQuery.class);
-    final static UNDEFINED  undefined = UNDEFINED.getInstance();
-
-    final TreeWalker            walker = new TreeWalker();
-    final List                  boundVariables = new ArrayList();
-    VariableAccessExpression    unboundVariableAccess = null;
-    BoundVariable               removedBoundVariable = null;
-
-    final PersistenceManagerInternal pm;
-    final ParameterTable        parameters;
-    final VariableTable         variables;
-    Object                      current;
-
-    /**
-     * Constructs an instance of this class for the specified paramter table
-     * and variable table. This query evaluator uses reflection for
-     * field accesses.
-     * @param parameters the parameter table
-     * @param variables the variable table
-     */
-    public MemoryQuery(ParameterTable parameters, VariableTable variables)
-    {   this( null, parameters, variables );
-    }
-
-    /**
-     * Constructs an instance of this class for the specified paramter table
-     * and variable table.
-     * @param pm the persistence manager
-     * @param parameters the parameter table
-     * @param variables the variable table
-     */
-    public MemoryQuery(PersistenceManagerInternal pm, ParameterTable parameters, VariableTable variables)
-    {   this.pm = pm;
-        this.parameters = parameters;
-        this.variables = variables;
-    }
-
-    /**
-     * Sets the instance returned by leaving an instance if
-     * <code>ThisExpression</code>.
-     * @param current the instance to set
-     */
-    public void setCurrent(Object current)
-    {   this.current = current;
-    }
-
-    //public methods of NodeVisitor
-
-    /**
-     * Returns the result evaluated for the argument <code>node</code>.
-     * The argument <code>results</code> contains the results evaluated
-     * by the children of the argument <code>node</code>. The result
-     * returned by this method is based on the results evaluated by the children
-     * of the argument <code>node</code>.
-     * @param node the node to be evaluated
-     * @param results the results evaluated by children of node
-     * @return the result evaluated for node
-     * @exception JDOQueryException if the results evaluated by the node's
-     * children are non boolean types
-     */
-    public Object leave(AndExpression node, Object[] results)
-    {   Class clazz = node.getJavaClass();
-        if( clazz==Boolean.class || clazz==boolean.class )
-            return logicalAnd( results[0], results[1] );
-        throw new JDOQueryException( msg.msg("EXC_IllegalResultTypeForExpression", "&", clazz.getName()) ); //NOI18N
-    }
-
-    /**
-     * Returns the result evaluated for the argument <code>node</code>.
-     * The argument <code>results</code> contains the result evaluated
-     * by the child of the argument <code>node</code>. The result
-     * returned by this method is the same as the result evaluated by the child
-     * of the argument <code>node</code>.
-     * @param node the node to be evaluated
-     * @param results the result evaluated by the node's child
-     * @return the result evaluated for node
-     * @exception JDOQueryException if the result evaluated by the node's
-     * child is not an instance of the type to cast to
-     */
-    public Object leave(CastExpression node, Object[] results)
-    {   Object value = results[1];
-        if( value==undefined )
-            return undefined;
-        Class clazz = node.getJavaClass();
-        if( value!=null &&
-            !clazz.isInstance(value) )
-        {   
-            if( clazz==Byte.class || clazz==byte.class ) {
-                if( value instanceof Character )
-                    return new Byte( (byte)((Character)value).charValue() );
-                else
-                    return new Byte( ((Number)value).byteValue() );
-            }
-            else if( clazz==Double.class || clazz==double.class ) {
-                if( value instanceof Character )
-                    return new Double( ((Character)value).charValue() );
-                else
-                    return new Double( ((Number)value).doubleValue() );
-            }
-            else if( clazz==Float.class || clazz==float.class ) {
-                if( value instanceof Character )
-                    return new Float( ((Character)value).charValue() );
-                else
-                    return new Float( ((Number)value).floatValue() );
-            }
-            else if( clazz==Integer.class || clazz==int.class ) {
-                if( value instanceof Character )
-                    return new Integer( ((Character)value).charValue() );
-                else
-                    return new Integer( ((Number)value).intValue() );
-            }
-            else if( clazz==Long.class || clazz==long.class ) {
-                if( value instanceof Character )
-                   return new Long( ((Character)value).charValue() );
-                else
-                    return new Long( ((Number)value).longValue() );
-            }
-            else if( clazz==Short.class || clazz==short.class ) {
-                if( value instanceof Character )
-                    return new Short( (short) ((Character)value).charValue() );
-                else
-                    return new Short( ((Number)value).shortValue() );
-            }
-            else if( clazz==BigInteger.class ) {
-                if( value instanceof Character )
-                   return BigInteger.valueOf( (long) ((Character)value).charValue() );
-                else
-                    return BigInteger.valueOf( ((Number)value).longValue() );
-            }
-            else if( clazz==BigDecimal.class ) {
-                if( value instanceof Character )
-                    return new BigDecimal( (double) ((Character)value).charValue() );
-                else
-                    return new BigDecimal( ((Number)value).doubleValue() );
-            }
-            else if( clazz==Character.class || clazz==char.class ) {
-                if (value instanceof Number )
-                    return new Character((char)((Number)value).intValue());
-                else
-                    return value;
-            }
-            // value is not null and is not an instance of the type
-            // specified in the cast expression => return undefined
-            return undefined;
-        }
-        return value;
-    }
-
-    /**
-     * Returns the result evaluated for the argument <code>node</code>.
-     * The argument <code>results</code> contains the result evaluated
-     * by the child of the argument <code>node</code>. The result
-     * returned by this method is based on the result evaluated by the child
-     * of the argument <code>node</code>.
-     * @param node the node to be evaluated
-     * @param results the result evaluated by the node's child
-     * @return the result evaluated for node
-     * @exception JDOQueryException if the result evaluated by the node's
-     * child is not a boolean or integral type.
-     */
-    public Object leave(ComplementExpression node, Object[] results)
-    {   if( results[0]==null ||
-            results[0]==undefined )
-            return undefined;
-        Class clazz = node.getJavaClass();
-        if( clazz==Integer.class || clazz==int.class )
-            return new Integer( ~((Number)results[0]).intValue() );
-        else if( clazz==Long.class || clazz==long.class )
-            return new Long( ~((Number)results[0]).longValue() );
-        else if( clazz==BigInteger.class )
-            return ((BigInteger)results[0]).not();
-        else if( clazz==Byte.class || clazz==byte.class )
-            return new Byte( (byte) ~((Number)results[0]).byteValue() );
-        else if( clazz==Character.class || clazz==char.class )
-            return new Character( (char) ~((Character)results[0]).charValue() );
-        else if( clazz==Short.class || clazz==short.class )
-            return new Short( (short) ~((Number)results[0]).shortValue() );
-        throw new JDOQueryException( msg.msg("EXC_IllegalResultTypeForExpression", "~", clazz.getName()) ); //NOI18N
-    }
-
-    /**
-     * Returns the result evaluated for the argument <code>node</code>.
-     * The argument <code>results</code> contains the results evaluated
-     * by the children of the argument <code>node</code>. The result
-     * returned by this method is based on the results evaluated by the children
-     * of the argument <code>node</code>.
-     * @param node the node to be evaluated
-     * @param results the results evaluated by children of node
-     * @return the result evaluated for node
-     * @exception JDOQueryException if the results evaluated by the node's
-     * children are non boolean types
-     */
-    public Object leave(ConditionalAndExpression node, Object[] results)
-    {   Class clazz = node.getJavaClass();
-        if( clazz==Boolean.class || clazz==boolean.class )
-            return logicalAnd( results[0], results[1] );
-        throw new JDOQueryException( msg.msg("EXC_IllegalResultTypeForExpression", "&&", clazz.getName()) ); //NOI18N
-    }
-
-    /**
-     * Returns the result evaluated for the argument <code>node</code>.
-     * The argument <code>results</code> contains the results evaluated
-     * by the children of the argument <code>node</code>. The result
-     * returned by this method is based on the results evaluated by the children
-     * of the argument <code>node</code>.
-     * @param node the node to be evaluated
-     * @param results the results evaluated by children of node
-     * @return the result evaluated for node
-     * @exception JDOQueryException if the results evaluated by the node's
-     * children are non boolean types
-     */
-    public Object leave(ConditionalOrExpression node, Object[] results)
-    {   Class clazz = node.getJavaClass();
-        if( clazz==Boolean.class || clazz==boolean.class )
-            return logicalOr( results[0], results[1] );
-        throw new JDOQueryException( msg.msg("EXC_IllegalResultTypeForExpression", "||", clazz.getName()) ); //NOI18N
-    }
-
-    /**
-     * Returns the result evaluated for the argument <code>node</code>.
-     * The argument <code>results</code> is <code>null</code> as the argument
-     * <code>node</code> does not have any children. The result
-     * returned by this method is the object wrapped by the argument <code>node</code>.
-     * @param node the node to be evaluated
-     * @param results <code>null</code>
-     * @return the object wrapped by node
-     */
-    public Object leave(ConstantExpression node, Object[] results)
-    {   return node.getValue();
-    }
-
-    /**
-     * Returns the result evaluated for the argument <code>node</code>.
-     * The argument <code>results</code> contains the results evaluated
-     * by the children of the argument <code>node</code>. The result
-     * returned by this method is based on the results evaluated by the children
-     * of the argument <code>node</code>.
-     * @param node the node to be evaluated
-     * @param results the results evaluated by children of node
-     * @return the result evaluated for node
-     */
-    public Object leave(ContainsCallExpression node, Object[] results)
-    {   if( results[0]==null ||
-            results[0]==undefined )
-        {   // bind an empty set to the variable, if collection evaluates
-            // to null or undefined, otherwise the variable access results
-            // in an exception that unbound variables are not supported.
-            if( this.unboundVariableAccess!=null )
-            {   this.boundVariables.add(  new BoundVariable(this.unboundVariableAccess.getName(), this.unboundVariableAccess.getJavaClass(), Collections.EMPTY_SET) );
-            }
-            this.unboundVariableAccess = null;
-            return undefined;
-        }
-        Collection collection = (Collection) results[0];
-        boolean result;
-        if( this.unboundVariableAccess!=null )
-        {   this.boundVariables.add(  new BoundVariable(this.unboundVariableAccess.getName(), this.unboundVariableAccess.getJavaClass(), collection) );
-            result = !collection.isEmpty();
-        }
-        else
-            result = ((Collection)results[0]).contains( results[1] );
-        this.unboundVariableAccess = null;
-        return result ? Boolean.TRUE : Boolean.FALSE;
-    }
-
-    /**
-     * Returns the result evaluated for the argument <code>node</code>.
-     * The argument <code>results</code> contains the results evaluated
-     * by the children of the argument <code>node</code>. The result
-     * returned by this method is based on the results evaluated by the children
-     * of the argument <code>node</code>.
-     * @param node the node to be evaluated
-     * @param results the results evaluated by children of node
-     * @return the result evaluated for node
-     * @exception JDOQueryException if the results evaluated by the node's
-     * children are non integral types
-     */
-    public Object leave(DivideExpression node, Object[] results)
-    {   if( results[0]==null || results[1]==null ||
-            results[0]==undefined || results[1]==undefined )
-            return undefined;
-        Class clazz = node.getJavaClass();
-        if( clazz==Integer.class || clazz==int.class )
-            return new Integer( ((Number)results[0]).intValue() / ((Number)results[1]).intValue() );
-        else if( clazz==Long.class || clazz==long.class )
-            return new Long( ((Number)results[0]).longValue() / ((Number)results[1]).longValue() );
-        else if( clazz==Double.class || clazz==double.class )
-            return new Double( ((Number)results[0]).doubleValue() / ((Number)results[1]).doubleValue() );
-        else if( clazz==Float.class || clazz==float.class )
-            return new Float( ((Number)results[0]).floatValue() / ((Number)results[1]).floatValue() );
-        else if( clazz==BigDecimal.class  )
-        {   BigDecimal left, right;
-            if( results[0] instanceof BigDecimal )
-                left = (BigDecimal) results[0];
-            else
-                left = new BigDecimal( results[0].toString() );
-            if( results[1] instanceof BigDecimal )
-                right = (BigDecimal) results[1];
-            else
-                right = new BigDecimal( results[1].toString() );
-            return left.divide( right, BigDecimal.ROUND_HALF_UP );
-        }
-        else if( clazz==BigInteger.class  )
-        {   BigInteger left, right;
-            if( results[0] instanceof BigInteger )
-                left = (BigInteger) results[0];
-            else
-                left = new BigInteger( results[0].toString() );
-            if( results[1] instanceof BigInteger )
-                right = (BigInteger) results[1];
-            else
-                right = new BigInteger( results[1].toString() );
-            return left.divide( right );
-        }
-        else if( clazz==Byte.class || clazz==byte.class )
-            return new Byte( (byte) (((Number)results[0]).byteValue() / ((Number)results[1]).byteValue()) );
-        else if( clazz==Character.class || clazz==char.class )
-            return new Character( (char) (((Character)results[0]).charValue() / ((Character)results[1]).charValue()) );
-        else if( clazz==Short.class || clazz==short.class )
-            return new Short( (short) (((Number)results[0]).shortValue() / ((Number)results[1]).shortValue()) );
-        throw new JDOQueryException( msg.msg("EXC_IllegalResultTypeForExpression", "/", clazz.getName()) ); //NOI18N
-    }
-
-    /**
-     * Returns the result evaluated for the argument <code>node</code>.
-     * The argument <code>results</code> contains the results evaluated
-     * by the children of the argument <code>node</code>. The result
-     * returned by this method is based on the results evaluated by the children
-     * of the argument <code>node</code>.
-     * @param node the node to be evaluated
-     * @param results the results evaluated by children of node
-     * @return the result evaluated for node
-     */
-    public Object leave(EndsWithCallExpression node, Object[] results)
-    {   if( results[0]==null ||
-            results[0]==undefined )
-            return undefined;
-        boolean result = ((String)results[0]).endsWith( (String)results[1] );
-        return result ? Boolean.TRUE : Boolean.FALSE;
-    }
-
-    /**
-     * Returns the result evaluated for the argument <code>node</code>.
-     * The argument <code>results</code> contains the results evaluated
-     * by the children of the argument <code>node</code>. The result
-     * returned by this method is based on the results evaluated by the children
-     * of the argument <code>node</code>.
-     * @param node the node to be evaluated
-     * @param results the results evaluated by children of node
-     * @return the result evaluated for node
-     */
-    public Object leave(EqualsExpression node, Object[] results)
-    {   if( results[0]==undefined || results[1]==undefined )
-            return undefined;
-        boolean result;
-        if( results[0]==null && results[1]==null )
-            result = true;
-        else if( results[0]==null || results[1]==null )
-            result = false;
-        else
-        {   Class clazz = node.getCommonOperandType();
-            if( clazz==Integer.class || clazz==int.class )
-                result = ((Number)results[0]).intValue() == ((Number)results[1]).intValue();
-            else if( clazz==Long.class || clazz==long.class )
-                result = ((Number)results[0]).longValue() == ((Number)results[1]).longValue();
-            else if( clazz==Double.class || clazz==double.class )
-                result = ((Number)results[0]).doubleValue() == ((Number)results[1]).doubleValue();
-            else if( clazz==Float.class || clazz==float.class )
-                result = ((Number)results[0]).floatValue() == ((Number)results[1]).floatValue();
-            else if( clazz==BigDecimal.class  )
-            {   BigDecimal left, right;
-                if( results[0] instanceof BigDecimal )
-                    left = (BigDecimal) results[0];
-                else
-                    left = new BigDecimal( results[0].toString() );
-                if( results[1] instanceof BigDecimal )
-                    right = (BigDecimal) results[1];
-                else
-                    right = new BigDecimal( results[1].toString() );
-                result = left.compareTo( right ) == 0;
-            }
-            else if( clazz==BigInteger.class  )
-            {   BigInteger left, right;
-                if( results[0] instanceof BigInteger )
-                    left = (BigInteger) results[0];
-                else
-                    left = new BigInteger( results[0].toString() );
-                if( results[1] instanceof BigInteger )
-                    right = (BigInteger) results[1];
-                else
-                    right = new BigInteger( results[1].toString() );
-                result = left.compareTo( right ) == 0;
-            }
-            else if( Date.class.isAssignableFrom(clazz) )
-                result = ((Date)results[0]).getTime() == ((Date)results[1]).getTime();
-            else if( clazz==Byte.class || clazz==byte.class )
-                result = ((Number)results[0]).byteValue() == ((Number)results[1]).byteValue();
-            else if( clazz==Character.class || clazz==char.class )
-                result = ((Character)results[0]).charValue() == ((Character)results[1]).charValue();
-            else if( clazz==Short.class || clazz==short.class )
-                result = ((Number)results[0]).shortValue() == ((Number)results[1]).shortValue();
-            else 
-            {   PersistenceManager leftPM = JDOHelper.getPersistenceManager(results[0]);
-                PersistenceManager rightPM = JDOHelper.getPersistenceManager(results[1]);
-                if( leftPM!=null && rightPM!=null )
-                    // use == for persistence instances
-                    result = results[0] == results[1];
-                else if( leftPM==null && rightPM==null )
-                    // use equals for non persistent instances
-                    result = results[0].equals( results[1] );
-                else 
-                    // comparing persistent with non persistent instance
-                    result = false;
-            }
-        }
-        return result ? Boolean.TRUE : Boolean.FALSE;
-    }
-
-    /**
-     * Returns the result evaluated for the argument <code>node</code>.
-     * The argument <code>results</code> contains the results evaluated
-     * by the children of the argument <code>node</code>. The result
-     * returned by this method is based on the results evaluated by the children
-     * of the argument <code>node</code>.
-     * @param node the node to be evaluated
-     * @param results the results evaluated by children of node
-     * @return the result evaluated for node
-     * @exception JDOQueryException if the results evaluated by the node's
-     * children is undefined
-     */
-    public Object leave(FieldAccessExpression node, Object[] results)
-    {   if( results[0]==null ||
-            results[0]==undefined )
-            return undefined;
-        return node.getFieldValue( pm, results[0] );
-    }
-
-    /**
-     * Returns the result evaluated for the argument <code>node</code>.
-     * The argument <code>results</code> contains the results evaluated
-     * by the children of the argument <code>node</code>. The result
-     * returned by this method is based on the results evaluated by the children
-     * of the argument <code>node</code>.
-     * @param node the node to be evaluated
-     * @param results the results evaluated by children of node
-     * @return the result evaluated for node
-     * @exception JDOQueryException if the results evaluated by the node's
-     * children are non integral types
-     */
-    public Object leave(GreaterThanEqualsExpression node, Object[] results)
-    {   if( results[0]==null || results[1]==null ||
-            results[0]==undefined || results[1]==undefined )
-            return undefined;
-        boolean result;
-        Class clazz = node.getCommonOperandType();
-        if( clazz==Integer.class || clazz==int.class )
-            result = ((Number)results[0]).intValue() >= ((Number)results[1]).intValue();
-        else if( clazz==Long.class || clazz==long.class )
-            result = ((Number)results[0]).longValue() >= ((Number)results[1]).longValue();
-        else if( clazz==Double.class || clazz==double.class )
-            result = ((Number)results[0]).doubleValue() >= ((Number)results[1]).doubleValue();
-        else if( clazz==Float.class || clazz==float.class )
-            result = ((Number)results[0]).floatValue() >= ((Number)results[1]).floatValue();
-        else if( clazz==BigDecimal.class  )
-        {   BigDecimal left, right;
-            if( results[0] instanceof BigDecimal )
-                left = (BigDecimal) results[0];
-            else
-                left = new BigDecimal( results[0].toString() );
-            if( results[1] instanceof BigDecimal )
-                right = (BigDecimal) results[1];
-            else
-                right = new BigDecimal( results[1].toString() );
-            result = left.compareTo(right) >= 0;
-        }
-        else if( clazz==BigInteger.class  )
-        {   BigInteger left, right;
-            if( results[0] instanceof BigInteger )
-                left = (BigInteger) results[0];
-            else
-                left = new BigInteger( results[0].toString() );
-            if( results[1] instanceof BigInteger )
-                right = (BigInteger) results[1];
-            else
-                right = new BigInteger( results[1].toString() );
-            result = left.compareTo(right) >= 0;
-        }
-        // Comparable covers Date and String
-        else if( Comparable.class.isAssignableFrom(clazz) )
-            result = ((Comparable)results[0]).compareTo((Comparable)results[1]) >= 0;
-        else if( clazz==Byte.class || clazz==byte.class )
-            result = ((Number)results[0]).byteValue() >= ((Number)results[1]).byteValue();
-        else if( clazz==Character.class || clazz==char.class )
-            result = ((Character)results[0]).charValue() >= ((Character)results[1]).charValue();
-        else if( clazz==Short.class || clazz==short.class )
-            result = ((Number)results[0]).shortValue() >= ((Number)results[1]).shortValue();
-        else
-            throw new JDOQueryException( msg.msg("EXC_IllegalResultTypeForExpression", ">=", clazz.getName()) ); //NOI18N
-        return result ? Boolean.TRUE : Boolean.FALSE;
-    }
-
-    /**
-     * Returns the result evaluated for the argument <code>node</code>.
-     * The argument <code>results</code> contains the results evaluated
-     * by the children of the argument <code>node</code>. The result
-     * returned by this method is based on the results evaluated by the children
-     * of the argument <code>node</code>.
-     * @param node the node to be evaluated
-     * @param results the results evaluated by children of node
-     * @return the result evaluated for node
-     * @exception JDOQueryException if the results evaluated by the node's
-     * children are non integral types
-     */
-    public Object leave(GreaterThanExpression node, Object[] results)
-    {   if( results[0]==null || results[1]==null ||
-            results[0]==undefined || results[1]==undefined )
-            return undefined;
-        boolean result;
-        Class clazz = node.getCommonOperandType();
-        if( clazz==Integer.class || clazz==int.class )
-            result = ((Number)results[0]).intValue() > ((Number)results[1]).intValue();
-        else if( clazz==Long.class || clazz==long.class )
-            result = ((Number)results[0]).longValue() > ((Number)results[1]).longValue();
-        else if( clazz==Double.class || clazz==double.class )
-            result = ((Number)results[0]).doubleValue() > ((Number)results[1]).doubleValue();
-        else if( clazz==Float.class || clazz==float.class )
-            result = ((Number)results[0]).floatValue() > ((Number)results[1]).floatValue();
-        else if( clazz==BigDecimal.class  )
-        {   BigDecimal left, right;
-            if( results[0] instanceof BigDecimal )
-                left = (BigDecimal) results[0];
-            else
-                left = new BigDecimal( results[0].toString() );
-            if( results[1] instanceof BigDecimal )
-                right = (BigDecimal) results[1];
-            else
-                right = new BigDecimal( results[1].toString() );
-            result = left.compareTo(right) > 0;
-        }
-        else if( clazz==BigInteger.class  )
-        {   BigInteger left, right;
-            if( results[0] instanceof BigInteger )
-                left = (BigInteger) results[0];
-            else
-                left = new BigInteger( results[0].toString() );
-            if( results[1] instanceof BigInteger )
-                right = (BigInteger) results[1];
-            else
-                right = new BigInteger( results[1].toString() );
-            result = left.compareTo(right) > 0;
-        }
-        // Comparable covers Date and String
-        else if( Comparable.class.isAssignableFrom(clazz) )
-            result = ((Comparable)results[0]).compareTo((Comparable)results[1]) > 0;
-        else if( clazz==Byte.class || clazz==byte.class )
-            result = ((Number)results[0]).byteValue() > ((Number)results[1]).byteValue();
-        else if( clazz==Character.class || clazz==char.class )
-            result = ((Character)results[0]).charValue() > ((Character)results[1]).charValue();
-        else if( clazz==Short.class || clazz==short.class )
-            result = ((Number)results[0]).shortValue() > ((Number)results[1]).shortValue();
-        else
-            throw new JDOQueryException( msg.msg("EXC_IllegalResultTypeForExpression", ">", clazz.getName()) ); //NOI18N
-        return result ? Boolean.TRUE : Boolean.FALSE;
-    }
-
-    /**
-     * Returns the result evaluated for the argument <code>node</code>.
-     * The argument <code>results</code> contains the results evaluated
-     * by the children of the argument <code>node</code>. The result
-     * returned by this method is based on the results evaluated by the children
-     * of the argument <code>node</code>.
-     * @param node the node to be evaluated
-     * @param results the results evaluated by children of node
-     * @return the result evaluated for node
-     */
-    public Object leave(IsEmptyCallExpression node, Object[] results)
-    {   if( results[0]==null )
-            return Boolean.TRUE;
-        else if( results[0]==undefined )
-            return undefined;
-        boolean result = ((Collection)results[0]).isEmpty();
-        return result ? Boolean.TRUE : Boolean.FALSE;
-    }
-
-    /**
-     * Returns the result evaluated for the argument <code>node</code>.
-     * The argument <code>results</code> contains the results evaluated
-     * by the children of the argument <code>node</code>. The result
-     * returned by this method is based on the results evaluated by the children
-     * of the argument <code>node</code>.
-     * @param node the node to be evaluated
-     * @param results the results evaluated by children of node
-     * @return the result evaluated for node
-     * @exception JDOQueryException if the results evaluated by the node's
-     * children are non integral types
-     */
-    public Object leave(LessThanEqualsExpression node, Object[] results)
-    {   if( results[0]==null || results[1]==null ||
-            results[0]==undefined || results[1]==undefined )
-            return undefined;
-        boolean result;
-        Class clazz = node.getCommonOperandType();
-        if( clazz==Integer.class || clazz==int.class )
-            result = ((Number)results[0]).intValue() <= ((Number)results[1]).intValue();
-        else if( clazz==Long.class || clazz==long.class )
-            result = ((Number)results[0]).longValue() <= ((Number)results[1]).longValue();
-        else if( clazz==Double.class || clazz==double.class )
-            result = ((Number)results[0]).doubleValue() <= ((Number)results[1]).doubleValue();
-        else if( clazz==Float.class || clazz==float.class )
-            result = ((Number)results[0]).floatValue() <= ((Number)results[1]).floatValue();
-        else if( clazz==BigDecimal.class  )
-        {   BigDecimal left, right;
-            if( results[0] instanceof BigDecimal )
-                left = (BigDecimal) results[0];
-            else
-                left = new BigDecimal( results[0].toString() );
-            if( results[1] instanceof BigDecimal )
-                right = (BigDecimal) results[1];
-            else
-                right = new BigDecimal( results[1].toString() );
-            result = left.compareTo(right) <= 0;
-        }
-        else if( clazz==BigInteger.class  )
-        {   BigInteger left, right;
-            if( results[0] instanceof BigInteger )
-                left = (BigInteger) results[0];
-            else
-                left = new BigInteger( results[0].toString() );
-            if( results[1] instanceof BigInteger )
-                right = (BigInteger) results[1];
-            else
-                right = new BigInteger( results[1].toString() );
-            result = left.compareTo(right) <= 0;
-        }
-        // Comparable covers Date and String
-        else if( Comparable.class.isAssignableFrom(clazz) )
-            result = ((Comparable)results[0]).compareTo((Comparable)results[1]) <= 0;
-        else if( clazz==Byte.class || clazz==byte.class )
-            result = ((Number)results[0]).byteValue() <= ((Number)results[1]).byteValue();
-        else if( clazz==Character.class || clazz==char.class )
-            result = ((Character)results[0]).charValue() <= ((Character)results[1]).charValue();
-        else if( clazz==Short.class || clazz==short.class )
-            result = ((Number)results[0]).shortValue() <= ((Number)results[1]).shortValue();
-        else
-            throw new JDOQueryException( msg.msg("EXC_IllegalResultTypeForExpression", "<=", clazz.getName()) ); //NOI18N
-        return result ? Boolean.TRUE : Boolean.FALSE;
-    }
-
-    /**
-     * Returns the result evaluated for the argument <code>node</code>.
-     * The argument <code>results</code> contains the results evaluated
-     * by the children of the argument <code>node</code>. The result
-     * returned by this method is based on the results evaluated by the children
-     * of the argument <code>node</code>.
-     * @param node the node to be evaluated
-     * @param results the results evaluated by children of node
-     * @return the result evaluated for node
-     * @exception JDOQueryException if the results evaluated by the node's
-     * children are non integral types
-     */
-    public Object leave(LessThanExpression node, Object[] results)
-    {   if( results[0]==null || results[1]==null ||
-            results[0]==undefined || results[1]==undefined )
-            return undefined;
-        boolean result;
-        Class clazz = node.getCommonOperandType();
-        if( clazz==Integer.class || clazz==int.class )
-            result = ((Number)results[0]).intValue() < ((Number)results[1]).intValue();
-        else if( clazz==Long.class || clazz==long.class )
-            result = ((Number)results[0]).longValue() < ((Number)results[1]).longValue();
-        else if( clazz==Double.class || clazz==double.class )
-            result = ((Number)results[0]).doubleValue() < ((Number)results[1]).doubleValue();
-        else if( clazz==Float.class || clazz==float.class )
-            result = ((Number)results[0]).floatValue() < ((Number)results[1]).floatValue();
-        else if( clazz==BigDecimal.class  )
-        {   BigDecimal left, right;
-            if( results[0] instanceof BigDecimal )
-                left = (BigDecimal) results[0];
-            else
-                left = new BigDecimal( results[0].toString() );
-            if( results[1] instanceof BigDecimal )
-                right = (BigDecimal) results[1];
-            else
-                right = new BigDecimal( results[1].toString() );
-            result = left.compareTo(right) < 0;
-        }
-        else if( clazz==BigInteger.class  )
-        {   BigInteger left, right;
-            if( results[0] instanceof BigInteger )
-                left = (BigInteger) results[0];
-            else
-                left = new BigInteger( results[0].toString() );
-            if( results[1] instanceof BigInteger )
-                right = (BigInteger) results[1];
-            else
-                right = new BigInteger( results[1].toString() );
-            result = left.compareTo(right) < 0;
-        }
-        // Comparable covers Date and String
-        else if( Comparable.class.isAssignableFrom(clazz) )
-            result = ((Comparable)results[0]).compareTo((Comparable)results[1]) < 0;
-        else if( clazz==Byte.class || clazz==byte.class )
-            result = ((Number)results[0]).byteValue() < ((Number)results[1]).byteValue();
-        else if( clazz==Character.class || clazz==char.class )
-            result = ((Character)results[0]).charValue() < ((Character)results[1]).charValue();
-        else if( clazz==Short.class || clazz==short.class )
-            result = ((Number)results[0]).shortValue() < ((Number)results[1]).shortValue();
-        else
-            throw new JDOQueryException( msg.msg("EXC_IllegalResultTypeForExpression", "<", clazz.getName()) ); //NOI18N
-        return result ? Boolean.TRUE : Boolean.FALSE;
-    }
-
-    /**
-     * Returns the result evaluated for the argument <code>node</code>.
-     * The argument <code>results</code> contains the results evaluated
-     * by the children of the argument <code>node</code>. The result
-     * returned by this method is based on the results evaluated by the children
-     * of the argument <code>node</code>.
-     * @param node the node to be evaluated
-     * @param results the results evaluated by children of node
-     * @return the result evaluated for node
-     * @exception JDOQueryException if the results evaluated by the node's
-     * children are non integral types
-     */
-    public Object leave(MinusExpression node, Object[] results)
-    {   if( results[0]==null || results[1]==null ||
-            results[0]==undefined || results[1]==undefined )
-            return undefined;
-        Class clazz = node.getJavaClass();
-        if( clazz==Integer.class || clazz==int.class )
-            return new Integer( ((Number)results[0]).intValue() - ((Number)results[1]).intValue() );
-        else if( clazz==Long.class || clazz==long.class )
-            return new Long( ((Number)results[0]).longValue() - ((Number)results[1]).longValue() );
-        else if( clazz==Double.class || clazz==double.class )
-            return new Double( ((Number)results[0]).doubleValue() - ((Number)results[1]).doubleValue() );
-        else if( clazz==Float.class || clazz==float.class )
-            return new Float( ((Number)results[0]).floatValue() - ((Number)results[1]).floatValue() );
-        else if( clazz==BigDecimal.class  )
-        {   BigDecimal left, right;
-            if( results[0] instanceof BigDecimal )
-                left = (BigDecimal) results[0];
-            else
-                left = new BigDecimal( results[0].toString() );
-            if( results[1] instanceof BigDecimal )
-                right = (BigDecimal) results[1];
-            else
-                right = new BigDecimal( results[1].toString() );
-            return left.subtract( right );
-        }
-        else if( clazz==BigInteger.class  )
-        {   BigInteger left, right;
-            if( results[0] instanceof BigInteger )
-                left = (BigInteger) results[0];
-            else
-                left = new BigInteger( results[0].toString() );
-            if( results[1] instanceof BigInteger )
-                right = (BigInteger) results[1];
-            else
-                right = new BigInteger( results[1].toString() );
-            return left.subtract( right );
-        }
-        else if( clazz==Byte.class || clazz==byte.class )
-            return new Byte( (byte) (((Number)results[0]).byteValue() - ((Number)results[1]).byteValue()) );
-        else if( clazz==Character.class || clazz==char.class )
-            return new Character( (char) (((Character)results[0]).charValue() - ((Character)results[1]).charValue()) );
-        else if( clazz==Short.class || clazz==short.class )
-            return new Short( (short) (((Number)results[0]).shortValue() - ((Number)results[1]).shortValue()) );
-        throw new JDOQueryException( msg.msg("EXC_IllegalResultTypeForExpression", "-", clazz.getName()) ); //NOI18N
-    }
-
-    /**
-     * Returns the result evaluated for the argument <code>node</code>.
-     * The argument <code>results</code> contains the results evaluated
-     * by the children of the argument <code>node</code>. The result
-     * returned by this method is based on the results evaluated by the children
-     * of the argument <code>node</code>.
-     * @param node the node to be evaluated
-     * @param results the results evaluated by children of node
-     * @return the result evaluated for node
-     * @exception JDOQueryException if the results evaluated by the node's
-     * children are non integral types
-     */
-    public Object leave(NotEqualsExpression node, Object[] results)
-    {   if( results[0]==undefined || results[1]==undefined )
-            return undefined;
-        boolean result;
-        if( results[0]==null && results[1]==null )
-            result = false;
-        else if( results[0]==null || results[1]==null )
-            result = true;
-        else
-        {   Class clazz = node.getCommonOperandType();
-            if( clazz==Integer.class || clazz==int.class )
-                result = ((Number)results[0]).intValue() != ((Number)results[1]).intValue();
-            else if( clazz==Long.class || clazz==long.class )
-                result = ((Number)results[0]).longValue() != ((Number)results[1]).longValue();
-            else if( clazz==Double.class || clazz==double.class )
-                result = ((Number)results[0]).doubleValue() != ((Number)results[1]).doubleValue();
-            else if( clazz==Float.class || clazz==float.class )
-                result = ((Number)results[0]).floatValue() != ((Number)results[1]).floatValue();
-            else if( clazz==BigDecimal.class  )
-            {   BigDecimal left, right;
-                if( results[0] instanceof BigDecimal )
-                    left = (BigDecimal) results[0];
-                else
-                    left = new BigDecimal( results[0].toString() );
-                if( results[1] instanceof BigDecimal )
-                    right = (BigDecimal) results[1];
-                else
-                    right = new BigDecimal( results[1].toString() );
-                result = left.compareTo( right ) != 0;
-            }
-            else if( clazz==BigInteger.class  )
-            {   BigInteger left, right;
-                if( results[0] instanceof BigInteger )
-                    left = (BigInteger) results[0];
-                else
-                    left = new BigInteger( results[0].toString() );
-                if( results[1] instanceof BigInteger )
-                    right = (BigInteger) results[1];
-                else
-                    right = new BigInteger( results[1].toString() );
-                result = left.compareTo( right ) != 0;
-            }
-            else if( Date.class.isAssignableFrom(clazz) )
-                result = ((Date)results[0]).getTime() != ((Date)results[1]).getTime();
-            else if( clazz==Byte.class || clazz==byte.class )
-                result = ((Number)results[0]).byteValue() != ((Number)results[1]).byteValue();
-            else if( clazz==Character.class || clazz==char.class )
-                result = ((Character)results[0]).charValue() != ((Character)results[1]).charValue();
-            else if( clazz==Short.class || clazz==short.class )
-                result = ((Number)results[0]).shortValue() != ((Number)results[1]).shortValue();
-            else 
-            {   PersistenceManager leftPM = JDOHelper.getPersistenceManager( results[0] );
-                PersistenceManager rightPM = JDOHelper.getPersistenceManager( results[1] );
-                if( leftPM!=null && rightPM!=null )
-                    // use == for persistence instances
-                    result = results[0] != results[1];
-                else if( leftPM==null && rightPM==null )
-                    // use equals for non persistent instances
-                    result = !results[0].equals( results[1] );
-                else
-                    // comparing persistent with non persistent instance
-                    result = true;
-            }
-        }
-        return result ? Boolean.TRUE : Boolean.FALSE;
-    }
-
-    /**
-     * Returns the result evaluated for the argument <code>node</code>.
-     * The argument <code>results</code> contains the result evaluated
-     * by the child of the argument <code>node</code>. The result
-     * returned by this method is based on the result evaluated by the child
-     * of the argument <code>node</code>.
-     * @param node the node to be evaluated
-     * @param results the result evaluated by child of node
-     * @return the result evaluated for node
-     */
-    public Object leave(NotExpression node, Object[] results)
-    {   if( results[0]==null ||
-            results[0]==undefined )
-            return undefined;
-        boolean result = !((Boolean)results[0]).booleanValue();
-        return result ? Boolean.TRUE : Boolean.FALSE;
-    }
-
-    /**
-     * Returns the result evaluated for the argument <code>node</code>.
-     * The argument <code>results</code> contains the result evaluated
-     * by the child of the argument <code>node</code>. The result
-     * returned by this method is based on the result evaluated by the child
-     * of the argument <code>node</code>.
-     * @param node the node to be evaluated
-     * @param results the result evaluated by child of node
-     * @return the result evaluated for node
-     */
-    public Object leave(OrderingExpression node, Object[] results)
-    {   if( results[0]==null ||
-            results[0]==undefined )
-            return undefined;
-        return results[0];
-    }
-
-    /**
-     * Returns the result evaluated for the argument <code>node</code>.
-     * The argument <code>results</code> contains the results evaluated
-     * by the children of the argument <code>node</code>. The result
-     * returned by this method is based on the results evaluated by the children
-     * of the argument <code>node</code>.
-     * @param node the node to be evaluated
-     * @param results the results evaluated by children of node
-     * @return the result evaluated for node
-     * @exception JDOQueryException if the results evaluated by the node's
-     * children are non boolean types
-     */
-    public Object leave(OrExpression node, Object[] results)
-    {   Class clazz = node.getJavaClass();
-        if( clazz==Boolean.class || clazz==boolean.class )
-            return logicalOr( results[0], results[1] );
-        throw new JDOQueryException( msg.msg("EXC_IllegalResultTypeForExpression", "|", clazz.getName()) ); //NOI18N
-    }
-
-    /**
-     * Returns the result evaluated for the argument <code>node</code>.
-     * The argument <code>results</code> is <code>null</code> as the argument
-     * <code>node</code> does not have any children. The result
-     * returned by this method is the instance obtained by the parameter table
-     * for for the argument <code>node</code>.
-     * @param node the node to be evaluated
-     * @param results <code>null</code>
-     * @return the instance obtained by the parameter table for node
-     */
-    public Object leave(ParameterAccessExpression node, Object[] results)
-    {   return this.parameters.getValue( node.getName() );
-    }
-
-    /**
-     * Returns the result evaluated for the argument <code>node</code>.
-     * The argument <code>results</code> contains the results evaluated
-     * by the children of the argument <code>node</code>. The result
-     * returned by this method is based on the results evaluated by the children
-     * of the argument <code>node</code>.
-     * @param node the node to be evaluated
-     * @param results the results evaluated by children of node
-     * @return the result evaluated for node
-     * @exception JDOQueryException if the results evaluated by the node's
-     * children are non integral types
-     */
-    public Object leave(PlusExpression node, Object[] results)
-    {   if( results[0]==null || results[1]==null ||
-            results[0]==undefined || results[1]==undefined )
-            return undefined;
-        Class clazz = node.getJavaClass();
-        if( clazz==Integer.class || clazz==int.class )
-            return new Integer( ((Number)results[0]).intValue() + ((Number)results[1]).intValue() );
-        else if( clazz==Long.class || clazz==long.class )
-            return new Long( ((Number)results[0]).longValue() + ((Number)results[1]).longValue() );
-        else if( clazz==Double.class || clazz==double.class )
-            return new Double( ((Number)results[0]).doubleValue() + ((Number)results[1]).doubleValue() );
-        else if( clazz==Float.class || clazz==float.class )
-            return new Float( ((Number)results[0]).floatValue() + ((Number)results[1]).floatValue() );
-        else if( clazz==BigDecimal.class  )
-        {   BigDecimal left, right;
-            if( results[0] instanceof BigDecimal )
-                left = (BigDecimal) results[0];
-            else
-                left = new BigDecimal( results[0].toString() );
-            if( results[1] instanceof BigDecimal )
-                right = (BigDecimal) results[1];
-            else
-                right = new BigDecimal( results[1].toString() );
-            return left.add( right );
-        }
-        else if( clazz==BigInteger.class  )
-        {   BigInteger left, right;
-            if( results[0] instanceof BigInteger )
-                left = (BigInteger) results[0];
-            else
-                left = new BigInteger( results[0].toString() );
-            if( results[1] instanceof BigInteger )
-                right = (BigInteger) results[1];
-            else
-                right = new BigInteger( results[1].toString() );
-            return left.add( right );
-        }
-        else if( clazz==String.class )
-            return (String)results[0] + (String)results[1];
-        else if( clazz==Byte.class || clazz==byte.class )
-            return new Byte( (byte) (((Number)results[0]).byteValue() + ((Number)results[1]).byteValue()) );
-        else if( clazz==Character.class || clazz==char.class )
-            return new Character( (char) (((Character)results[0]).charValue() + ((Character)results[1]).charValue()) );
-        else if( clazz==Short.class || clazz==short.class )
-            return new Short( (short) (((Number)results[0]).shortValue() + ((Number)results[1]).shortValue()) );
-        throw new JDOQueryException( msg.msg("EXC_IllegalResultTypeForExpression", "+", clazz.getName()) ); //NOI18N
-    }
-
-    /**
-     * Returns the result evaluated for the argument <code>node</code>.
-     * The argument <code>results</code> contains the results evaluated
-     * by the children of the argument <code>node</code>. The result
-     * returned by this method is based on the results evaluated by the children
-     * of the argument <code>node</code>.
-     * @param node the node to be evaluated
-     * @param results the results evaluated by children of node
-     * @return the result evaluated for node
-     */
-    public Object leave(StartsWithCallExpression node, Object[] results)
-    {   if( results[0]==null ||
-            results[0]==undefined )
-            return undefined;
-        boolean result = ((String)results[0]).startsWith( (String)results[1] );
-        return result ? Boolean.TRUE : Boolean.FALSE;
-    }
-
-    /**
-     * Returns the result evaluated for the argument <code>node</code>.
-     * The argument <code>results</code> contains the results evaluated
-     * by the children of the argument <code>node</code>. The result
-     * returned by this method is based on the results evaluated by the children
-     * of the argument <code>node</code>.
-     * @param node the node to be evaluated
-     * @param results the results evaluated by children of node
-     * @return the result evaluated for node
-     */
-    public Object leave(StaticFieldAccessExpression node, Object[] results)
-    {   return node.getFieldValue( pm );
-    }
-
-    /**
-     * Returns the result evaluated for the argument <code>node</code>.
-     * The argument <code>results</code> is <code>null</code> as the argument
-     * <code>node</code> does not have any children. The result
-     * returned by this method is the current instance stored in this node visitor
-     * by method <code>setCurrent</code>.
-     * @param node the node to be evaluated
-     * @param results <code>null</code>
-     * @return the current instance stored in this node visitor
-     * by method <code>setCurrent</code>
-     */
-    public Object leave(ThisExpression node, Object[] results)
-    {   return this.current;
-    }
-
-    /**
-     * Returns the result evaluated for the argument <code>node</code>.
-     * The argument <code>results</code> contains the results evaluated
-     * by the children of the argument <code>node</code>. The result
-     * returned by this method is based on the results evaluated by the children
-     * of the argument <code>node</code>.
-     * @param node the node to be evaluated
-     * @param results the results evaluated by children of node
-     * @return the result evaluated for node
-     * @exception JDOQueryException if the results evaluated by the node's
-     * children are non integral types
-     */
-    public Object leave(TimesExpression node, Object[] results)
-    {   if( results[0]==null || results[1]==null ||
-            results[0]==undefined || results[1]==undefined )
-            return undefined;
-        Class clazz = node.getJavaClass();
-        if( clazz==Integer.class || clazz==int.class )
-            return new Integer( ((Number)results[0]).intValue() * ((Number)results[1]).intValue() );
-        else if( clazz==Long.class || clazz==long.class )
-            return new Long( ((Number)results[0]).longValue() * ((Number)results[1]).longValue() );
-        else if( clazz==Double.class || clazz==double.class )
-            return new Double( ((Number)results[0]).doubleValue() * ((Number)results[1]).doubleValue() );
-        else if( clazz==Float.class || clazz==float.class )
-            return new Float( ((Number)results[0]).floatValue() * ((Number)results[1]).floatValue() );
-        else if( clazz==BigDecimal.class  )
-        {   BigDecimal left, right;
-            if( results[0] instanceof BigDecimal )
-                left = (BigDecimal) results[0];
-            else
-                left = new BigDecimal( results[0].toString() );
-            if( results[1] instanceof BigDecimal )
-                right = (BigDecimal) results[1];
-            else
-                right = new BigDecimal( results[1].toString() );
-            return left.multiply( right );
-        }
-        else if( clazz==BigInteger.class  )
-        {   BigInteger left, right;
-            if( results[0] instanceof BigInteger )
-                left = (BigInteger) results[0];
-            else
-                left = new BigInteger( results[0].toString() );
-            if( results[1] instanceof BigInteger )
-                right = (BigInteger) results[1];
-            else
-                right = new BigInteger( results[1].toString() );
-            return left.multiply( right );
-        }
-        else if( clazz==Byte.class || clazz==byte.class )
-            return new Byte( (byte) (((Number)results[0]).byteValue() * ((Number)results[1]).byteValue()) );
-        else if( clazz==Character.class || clazz==char.class )
-            return new Character( (char) (((Character)results[0]).charValue() * ((Character)results[1]).charValue()) );
-        else if( clazz==Short.class || clazz==short.class )
-            return new Short( (short) (((Number)results[0]).shortValue() * ((Number)results[1]).shortValue()) );
-        throw new JDOQueryException( msg.msg("EXC_IllegalResultTypeForExpression", "*", clazz.getName()) ); //NOI18N
-    }
-
-    /**
-     * Returns the result evaluated for the argument <code>node</code>.
-     * The argument <code>results</code> contains the result evaluated
-     * by the child of the argument <code>node</code>. The result
-     * returned by this method is based on the result evaluated by the child
-     * of the argument <code>node</code>.
-     * @param node the node to be evaluated
-     * @param results the result evaluated by the node's child
-     * @return the result evaluated for node
-     * @exception JDOQueryException if the result evaluated by the node's
-     * child is not an integral type.
-     */
-    public Object leave(UnaryMinusExpression node, Object[] results)
-    {   if( results[0]==null ||
-            results[0]==undefined )
-            return undefined;
-        Class clazz = node.getJavaClass();
-        if( clazz==Integer.class || clazz==int.class )
-            return new Integer( -((Number)results[0]).intValue() );
-        else if( clazz==Long.class || clazz==long.class )
-            return new Long( -((Number)results[0]).longValue() );
-        else if( clazz==Double.class || clazz==double.class )
-            return new Double( -((Number)results[0]).doubleValue() );
-        else if( clazz==Float.class || clazz==float.class )
-            return new Float( -((Number)results[0]).floatValue() );
-        else if( clazz==BigInteger.class )
-            return ((BigInteger)results[0]).negate();
-        else if( clazz==BigDecimal.class )
-            return ((BigDecimal)results[0]).negate();
-        else if( clazz==Byte.class || clazz==byte.class )
-            return new Byte( (byte) -((Number)results[0]).byteValue() );
-        else if( clazz==Character.class || clazz==char.class )
-            return new Character( (char) -((Character)results[0]).charValue() );
-        else if( clazz==Short.class || clazz==short.class )
-            return new Short( (short) -((Number)results[0]).shortValue() );
-        throw new JDOQueryException( msg.msg("EXC_IllegalResultTypeForExpression", "-", clazz.getName()) ); //NOI18N
-    }
-
-    /**
-     * Returns the result evaluated for the argument <code>node</code>.
-     * The argument <code>results</code> contains the result evaluated
-     * by the child of the argument <code>node</code>. The result
-     * returned by this method is the same as the result evaluated by the child
-     * of the argument <code>node</code>.
-     * @param node the node to be evaluated
-     * @param results the result evaluated by the node's child
-     * @return the result evaluated for node
-     */
-    public Object leave(UnaryPlusExpression node, Object[] results)
-    {   return results[0];
-    }
-
-    /**
-     * Returns the result evaluated for the argument <code>node</code>.
-     * The argument <code>results</code> is <code>null</code> as the argument
-     * <code>node</code> does not have any children. The result
-     * returned by this method is the instance obtained by the variable table
-     * for for the argument <code>node</code>.
-     * @param node the node to be evaluated
-     * @param results <code>null</code>
-     * @return the instance obtained by the variable table for node
-     */
-    public Object leave(VariableAccessExpression node, Object[] results)
-    {   Object result = this.variables.getValue( node.getName() );
-        if( result==undefined )
-            this.unboundVariableAccess = node;
-        return result;
-    }
-
-    /**
-     * Returns <code>false</code> if the argument <code>resultOfPreviousChild</code>
-     * is undefined and the argument <code>indexOfNextChild</code> is greater
-     * than 0.
-     * @param node the parent node of the children currently evaluated
-     * @param resultOfPreviousChild an array of <code>null</code> instances
-     * @param indexOfNextChild the index of the next child to be dumped
-     * @return <code>false</code> if the argument <code>resultOfPreviousChild</code>
-     * is undefined and the argument <code>indexOfNextChild</code> is greater
-     * than 0
-     */
-    public boolean walkNextChild(AndExpression node, Object resultOfPreviousChild, int indexOfNextChild)
-    {   if( indexOfNextChild>0 )
-        {   BoundVariable boundVariable = removeBoundVariable();
-            if( isIteration(boundVariable, node.getRightExpression()) )
-                return false;
-        }
-        return true;
-    }
-
-    /**
-     * Returns <code>false</code> if the argument <code>resultOfPreviousChild</code>
-     * is <code>null</code>, undefined or <code>false</code> and the argument <code>indexOfNextChild</code> is greater
-     * than 0.
-     * @param node the parent node of the children currently evaluated
-     * @param resultOfPreviousChild an array of <code>null</code> instances
-     * @param indexOfNextChild the index of the next child to be dumped
-     * @return <code>false</code> if the argument <code>resultOfPreviousChild</code>
-     * is <code>null</code>, undefined or <code>false</code> and the argument <code>indexOfNextChild</code> is greater
-     * than 0
-     */
-    public boolean walkNextChild(ConditionalAndExpression node, Object resultOfPreviousChild, int indexOfNextChild)
-    {   if( indexOfNextChild>0 )
-        {   BoundVariable boundVariable = removeBoundVariable();
-            if ( isIteration(boundVariable, node.getRightExpression()) )
-                return false;
-            else if ( resultOfPreviousChild==undefined ) 
-                // evaluate second operand, if first is undefined
-                return true;
-
-            Class clazz = node.getJavaClass();
-            if( ((clazz==Boolean.class || clazz==boolean.class) &&
-                 resultOfPreviousChild!=null &&
-                 !((Boolean)resultOfPreviousChild).booleanValue()) )
-                return false;
-        }
-        return true;
-    }
-
-    /**
-     * Returns <code>false</code> if the argument <code>resultOfPreviousChild</code>
-     * is <code>null</code>, undefined or <code>true</code> and the argument <code>indexOfNextChild</code> is greater
-     * than 0.
-     * @param node the parent node of the children currently evaluated
-     * @param resultOfPreviousChild an array of <code>null</code> instances
-     * @param indexOfNextChild the index of the next child to be dumped
-     * @return <code>false</code> if the argument <code>resultOfPreviousChild</code>
-     * is <code>null</code>, undefined or <code>true</code> and the argument <code>indexOfNextChild</code> is greater
-     * than 0
-     */
-    public boolean walkNextChild(ConditionalOrExpression node, Object resultOfPreviousChild, int indexOfNextChild)
-    {   if( indexOfNextChild>0 )
-        {   BoundVariable boundVariable = removeBoundVariable();
-            if( resultOfPreviousChild==undefined ) 
-                // evaluate second operand, if first is undefined
-                return true;
-
-            Class clazz = node.getJavaClass();
-            if ( ((clazz==Boolean.class || clazz==boolean.class) &&
-                  resultOfPreviousChild!=null &&
-                  ((Boolean)resultOfPreviousChild).booleanValue()) )
-                return false;
-        }
-        return true;
-    }
-
-    /**
-     * Returns <code>false</code> if the argument <code>resultOfPreviousChild</code>
-     * is undefined and the argument <code>indexOfNextChild</code> is greater
-     * than 0.
-     * @param node the parent node of the children currently evaluated
-     * @param resultOfPreviousChild an array of <code>null</code> instances
-     * @param indexOfNextChild the index of the next child to be dumped
-     * @return <code>false</code> if the argument <code>resultOfPreviousChild</code>
-     * is undefined and the argument <code>indexOfNextChild</code> is greater than 0
-     */
-    public boolean walkNextChild(ContainsCallExpression node, Object resultOfPreviousChild, int indexOfNextChild)
-    {   return true;
-    }
-
-    /**
-     * Returns <code>false</code> if the argument <code>resultOfPreviousChild</code>
-     * is undefined and the argument <code>indexOfNextChild</code> is greater
-     * than 0.
-     * @param node the parent node of the children currently evaluated
-     * @param resultOfPreviousChild an array of <code>null</code> instances
-     * @param indexOfNextChild the index of the next child to be dumped
-     * @return <code>false</code> if the argument <code>resultOfPreviousChild</code>
-     * is undefined and the argument <code>indexOfNextChild</code> is greater
-     * than 0
-     */
-    public boolean walkNextChild(OrExpression node, Object resultOfPreviousChild, int indexOfNextChild)
-    {   if( indexOfNextChild>0 )
-        {   BoundVariable boundVariable = removeBoundVariable();
-        }
-        return true;
-    }
-
-    //private members
-    private class BoundVariable
-    {   String name;
-        Class clazz;
-        Collection collection;
-        boolean result = false;
-
-        BoundVariable(String name, Class clazz, Collection collection)
-        {   this.name = name;
-            this.clazz = clazz;
-            this.collection = collection;
-        }
-        public boolean equals(Object obj)
-        {   return name.equals( obj );
-        }
-        public int hashCode()
-        {   return name.hashCode();
-        }
-        public String toString()
-        {   return name.toString();
-        }
-    }
-    private BoundVariable removeBoundVariable()
-    {   if( this.unboundVariableAccess!=null )
-            throw new JDOQueryException( msg.msg("EXC_CannotAccessUnboundVariables", this.unboundVariableAccess.getName()) ); //NOI18N
-        int nrOfBoundVariables = this.boundVariables.size();
-        if( nrOfBoundVariables>1 )
-            throw new JDOQueryException( msg.msg("EXC_CannotProcessMultipleContainsClauses") ); //NOI18N
-        BoundVariable boundVariable;
-        if( nrOfBoundVariables>0 )
-            boundVariable = (BoundVariable) this.boundVariables.remove( nrOfBoundVariables-1 );
-        else
-            boundVariable = null;
-        return boundVariable;
-    }
-    private boolean isIteration(BoundVariable boundVariable, Expression expr)
-    {   boolean result = false;
-        if( boundVariable!=null )
-        {   result = true;
-            boundVariable.result = false;
-            int nrOfBoundVariables = this.boundVariables.size();
-            for( Iterator i=boundVariable.collection.iterator(); i.hasNext(); )
-            {   Object value = i.next();
-                if( boundVariable.clazz.isInstance(value) )
-                {   this.variables.setValue( boundVariable.name, value );
-                    Object object = walker.walk( expr, this );
-                    while( nrOfBoundVariables<this.boundVariables.size() )
-                        removeBoundVariable();
-                    if( object!=null &&
-                        object instanceof Boolean &&
-                        ((Boolean)object).booleanValue() )
-                    {   boundVariable.result = true;
-                        break;
-            }   }   }
-            this.variables.setValue( boundVariable.name, undefined );
-            this.removedBoundVariable = boundVariable;
-        }
-        return result;
-    }
-    private Object logicalAnd(Object left, Object right)
-    {   Object result;
-        //if the expression has been an iteration then return the iteration result
-        if( right==null )
-        {   if( this.removedBoundVariable!=null )
-            {   result = this.removedBoundVariable.result ? Boolean.TRUE : Boolean.FALSE;
-                this.removedBoundVariable = null;
-            }
-            else
-                result = left;
-        }
-        else if( right==undefined ) 
-        {   // right hand side is undefined =>
-            // T AND U -> U
-            // F AND U -> F
-            // U AND U -> U
-            if( (left==undefined) || ((Boolean)left).booleanValue() )
-                result = undefined;
-            else 
-                result = Boolean.FALSE;
-        }
-        else if( left==undefined )
-        {   // left hand side is undefined
-            // U AND T -> U
-            // U AND F -> F
-            // U AND U -> U (handled above)
-            if( ((Boolean)right).booleanValue() )
-                result = undefined;
-            else
-                result = Boolean.FALSE;
-        }
-        else 
-        {   result = ((Boolean)left).booleanValue() && ((Boolean)right).booleanValue() ?
-                Boolean.TRUE : Boolean.FALSE;
-        }
-        return result;
-    }
-    private Object logicalOr(Object left, Object right)
-    {   Object result;
-        //if the expression has been an iteration then return the iteration result
-        if( right==null )
-        {   if( this.removedBoundVariable!=null )
-            {   result = this.removedBoundVariable.result ? Boolean.TRUE : Boolean.FALSE;
-                this.removedBoundVariable = null;
-            }
-            else
-                result = left;
-        }
-        else if( right==undefined )
-        {   // right hand side is undefined =>
-            // T OR U -> T
-            // F OR U -> U
-            // U OR U -> U
-            if( (left==undefined) || !((Boolean)left).booleanValue() )
-                result = undefined;
-            else
-                result =  Boolean.TRUE;
-        }
-        else if( left==undefined )
-        {   // left hand side is undefined
-            // U OR T -> T
-            // U OR F -> U
-            // U OR U -> U (handled above)
-            if ( ((Boolean)right).booleanValue() )
-                result = Boolean.TRUE;
-            else
-                result = undefined; 
-        }
-        else 
-        {   result = ((Boolean)left).booleanValue() || ((Boolean)right).booleanValue() ?
-                Boolean.TRUE : Boolean.FALSE;
-        }
-        return result;
-    }
-    private void log(String s)
-    {   System.out.print( s );
-    }
-    private void logln(String s)
-    {   System.out.println( s );
-    }
-}
diff --git a/query20/src/java/org/apache/jdo/impl/jdoql/OrderingComparator.java b/query20/src/java/org/apache/jdo/impl/jdoql/OrderingComparator.java
deleted file mode 100644
index 8c6272b..0000000
--- a/query20/src/java/org/apache/jdo/impl/jdoql/OrderingComparator.java
+++ /dev/null
@@ -1,125 +0,0 @@
-/*
- * 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.
- */
-
-package org.apache.jdo.impl.jdoql;
-
-
-import java.util.Comparator;
-import java.util.Iterator;
-import java.util.List;
-
-import org.apache.jdo.impl.jdoql.scope.UNDEFINED;
-import org.apache.jdo.jdoql.tree.DescendingOrderingExpression;
-import org.apache.jdo.jdoql.tree.OrderingExpression;
-import org.apache.jdo.jdoql.tree.QueryTree;
-import org.apache.jdo.jdoql.tree.TreeWalker;
-
-/**
- * An instance of this class is used to compare two instances of
- * <code>Comparable</code> based on the ordering expressions
- * defined by a query tree. This instance holds references to a query tree,
- * a tree walker and a memory query instance for this purpose.
- *
- * @author Michael Watzek
- */
-public class OrderingComparator implements Comparator
-{
-    private static final UNDEFINED  undefined = UNDEFINED.getInstance();
-
-          List          orderings;
-    final TreeWalker    walker;
-    final MemoryQuery   nodeVisitor;
-
-    /**
-     * Constructs an ordering comparator for a tree walker and a node visitor.
-     * This comparator is not bound to a query tree.
-     * It can be bound to a query tree by calling method
-     * <code>setQueryTree</code>.
-     * @param walker the tree walker
-     * @param nodeVisitor the node visitor evaluating the ordering expressions
-     */
-    public OrderingComparator(TreeWalker walker, MemoryQuery nodeVisitor)
-    {   this( walker, nodeVisitor, null );
-    }
-
-    /**
-     * Constructs an ordering comparator for a tree walker, a node visitor
-     * and a query tree. This comparator is bound to that query tree.
-     * @param walker the tree walker
-     * @param nodeVisitor the node visitor evaluating the ordering expressions
-     * @param queryTree the query tree containing the ordering expressions
-     */
-    public OrderingComparator(TreeWalker walker, MemoryQuery nodeVisitor, QueryTree queryTree)
-    {   this.walker = walker;
-        this.nodeVisitor = nodeVisitor;
-        setQueryTree( queryTree );
-    }
-
-    /**
-     * Sets the query tree for this ordering comparator. Each ordering comparator
-     * can be bound to a query tree. The ordering expression list inside
-     * that query tree determines the ordering semantics of this comparator.
-     * @param queryTree the query tree containing the ordering expression list
-     */
-    public void setQueryTree(QueryTree queryTree)
-    {   if( queryTree!=null )
-            this.orderings = queryTree.getOrderingExpressions();
-        else
-            this.orderings = null;
-    }
-
-    /**
-     * Required method for implementing the interface <code>Comparator</code>.
-     * This method returns a negative integer, zero, or a positive integer
-     * as the first argument is less than, equal to, or greater than the second
-     * argument.
-     * If this instance is not bound to a query tree or,
-     * if the query tree bound to this instance
-     * does not have any ordering expression, then argument <code>o1</code>
-     * is less than argument <code>o2</code> by definition.
-     * @param o1 the first object to be compared
-     * @param o2 the second object to be compared
-     * @return a negative integer, zero, or a positive integer
-     * as the first argument is less than, equal to, or greater than the second
-     * @exception ClassCastException if the arguments are not instances of
-     * <code>Comparable</code>
-     */
-    public int compare(Object o1, Object o2)
-    {   int cmp = -1;
-        if( this.orderings!=null )
-            for( Iterator i=this.orderings.iterator(); i.hasNext(); )
-            {   OrderingExpression orderExpr = (OrderingExpression) i.next();
-                nodeVisitor.setCurrent( o1 );
-                Object result1 = walker.walk( orderExpr, nodeVisitor );
-                nodeVisitor.setCurrent( o2 );
-                Object result2 = walker.walk( orderExpr, nodeVisitor );
-                if( result1!=null ||
-                    result2!=null )
-                {   if( !(result1 instanceof Comparable) )
-                        break;
-                    else if( !(result2 instanceof Comparable) )
-                    {   cmp = 1;
-                        break;
-                    }
-                    cmp = ((Comparable)result1).compareTo( result2 );
-                    if( cmp!=0 )
-                    {   if( orderExpr instanceof DescendingOrderingExpression )
-                            cmp = -cmp;
-                        break;
-            }   }   }
-        return cmp;
-    }
-}
\ No newline at end of file
diff --git a/query20/src/java/org/apache/jdo/impl/jdoql/QueryImpl.java b/query20/src/java/org/apache/jdo/impl/jdoql/QueryImpl.java
deleted file mode 100644
index 62fa912..0000000
--- a/query20/src/java/org/apache/jdo/impl/jdoql/QueryImpl.java
+++ /dev/null
@@ -1,994 +0,0 @@
-/*
- * 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.
- */
-
-/*
- * QueryImpl.java
- *
- * Created on August 31, 2001
- */
-
-package org.apache.jdo.impl.jdoql;
-
-import java.io.IOException;
-import java.util.*;
-
-import javax.jdo.PersistenceManager;
-import javax.jdo.Query;
-import javax.jdo.Extent;
-import javax.jdo.Transaction;
-import javax.jdo.FetchPlan;
-
-import org.apache.jdo.impl.jdoql.jdoqlc.JDOQLAST;
-import org.apache.jdo.impl.jdoql.jdoqlc.JDOQLC;
-import org.apache.jdo.impl.jdoql.scope.ParameterTable;
-import org.apache.jdo.impl.jdoql.scope.VariableTable;
-import org.apache.jdo.impl.jdoql.tree.Tree;
-import org.apache.jdo.jdoql.JDOQueryException;
-import org.apache.jdo.query.QueryResult;
-import org.apache.jdo.pm.PersistenceManagerInternal;
-import org.apache.jdo.store.StoreManager;
-import org.apache.jdo.util.I18NHelper;
-
-
-/** 
- * This class implements the JDO query interface 
- * (see {@link javax.jdo.Query}).
- *
- * @author  Michael Bouschen
- */
-public class QueryImpl
-    implements Query
-{
-    /** The pm for this query instance. */
-    private transient PersistenceManagerInternal pm;
-
-    /** The candidate class as specified by setClass. */
-    private transient Class candidateClass;
-
-    /** The name of the candidate class (Needed for serialization support). */
-    private String candidateClassName;
-
-    /** The candidates as specified by setCandidates. */
-    private transient Object candidates;
-    
-    /** The import declaration string as specified by declareImports. */
-    private String importDeclarations;
-    
-    /** The parameter declaration string as specified by declareParameters. */
-    private String parameterDeclarations;
-    
-    /** The variable declaration string as specified by declareVariables. */
-    private String variableDeclarations;
-    
-    /** The ordering specification string as specified by setOrdering. */
-    private String orderingSpecification;
-
-    /** The filter expression string as specified by setFilter. */
-    private String filterExpression;
-    
-    /** 
-     * The ignoreCache flag as specified by setIgnoreCache. The constructor
-     * defaults it to the PM setting.
-     */
-    private boolean ignoreCache;
-
-    /** The internal query representation as compilation result. */
-    private transient Tree compiledTree = null;
-    
-    /** 
-     * The internal query representation set by the constructor taking a 
-     * compiled query.
-     */
-    private Tree queryTree;
-
-    /** Represents parameter values. */
-    private ParameterTable paramtab;
-
-    /** Represents variable values. */
-    private VariableTable vartab;
-
-    /** Set of open query result instances. */
-    private transient Set openQueryResults = new HashSet();
-    
-    /** I18N support */
-    private final static I18NHelper msg =  
-        I18NHelper.getInstance(QueryImpl.class);
-
-    /**
-     * Create an empty query instance with no elements.
-     */
-    public QueryImpl(PersistenceManagerInternal pm)
-    {
-        // check valid PersistenceManager
-        if (pm == null)
-            throw new JDOQueryException(msg.msg("EXC_UnboundQuery")); //NOI18N
-
-        this.pm = pm;
-        this.ignoreCache = pm.getIgnoreCache();
-        this.paramtab = new ParameterTable();
-        this.vartab = new VariableTable();
-    }
-    
-    /** 
-     * Create a new Query using elements from another Query.  The other Query
-     * must have been created by the same JDO implementation.  It might be active
-     * in a different PersistenceManager or might have been serialized and
-     * restored.
-     * <P>All of the settings of the other Query are copied to this Query,
-     * except for the candidate Collection or Extent.
-     * @param compiled another Query from the same JDO implementation
-     */
-    public QueryImpl(PersistenceManagerInternal pm, Object compiled)
-    {
-        this(pm);
-        if (compiled == null) {
-            throw new JDOQueryException(
-                msg.msg("EXC_NullQueryInstance")); //NOI18N
-        }
-        
-        if (compiled instanceof QueryImpl) {
-            QueryImpl other = (QueryImpl)compiled;
-            if (other.candidateClass != null) {
-                this.candidateClass = other.candidateClass;
-            }
-            else if (other.candidateClassName != null) {
-                // Support for deserialized query instances: 
-                // after deserialization other.candidateClass is not set,
-                // but other.candidateClassName is set => 
-                // use PM algorithm to calculate the candidateClass instance
-                try {
-                    this.candidateClass = 
-                        pm.loadClass(other.candidateClassName, null);
-                }
-                catch (ClassNotFoundException ex) {
-                    throw new JDOQueryException(
-                        msg.msg("EXC_UnknownCandidateClass", //NOI18N
-                                other.candidateClassName), ex);
-                }
-            }
-            this.importDeclarations = other.importDeclarations;
-            this.parameterDeclarations = other.parameterDeclarations;
-            this.variableDeclarations = other.variableDeclarations;
-            this.orderingSpecification = other.orderingSpecification;
-            this.filterExpression = other.filterExpression;
-            this.ignoreCache = other.ignoreCache;
-            // Set compiled tree to null in order to ensure that this Query 
-            // instance is compiled prior to execution.
-            // A possible optimization might want to reuse compilation results 
-            // from the other query, but this requires serializing the typeInfo
-            // from the JDOQLAST.
-            this.compiledTree = null;
-            this.queryTree = other.queryTree;
-            this.paramtab = other.paramtab;
-            this.vartab = other.vartab;
-            checkQueryTreeCandidateClass();
-        }
-        else if (compiled instanceof Tree) {
-            this.queryTree = (Tree)compiled;
-            // TBD: check compiledTree?
-            this.compiledTree = null;
-            checkQueryTreeCandidateClass();
-        }
-        else {
-            throw new JDOQueryException(
-                msg.msg("EXC_InvalidCompiledQuery", //NOI18N
-                        compiled.getClass().getName()));
-        }
-    }
-
-    /** 
-     * Create a new Query specifying the Class of the candidate instances.
-     * @param cls the Class of the candidate instances
-     */
-    public QueryImpl(PersistenceManagerInternal pm, Class cls)
-    {
-        this(pm);
-        setClass(cls);
-    }
-    
-    /** 
-     * Create a new Query with the candidate Extent; the class 
-     * is taken from the Extent.
-     * @param cln the Extent of candidate instances
-     */
-    public QueryImpl(PersistenceManagerInternal pm, Extent cln)
-    {
-        this(pm);
-        setClass(cln.getCandidateClass());
-        setCandidates(cln);
-    }
-    
-    /**
-     * Create a query instance with the candidate class and 
-     * candidate collection specified.
-     * @param cls the Class of the candidate instances.
-     * @param cln the Collection of candidate instances.
-     */
-    public QueryImpl(PersistenceManagerInternal pm, Class cls, Collection cln)
-    {
-        this(pm);
-        setClass(cls);
-        setCandidates(cln);
-    }
-    
-    /** 
-     * Create a new Query with the Class of the candidate instances and Filter.
-     * @param cls the Class of results
-     * @param filter the filter for candidate instances
-     */
-    public QueryImpl(PersistenceManagerInternal pm, Class cls, String filter)
-    {
-        this(pm);
-        setClass(cls);
-        setFilter(filter);
-    }
-        
-    /** 
-     * Create a new Query with the Class of the candidate instances, 
-     * candidate Collection, and filter.
-     * @param cls the Class of candidate instances
-     * @param cln the Collection of candidate instances
-     * @param filter the filter for candidate instances
-     */
-    public QueryImpl(PersistenceManagerInternal pm, Class cls, Collection cln, 
-                     String filter)
-    {
-        this(pm);
-        setClass(cls);
-        setCandidates(cln);
-        setFilter(filter);
-    }
-    
-    /** 
-     * Create a new Query with the
-     * candidate Extent and filter; the class
-     * is taken from the Extent.
-     * @param cln the Extent of candidate instances
-     * @param filter the filter for candidate instances
-     */
-    public QueryImpl(PersistenceManagerInternal pm, Extent cln, String filter)
-    {
-        this(pm);
-        setClass(cln.getCandidateClass());
-        setCandidates(cln);
-        setFilter(filter);
-    }
-
-    /** Set the class of the candidate instances of the query.
-     * <P>The class specifies the class
-     * of the candidates of the query.  Elements of the candidate collection
-     * that are of the specified class are filtered before being
-     * put into the result Collection.
-     *
-     * @param cls the Class of the candidate instances.
-     */
-    public void setClass(Class cls)
-    {
-        synchronized (this.paramtab) {
-            this.candidateClass = cls;
-            this.compiledTree = null;
-        }
-    }
-    
-    /** 
-     * Set the candidate Extent to query.
-     * @param pcs the Candidate Extent.
-     */
-    public void setCandidates(Extent pcs)
-    {
-        synchronized (this.paramtab) {
-            this.candidates = pcs;
-        }
-    }
-    
-    /** 
-     * Set the candidate Collection to query.
-     * @param pcs the Candidate collection.
-     */
-    public void setCandidates(Collection pcs)
-    {
-        synchronized (this.paramtab) {
-            this.candidates = pcs;
-        }
-    }
-    
-    /** 
-     * Set the filter for the query.
-     * @param filter the query filter.
-     */
-    public void setFilter(String filter)
-    {
-        synchronized (this.paramtab) {
-            this.filterExpression = filter;
-            this.compiledTree = null;
-        }
-    }
-    
-    /** 
-     * Set the import statements to be used to identify the fully qualified name 
-     * of variables or parameters.  Parameters and unbound variables might 
-     * come from a different class from the candidate class, and the names 
-     * need to be declared in an import statement to eliminate ambiguity. 
-     * Import statements are specified as a String with semicolon-separated 
-     * statements. 
-     * <P>The String parameter to this method follows the syntax of the  
-     * import statement of the Java language.
-     * @param imports import statements separated by semicolons.
-     */
-    public void declareImports(String imports)
-    {
-        synchronized (this.paramtab) {
-            this.importDeclarations = imports;
-            this.compiledTree = null;
-        }
-    }
-    
-    /** 
-     * Declare the list of parameters query execution.
-     *
-     * The parameter declaration is a String containing one or more query 
-     * parameter declarations separated with commas. Each parameter named 
-     * in the parameter declaration must be bound to a value when 
-     * the query is executed.
-     * <P>The String parameter to this method follows the syntax for formal 
-     * parameters in the Java language. 
-     * @param parameters the list of parameters separated by commas.
-     */
-    public void declareParameters(String parameters)
-    {
-        synchronized (this.paramtab) {
-            this.parameterDeclarations = parameters;
-            this.compiledTree = null;
-        }
-    }
-    
-    /** 
-     * Declare the unbound variables to be used in the query. Variables 
-     * might be used in the filter, and these variables must be declared 
-     * with their type. The unbound variable declaration is a String 
-     * containing one or more unbound variable declarations separated 
-     * with semicolons. It follows the syntax for local variables in 
-     * the Java language.
-     * @param variables the variables separated by semicolons.
-     */
-    public void declareVariables(String variables)
-    {
-        synchronized (this.paramtab) {
-            this.variableDeclarations = variables;
-            this.compiledTree = null;
-        }
-    }
-    
-    /** 
-     * Set the ordering specification for the result Collection.  The
-     * ordering specification is a String containing one or more ordering
-     * declarations separated by commas.
-     *
-     * <P>Each ordering declaration is the name of the field on which
-     * to order the results followed by one of the following words:
-     * "ascending" or "descending".
-     *
-     *<P>The field must be declared in the candidate class or must be
-     * a navigation expression starting with a field in the candidate class.
-     *
-     *<P>Valid field types are primitive types except boolean; wrapper types 
-     * except Boolean; BigDecimal; BigInteger; String; and Date.
-     * @param ordering the ordering specification.
-     */
-    public void setOrdering(String ordering)
-    {
-        synchronized (this.paramtab) {
-            this.orderingSpecification = ordering;
-            this.compiledTree = null;
-        }
-    }
-    
-    /** 
-     * Set the ignoreCache option.  The default value for this option was
-     * set by the PersistenceManagerFactory or the PersistenceManager used 
-     * to create this Query.
-     *
-     * The ignoreCache option setting specifies whether the query should execute
-     * entirely in the back end, instead of in the cache.  If this flag is set
-     * to true, an implementation might be able to optimize the query
-     * execution by ignoring changed values in the cache.  For optimistic
-     * transactions, this can dramatically improve query response times.
-     * @param ignoreCache the setting of the ignoreCache option.
-     */
-    public void setIgnoreCache(boolean ignoreCache)
-    {
-        synchronized (this.paramtab) {
-            this.ignoreCache = ignoreCache;
-        }
-    }
-    
-    /** 
-     * Get the ignoreCache option setting.
-     * @return the ignoreCache option setting.
-     * @see #setIgnoreCache
-     */
-    public boolean getIgnoreCache()
-    {
-        return ignoreCache;
-    }
-    
-    /** 
-     * Verify the elements of the query and provide a hint to the query to
-     * prepare and optimize an execution plan.
-     */
-    public void compile()
-    {
-        // check valid PersistenceManager
-        if (pm == null)
-            throw new JDOQueryException(msg.msg("EXC_UnboundQuery")); //NOI18N
-        
-        synchronized (this.paramtab) {
-            if (this.compiledTree == null) {
-                JDOQLC jdoqlc = new JDOQLC(pm);
-                if (queryTree != null) {
-                    jdoqlc.setQueryTree(queryTree);
-                }
-                else {
-                    // define the query parts including syntax checks
-                    jdoqlc.setClass(candidateClass);
-                    jdoqlc.declareImports(importDeclarations);
-                    jdoqlc.declareParameters(parameterDeclarations);
-                    jdoqlc.declareVariables(variableDeclarations);
-                    jdoqlc.setFilter(filterExpression);
-                    jdoqlc.setOrdering(orderingSpecification);
-                }
-
-                // call semantic analysis
-                JDOQLAST ast = jdoqlc.semanticCheck(paramtab, vartab);
-                // call optimizer
-                compiledTree = (Tree)jdoqlc.optimize(ast);
-            }
-        }
-    }
-    
-    /** 
-     * Execute the query and return the filtered Collection.
-     * @return the filtered Collection.
-     * @see #executeWithArray(Object[] parameters)
-     */
-    public Object execute()
-    {
-        synchronized (this.paramtab) {
-            compile();
-            pm.assertIsOpen();
-            checkTransaction();
-            checkCandidates();
-            // Each execute call gets its own copy of paramtab and vartab.
-            // This allows multiple execution of the same query in parallel.
-            ParameterTable params = paramtab.getCopy();
-            params.initValueHandling();
-            params.checkUnboundParams();
-            VariableTable vars = vartab.getCopy();
-            vars.initValueHandling();
-            StoreManager srm = pm.getStoreManager();
-            QueryResult queryResult = 
-                srm.newQueryResult(new QueryResultHelperImpl(
-                    pm, compiledTree, candidates, params, vars));
-            openQueryResults.add(queryResult);
-            return queryResult;
-        }
-    }
-    
-    /** 
-     *  Execute the query and return the filtered Collection.
-     * @return the filtered Collection.
-     * @see #executeWithArray(Object[] parameters)
-     * @param p1 the value of the first parameter declared.
-     */
-    public Object execute(Object p1)
-    {
-        Object[] params = new Object[1];
-        params[0] = p1;
-        return executeWithArray(params);
-    }
-    
-    /** 
-     * Execute the query and return the filtered Collection.
-     * @return the filtered Collection.
-     * @see #executeWithArray(Object[] parameters)
-     * @param p1 the value of the first parameter declared.
-     * @param p2 the value of the second parameter declared.
-     */
-    public Object execute(Object p1, Object p2)
-    {
-        Object[] params = new Object[2];
-        params[0] = p1;
-        params[1] = p2;
-        return executeWithArray(params);
-    }
-    
-    /** 
-     * Execute the query and return the filtered Collection.
-     * @return the filtered Collection.
-     * @see #executeWithArray(Object[] parameters)
-     * @param p1 the value of the first parameter declared.
-     * @param p2 the value of the second parameter declared.
-     * @param p3 the value of the third parameter declared.
-     */
-    public Object execute(Object p1, Object p2, Object p3)
-    {
-        Object[] params = new Object[3];
-        params[0] = p1;
-        params[1] = p2;
-        params[2] = p3;
-        return executeWithArray(params);
-    }
-    
-    /** 
-     * Execute the query and return the filtered Collection.
-     * @return the filtered Collection.
-     * @see #executeWithArray(Object[] parameters)
-     * @param parameters the Map containing all of the parameters.
-     */
-    public Object executeWithMap(Map parameters)
-    {
-        synchronized (this.paramtab)
-        {
-            compile();
-            pm.assertIsOpen();
-            checkTransaction();
-            checkCandidates();
-            // Each execute call gets its own copy of paramtab and vartab.
-            // This allows multiple execution of the same query in parallel.
-            ParameterTable params = paramtab.getCopy();
-            params.initValueHandling();
-            params.setValues(pm, parameters);
-            params.checkUnboundParams();
-            VariableTable vars = vartab.getCopy();
-            vars.initValueHandling();
-            StoreManager srm = pm.getStoreManager();
-            QueryResult queryResult = 
-                srm.newQueryResult(new QueryResultHelperImpl(
-                    pm, compiledTree, candidates, params, vars));
-            openQueryResults.add(queryResult);
-            return queryResult;
-        }
-    }
-
-    /** Execute the query and return the filtered Collection.
-     *
-     * <P>The execution of the query obtains the values of the parameters and
-     * matches them against the declared parameters in order.  The names
-     * of the declared parameters are ignored.  The type of
-     * the declared parameters must match the type of the passed parameters,
-     * except that the passed parameters might need to be unwrapped to get
-     * their primitive values.
-     *
-     * <P>The filter, import, declared parameters, declared variables, and
-     * ordering statements are verified for consisten1cy.
-     *
-     * <P>Each element in the candidate Collection is examined to see that it
-     * is assignment compatible to the Class of the query.  It is then evaluated
-     * by the boolean expression of the filter.  The element passes the filter
-     * if there exist unique values for all variables for which the filter
-     * expression evaluates to true.
-     * @return the filtered Collection.
-     * @param parameters the Object array with all of the parameters.
-     */
-    public Object executeWithArray(Object[] parameters)
-    {
-        synchronized (this.paramtab)
-        {
-            compile();
-            pm.assertIsOpen();
-            checkTransaction();
-            checkCandidates();
-            // Each execute call gets its own copy of paramtab and vartab.
-            // This allows multiple execution of the same query in parallel.
-            ParameterTable params = paramtab.getCopy();
-            params.initValueHandling();
-            params.setValues(pm, parameters);
-            params.checkUnboundParams();
-            VariableTable vars = vartab.getCopy();
-            vars.initValueHandling();
-            StoreManager srm = pm.getStoreManager();
-            QueryResult queryResult = 
-                srm.newQueryResult(new QueryResultHelperImpl(
-                    pm, compiledTree, candidates, params, vars));
-            openQueryResults.add(queryResult);
-            return queryResult;
-        }
-    }
-    
-    /** 
-     * Get the PersistenceManager associated with this Query.
-     *
-     * <P>If this Query was restored from a serialized form, it has no 
-     * PersistenceManager, and this method returns null.
-     * @return the PersistenceManager associated with this Query.
-     */
-    public PersistenceManager getPersistenceManager()
-    {
-        return (pm == null) ? null : pm.getCurrentWrapper();
-    }
-  
-    /** 
-     * Close a query result and release any resources associated with it.  The
-     * parameter is the return from execute(...) and might have iterators open 
-     * on it. Iterators associated with the query result are invalidated: they 
-     * return false to hasNext() and throw NoSuchElementException to next().
-     * @param queryResult the result of execute(...) on this Query instance.
-     */    
-    public void close (Object queryResult)
-    {
-        if (queryResult instanceof QueryResult) {
-            openQueryResults.remove(queryResult);
-            ((QueryResult)queryResult).close();
-        }
-    }
-    
-    /** 
-     * Close all query results associated with this Query instance, and release
-     * all resources associated with them.  The query results might have 
-     * iterators open on them.  Iterators associated with the query results are 
-     * invalidated: they return false to hasNext() and 
-     * throw NoSuchElementException to next().
-     */    
-    public void closeAll ()
-    {
-        for(Iterator i = openQueryResults.iterator(); i.hasNext();) {
-            QueryResult queryResult = (QueryResult)i.next();
-            queryResult.close();
-        }
-        openQueryResults.clear();
-    }
-
-    /**
-     * Set the grouping expressions, optionally including a "having"
-     * clause. When grouping is specified, each result expression
-     * must either be an expression contained in the grouping, or an
-     * aggregate evaluated once per group.
-     * 
-     * @param	group	a comma-delimited list of expressions, optionally
-     * followed by the "having" keyword and a boolean expression
-     * @since	2.0
-     */
-    public void setGrouping (String group) {
-        throw new UnsupportedOperationException(
-            "method setGrouping(String) is not yet implemented");
-    }
-
-    /**
-     * Specify that only the first result of the query should be
-     * returned, rather than a collection. The execute method will
-     * return null if the query result size is 0.
-     * @since 2.0
-     * @param unique if true, only one element is returned
-     */
-    public void setUnique (boolean unique) {
-        throw new UnsupportedOperationException(
-            "method setUnique(boolean) is not yet implemented");
-    }
-
-    /**
-     * Specifies what type of data this query should return. If this
-     * is unset or set to <code>null</code>, this query returns
-     * instances of the query's candidate class. If set, this query
-     * will return expressions, including field values (projections) and 
-     * aggregate function results.
-     * @param data a comma-delimited list of expressions 
-     * (fields, functions on fields, or aggregate functions) 
-     * to return from this query
-     * @since 2.0
-     */
-    public void setResult (String data) {
-        throw new UnsupportedOperationException(
-            "method setResult(String) is not yet implemented");
-    }
-
-    /**
-     * Specify the type of object in which to return each element of
-     * the result of invoking {@link #execute} or one of its siblings. 
-     * If the result is not set or set to null, the result class defaults
-     * to the candidate class of the query. If the result consists of one
-     * expression, the result class defaults to the type of that expression.
-     * If the result consists of more than one expression, the result class
-     * defaults to Object[].
-     * The result class may be specified to be one of the java.lang classes 
-     * Character, Boolean, Byte, Short, Integer, Long, Float, Double, String, 
-     * or Object[]; or one of the java.math classes BigInteger or BigDecimal; 
-     * or the java.util class Date; or one of the java.sql classes Date, 
-     * Time, or Timestamp; or a user-defined class.
-     * <P>If there are multiple result expressions, the result class 
-     * must be able to hold all elements of the result specification 
-     * or a JDOUserException is thrown. 
-     *<P>If there is only one result expression, the result class must be 
-     * assignable from the type of the result expression or must be able 
-     * to hold all elements of the result specification. A single value 
-     * must be able to be coerced into the specified result class 
-     * (treating wrapper classes as equivalent to their unwrapped 
-     * primitive types) or by matching. If the result class does not satisfy 
-     * these conditions, a JDOUserException is thrown.
-     *<P>A constructor of a result class specified in the setResult method 
-     * will be used if the results specification matches the parameters 
-     * of the constructor by position and type. If more than one constructor 
-     * satisfies the requirements, the JDO implementation chooses one of them. 
-     * If no constructor satisfies the results requirements, or if the result 
-     * class is specified via the setResultClass method, the following 
-     * requirements apply:
-     * <ul>
-     * <li>A user-defined result class must have a no-args constructor and 
-     * one or more public <code>set</code> or <code>put</code> methods or fields. 
-     * <li>Each result expression must match one of:
-     * <ul>
-     * <li>a public field that matches the name of the result expression 
-     * and is of the type (treating wrapper types equivalent to primitive 
-     * types) of the result expression; 
-     * <li>or if no public field matches the name and type, a public 
-     * <code>set</code method that returns void and matches the name of the 
-     * result expression and takes a single parameter which is the 
-     * exact type of the result expression;
-     * <li>or if neither of the above applies,a public method must be found 
-     * with the signature <code>void put(Object, Object)</code>.
-     * During processing of the results,  
-     * the first argument is the name of the result expression and 
-     * the second argument is the value from the query result.
-     * </ul>
-     * </ul>
-     * Portable result classes do not invoke any persistence behavior 
-     * during their no-args constructor or <code>set</code methods.
-     * @param cls the result class
-     * @since 2.0
-     */
-    public void setResultClass (Class cls) {
-        throw new UnsupportedOperationException(
-            "method setResultClass(Class) is not yet implemented");
-    }
-
-    /**
-     * Set the range of results to return. The execution of the query is
-     * modified to return only a subset of results. If the filter would
-     * normally return 100 instances, and fromIncl is set to 50, and
-     * toExcl is set to 70, then the first 50 results that would have 
-     * been returned are skipped, the next 20 results are returned and the
-     * remaining 30 results are ignored. An implementation should execute
-     * the query such that the range algorithm is done at the data store.
-     * @param fromIncl 0-based inclusive start index
-     * @param toExcl 0-based exclusive end index, or 
-     *     {@link Long#MAX_VALUE} for no limit.
-     * @since 2.0
-     */
-    public void setRange (long fromIncl, long toExcl) {
-        throw new UnsupportedOperationException(
-            "method setRange(long. long) is not yet implemented");
-    }
-
-    /**
-     * Set the range of results to return. The parameter is a String
-     * containing a comma-separated fromIncl and toExcl. The fromIncl and
-     * toExcl can be either String representations of long values, or can
-     * be parameters identified with a leading ":". For example, 
-     * <code>setRange("50, 70");</code> or 
-     * <code>setRange(":from, :to");</code> or 
-     * <code>setRange("50, :to");</code>.
-     * The execution of the query is
-     * modified to return only a subset of results. If the filter would
-     * normally return 100 instances, and fromIncl is set to 50, and
-     * toExcl is set to 70, then the first 50 results that would have 
-     * been returned are skipped, the next 20 results are returned and the
-     * remaining 30 results are ignored. An implementation should execute
-     * the query such that the range algorithm is done at the data store.
-     * @param fromInclToExcl comma-separated fromIncl and toExcl values
-     * @see #setRange(long, long)
-     * @since 2.0
-     */
-    public void setRange (String fromInclToExcl) {
-        throw new UnsupportedOperationException(
-            "method setRange(String) is not yet implemented");
-    }
-
-    /**
-     * Add a vendor-specific extension to this query. The key and value
-     * are not standard.
-     * An implementation must ignore keys that are not recognized.
-     * @param key the key of the extension
-     * @param value the value of the extension
-     * @since 2.0
-     */
-    public void addExtension (String key, Object value) {
-        throw new UnsupportedOperationException(
-            "method addExtension(String, Object) is not yet implemented");
-    }
-
-    /**
-     * Set multiple extensions, or use null to clear all extensions.
-     * Map keys and values are not standard.
-     * An implementation must ignore entries that are not recognized.
-     * @param extensions the map of extensions
-     * @see #addExtension
-     * @since 2.0
-     */
-    public void setExtensions (Map extensions) {
-        throw new UnsupportedOperationException(
-            "method setExtensions(Map) is not yet implemented");
-    }
-
-    /**
-     * Returns the <code>FetchPlan</code> used by this
-     * <code>Query</code>. Modifications of the returned fetch plan will not
-     * cause this query's owning <code>PersistenceManager</code>'s
-     * <code>FetchPlan</code> to be modified.
-     * @since 2.0
-     * @return the fetch plan used by this query
-     */
-    public FetchPlan getFetchPlan () {
-        throw new UnsupportedOperationException(
-            "method getFetchPlan() is not yet implemented");
-    }
-
-    /**
-     * Deletes all the instances of the candidate class that pass the
-     * filter.
-     * @see #deletePersistentAll()
-     * @param parameters for the query
-     * @return the number of instances of the candidate class that were deleted
-     * @since 2.0
-     */
-    public long deletePersistentAll (Object[] parameters) {
-        throw new UnsupportedOperationException(
-            "method deletePersistentAll(Object[]) is not yet implemented");
-    }
-
-    /**
-     * Deletes all the instances of the candidate class that pass the
-     * filter.
-     * @see #deletePersistentAll()
-     * @param parameters for the query
-     * @return the number of instances of the candidate class that were deleted
-     * @since 2.0
-     */
-    public long deletePersistentAll (Map parameters) {
-        throw new UnsupportedOperationException(
-            "method deletePersistentAll(Map) is not yet implemented");
-    }
-
-    /**
-     * Deletes all the instances of the candidate class that pass the
-     * filter. Returns the number of instances of the candidate
-     * class that were deleted, specifically not including the number
-     * of dependent and embedded instances.
-     * <P>Dirty instances of affected classes in the cache are first
-     * flushed to the datastore. Instances in the cache or brought into
-     * the cache as a result of executing one of the 
-     * <code>deletePersistentAll</code>
-     * methods undergo life cycle changes as if <code>deletePersistent</code>
-     * were called on them.
-     * <P>Specifically, if the class of deleted instances implements the
-     * delete callback interface, the corresponding callback methods
-     * are called on the deleted instances. Similarly, if there are
-     * lifecycle listeners registered for delete events on affected
-     * classes, the listener is called for each appropriate deleted instance.
-     * <P>Before returning control to the application, instances of affected
-     * classes in the cache are refreshed to reflect whether they were
-     * deleted from the datastore.
-     * 
-     * @return the number of instances of the candidate class that were deleted
-     * @since 2.0
-     */
-    public long deletePersistentAll () {
-        throw new UnsupportedOperationException(
-            "method deletePersistentAll() is not yet implemented");
-    }
-    
-    /**
-     * The unmodifiable flag, when set, disallows further 
-     * modification of the query, except for specifying the range, 
-     * result class, and ignoreCache option.
-     * The unmodifiable flag can also be set in metadata.
-     * @since 2.0
-      */
-    public void setUnmodifiable() {
-        throw new UnsupportedOperationException(
-            "method setUnmodifiable() is not yet implemented");
-    }
-
-    /**
-     * The unmodifiable flag, when set, disallows further 
-     * modification of the query, except for specifying the range, 
-     * result class, and ignoreCache option.
-     * @return the current setting of the flag
-     * @since 2.0
-      */
-    public boolean isUnmodifiable() {
-        throw new UnsupportedOperationException(
-            "method isUnmodifiable() is not yet implemented");
-    }
-
-    //========= Internal helper methods ==========
-    
-    /** 
-     * This method verifies that if there is no transaction in progress then 
-     * the NontransactionalRead flag must be set to true.
-     */
-    private void checkTransaction() 
-    {
-        Transaction tx = pm.currentTransaction();
-        if ((!tx.isActive()) & !tx.getNontransactionalRead() )
-                throw new JDOQueryException(msg.msg("EXC_NoTransaction")); //NOI18N
-    }
-    
-    /**
-     * This method checks a valid candidates setting for this query. 
-     */
-    private void checkCandidates()
-    {
-        if (candidates == null) {
-            if (queryTree != null) {
-                candidates = pm.getExtent(queryTree.getCandidateClass(), true);
-            }
-            else if (candidateClass != null) {
-                candidates = pm.getExtent(candidateClass, true);
-            }
-            else {
-                throw new JDOQueryException(msg.msg("EXC_MissingCandidateClass")); //NOI18N
-            }
-        }
-    }
-
-    /**
-     * This method checks the candidate class of the underlying query
-     * tree. If this query instance was created from a query tree, and 
-     * subsequently serialized and deserialized then The class instance of
-     * the candidate class is not set. The class instance of the candidate
-     * class is not part of the serialized state of a querty tree; only the
-     * name gets stored. In this case the method uses the PM algorithm to
-     * calculate the class instance of the candidate class and stores it in
-     * the query tree. 
-     */
-    private void checkQueryTreeCandidateClass()
-    {
-        if (queryTree == null) 
-            return;
-
-        if (queryTree.getCandidateClass() == null) {
-            String candidateClassName = 
-                queryTree.getSerializedCandidateClassName();
-            if (candidateClassName != null) {
-                try {
-                    queryTree.setCandidateClass(
-                        pm.loadClass(candidateClassName, null));
-                }
-                catch (ClassNotFoundException ex) {
-                    throw new JDOQueryException(
-                        msg.msg("EXC_UnknownCandidateClass", //NOI18N
-                                candidateClassName), ex);
-                }
-            }
-        }
-    }
-
-    /** Serialization support. */
-    private void readObject(java.io.ObjectInputStream in)
-        throws java.io.IOException, ClassNotFoundException
-    {
-        in.defaultReadObject();
-        this.openQueryResults = new HashSet();
-    }
-
-    /** Deserialization support. */
-    private void writeObject(java.io.ObjectOutputStream out)
-        throws IOException
-    {
-        if (candidateClass != null)
-            this.candidateClassName = candidateClass.getName();
-        out.defaultWriteObject();
-    }
-}
diff --git a/query20/src/java/org/apache/jdo/impl/jdoql/QueryResultHelperImpl.java b/query20/src/java/org/apache/jdo/impl/jdoql/QueryResultHelperImpl.java
deleted file mode 100644
index 9e4d51d..0000000
--- a/query20/src/java/org/apache/jdo/impl/jdoql/QueryResultHelperImpl.java
+++ /dev/null
@@ -1,226 +0,0 @@
-/*
- * 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.
- */
-
-/*
- * QueryResultHelperImpl.java
- *
- * Created on August 31, 2001
- */
-
-package org.apache.jdo.impl.jdoql;
-
-import java.util.*;
-
-import javax.jdo.Extent;
-import javax.jdo.PersistenceManager;
-import javax.jdo.JDOHelper;
-import javax.jdo.JDOUserException;
-
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-
-import org.apache.jdo.impl.jdoql.jdoqlc.JDOQLAST;
-import org.apache.jdo.impl.jdoql.scope.ParameterTable;
-import org.apache.jdo.impl.jdoql.scope.VariableTable;
-import org.apache.jdo.query.QueryResultHelper;
-import org.apache.jdo.jdoql.tree.Expression;
-import org.apache.jdo.jdoql.tree.QueryTree;
-import org.apache.jdo.jdoql.tree.TreeWalker;
-import org.apache.jdo.jdoql.tree.ValueTable;
-import org.apache.jdo.pm.PersistenceManagerInternal;
-import org.apache.jdo.util.I18NHelper;
-
-/** 
- * This class implements the helper interface to support the query 
- * execution strategy of the StoreManager.   When a query is executed, 
- * the filter is parsed.  The parsed query, candidate collection or extent,
- * and actual parameters of the execute are stored in the
- * QueryResultHelper.
- *
- * @author Michael Bouschen
- */
-public class QueryResultHelperImpl
-    implements QueryResultHelper 
-{
-    /** The query PM */
-    private PersistenceManagerInternal pm;
-
-    /** The query tree. */
-    private QueryTree queryTree;
-
-    /** The candidates for this query evalutaion. */
-    private Object candidates;
-
-    /** The table of parameter values. */
-    private ParameterTable parameters;
-
-    /** The table of variable values. */
-    private VariableTable variables;
-
-    /** The memory query evaluator. */
-    private MemoryQuery eval;
-
-    /** The tree walker used when applying the filter and do the ordering. */
-    private TreeWalker treeWalker;
-
-    /** The candidate class taken from the queryTree. */
-    private Class candidateClass;
-
-    /** The ordering comparator. */
-    private OrderingComparator ordering;
-    
-    /** Logger */
-    private static Log logger = LogFactory.getFactory().getInstance(
-        "org.apache.jdo.impl.jdoql"); //NOI18N
-
-    /** I18N support */
-    protected final static I18NHelper msg =  
-        I18NHelper.getInstance(QueryResultHelperImpl.class);
- 
-    /**
-     *
-     */
-    public QueryResultHelperImpl(PersistenceManagerInternal pm,
-                                 QueryTree queryTree, Object candidates, 
-                                 ParameterTable parameters, VariableTable variables)
-    {
-        this.pm = pm;
-        this.queryTree = queryTree;
-        this.candidates = candidates;
-        this.parameters = parameters;
-        this.variables = variables;
-        this.candidateClass = queryTree.getCandidateClass();
-        this.eval = new MemoryQuery(pm, parameters, variables);
-        this.treeWalker = new TreeWalker();
-        this.ordering = new OrderingComparator(treeWalker, eval);
-        if (logger.isTraceEnabled()) {
-            String repr = null;
-            if (queryTree == null)
-                repr = "null"; //NOI18N
-            else if (queryTree instanceof JDOQLAST)
-                repr = ((JDOQLAST)queryTree).treeToString();
-            else
-                repr = queryTree.toString();
-            logger.trace("QueryTree\n" + repr); //NOI18N
-        }
-    }
-
-    /** Return the candidate Collection or Extent specified by
-     * the user.
-     * @return the candidate Collection or Extent.
-     */
-    public Object getCandidates()
-    {
-        return candidates;
-    }
-        
-    /** This method filters the specified collection, removing all elements that
-     * are not assignment compatible to the candidate Class specified by the 
-     * user, and then orders the results according to the ordering expression 
-     * specified by the user.  A new List is returned.
-     * @param candidates the collection of instances to be filtered and ordered
-     * @return the filtered parameter collection ordered by the ordering 
-     * expression.
-     */    
-    public List orderCandidates(Collection candidates)
-    {
-        List list = new ArrayList();
-        for (Iterator i = candidates.iterator(); i.hasNext();) {
-            Object next = i.next();
-            if (candidateClass.isInstance(next))
-                list.add(next);
-        }
-        ordering.setQueryTree(queryTree);
-        Collections.sort(list, ordering);
-        if (logger.isTraceEnabled())
-            logger.trace("orderCandidates -> " + list); //NOI18N
-        return list;
-    }
-    
-    /** This method determines whether the specified object is assignment 
-     * compatible to the candidate Class specified by the user and satisfies 
-     * the query filter.
-     * @return <CODE>true</CODE> if the specified object is of the candidate 
-     * class and satisfies the query filter; <CODE>false otherwise</CODE>
-     * @param obj the candidate object.
-     */    
-    public boolean applyFilter (Object obj)
-    {
-        boolean satisfies = false;
-        if (candidateClass.isInstance(obj)) {
-            // check whether obj is bound to the same pm as the one from the query
-            checkPM(pm, obj);
-            eval.setCurrent(obj);
-            Object result = treeWalker.walk(queryTree.getFilter(), eval);
-            satisfies = ((result instanceof Boolean) && ((Boolean)result).booleanValue());
-        }
-        if (logger.isTraceEnabled())
-            logger.trace("applyFilter -> " + satisfies + "\t" + obj); //NOI18N
-        return satisfies;
-    }
-    
-    /** Return the query tree which is either specified by the user or compiled 
-     * from a JDOQL query.
-     * @return the query tree
-     */
-    public QueryTree getQueryTree()
-    {
-        return queryTree;
-    }
-    
-    /** This method returns the parameter values passed by the user
-     * in the execute(...) method.
-     * @return a ValueTable representing the parameter values
-     */
-    public ValueTable getParameterValues()
-    {
-        return parameters;
-    }
-
-    //========= Helper method ==========
-
-    /**
-     * Checks the PersistenceManager of the specified value to be 
-     * identical to the one from the query instance.
-     */
-    public static void checkPM(PersistenceManagerInternal queryPM, Object value)
-    {
-        if (value instanceof Collection) {
-            // iterate collection and call checkPM for all elements
-            for (Iterator i = ((Collection)value).iterator(); i.hasNext();)
-                checkPM(queryPM, i.next());
-        }
-        else if (value instanceof Object[]) {
-            // iterate array and call checkPM for all elements
-            // No need to check array of primitive types
-            Object[] array = (Object[])value;
-            for (int i = 0; i < array.length; i++)
-                checkPM(queryPM, array[i]);
-        }
-        else
-        {
-            PersistenceManager instancePM = 
-                JDOHelper.getPersistenceManager(value);
-            if ((instancePM != null) && !instancePM.equals(queryPM)) {
-                // instancePM is NOT the one from the query => exception
-                throw new JDOUserException(
-                    msg.msg("EXC_InstanceBoundToDifferentPM", value)); //NOI18N
-            }
-        }
-    }
-        
-}
-
diff --git a/query20/src/java/org/apache/jdo/impl/jdoql/jdoqlc/ErrorMsg.java b/query20/src/java/org/apache/jdo/impl/jdoql/jdoqlc/ErrorMsg.java
deleted file mode 100644
index bcda99f..0000000
--- a/query20/src/java/org/apache/jdo/impl/jdoql/jdoqlc/ErrorMsg.java
+++ /dev/null
@@ -1,143 +0,0 @@
-/*
- * 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.
- */
-
-/*
- * ErrorMsg.java
- *
- * Created on August 28, 2001
- */
-
-package org.apache.jdo.impl.jdoql.jdoqlc;
-
-import java.util.ResourceBundle;
-
-import javax.jdo.JDOFatalInternalException;
-import javax.jdo.JDOUnsupportedOptionException;
-
-import org.apache.jdo.jdoql.JDOQueryException;
-import org.apache.jdo.util.I18NHelper;
-
-
-/** 
- * 
- * @author  Michael Bouschen
- */
-public class ErrorMsg
-{
-    /** 
-     * The context is included in an error message. It usually defines the query 
-     * method with the invalid definition (such as declareParameters, setFilter, 
-     * etc.).
-     */
-    protected String context = null;
-    
-    /** I18N support */
-    protected final static I18NHelper msg = I18NHelper.getInstance(
-        "org.apache.jdo.impl.jdoql.Bundle", ErrorMsg.class.getClassLoader()); //NOI18N
-    
-    /** Return the current context string */
-    public String getContext()
-    {
-        return context;
-    }
-    
-    /** Set the specified string as the current context string. */
-    public void setContext(String name)
-    {
-        context = name;
-    }
-
-    /**
-     * Indicates an error situation. 
-     * @param line line number
-     * @param col column number
-     * @param text error message
-     */
-    public void error(int line, int col, String text)
-        throws JDOQueryException
-    {
-        if (line > 1) {
-            // include line and column info
-            Object args[] = {context, new Integer(line), new Integer(col), text};
-            throw new JDOQueryException(
-                msg.msg("EXC_PositionInfoMsgLineColumn", args)); //NOI18N
-        }
-        else if (col > 0)
-        {
-            // include column info
-            Object args[] = {context, new Integer(col), text};
-            throw new JDOQueryException(
-                msg.msg("EXC_PositionInfoMsgColumn", args)); //NOI18N
-        }
-        else 
-        {
-            Object args[] = {context, text};
-            throw new JDOQueryException(
-                msg.msg("EXC_PositionInfoMsg", args)); //NOI18N
-        }
-    }
-    
-    /**
-     * Indicates that a feature is not supported by the current release. 
-     * @param line line number
-     * @param col column number
-     * @param text message
-     */
-    public void unsupported(int line, int col, String text)
-        throws JDOUnsupportedOptionException
-    {
-        if (line > 1)
-        {
-            // include line and column info
-            Object args[] = {context, new Integer(line), new Integer(col), text};
-            throw new JDOUnsupportedOptionException(
-                msg.msg("EXC_PositionInfoMsgLineColumn", args)); //NOI18N
-        }
-        else if (col > 0)
-        {
-            // include column info
-            Object args[] = {context, new Integer(col), text};
-            throw new JDOUnsupportedOptionException(
-                msg.msg("EXC_PositionInfoMsgColumn", args)); //NOI18N
-        }
-        else 
-        {
-            Object args[] = {context, text};
-            throw new JDOUnsupportedOptionException(
-                msg.msg("EXC_PositionInfoMsg", args)); //NOI18N
-        }   
-    }
-    
-    /**
-     * Indicates a fatal situation (implementation error).
-     * @param text error message
-     */
-    public void fatal(String text)
-        throws JDOFatalInternalException
-    {
-        throw new JDOFatalInternalException(text);
-    }
-
-    /**
-     * Indicates a fatal situation (implementation error).
-     * @param text error message
-     */
-    public void fatal(String text, Exception nested)
-        throws JDOFatalInternalException
-    {
-        throw new JDOFatalInternalException(text, nested);
-    }
-}
diff --git a/query20/src/java/org/apache/jdo/impl/jdoql/jdoqlc/JDOQL.g b/query20/src/java/org/apache/jdo/impl/jdoql/jdoqlc/JDOQL.g
deleted file mode 100644
index bd05b5c..0000000
--- a/query20/src/java/org/apache/jdo/impl/jdoql/jdoqlc/JDOQL.g
+++ /dev/null
@@ -1,843 +0,0 @@
-/*
- * 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.
- */
-
-/*
- * JDOQL.g
- *
- * Created on August 28, 2001
- */
-
-header
-{
-    package org.apache.jdo.impl.jdoql.jdoqlc;
-
-    import antlr.MismatchedTokenException;
-    import antlr.MismatchedCharException;
-    import antlr.NoViableAltException;
-    import antlr.NoViableAltForCharException;
-    import antlr.TokenStreamRecognitionException;
-    
-    import org.apache.jdo.jdoql.JDOQueryException;
-    import org.apache.jdo.impl.jdoql.tree.*;
-    import org.apache.jdo.util.I18NHelper;
-}
-
-//===== Lexical Analyzer Class Definitions =====
-
-/**
- * This class defines the lexical analysis for the JDOQL compiler.
- *
- * @author  Michael Bouschen
- */
-class JDOQLLexer extends Lexer;
-options
-{
-    k = 2;
-    exportVocab = JDOQL;
-    charVocabulary = '\u0000'..'\uFFFE'; //NOI18N
-}
-
-tokens {
-
-    IMPORT = "import"         <AST=org.apache.jdo.impl.jdoql.tree.NodeImpl>; //NOI18N
-    IMPORT_ON_DEMAND          <AST=org.apache.jdo.impl.jdoql.tree.NodeImpl>;
-    THIS = "this"             <AST=org.apache.jdo.impl.jdoql.tree.ThisExpr>; //NOI18N
-    ASCENDING = "ascending"   <AST=org.apache.jdo.impl.jdoql.tree.AscendingOrderingExpr>; //NOI18N
-    DESCENDING = "descending" <AST=org.apache.jdo.impl.jdoql.tree.DescendingOrderingExpr>; //NOI18N
-    
-    // types
-    
-    BOOLEAN = "boolean"       <AST=org.apache.jdo.impl.jdoql.tree.NodeImpl>; //NOI18N
-    BYTE = "byte"             <AST=org.apache.jdo.impl.jdoql.tree.NodeImpl>; //NOI18N
-    CHAR = "char"             <AST=org.apache.jdo.impl.jdoql.tree.NodeImpl>; //NOI18N
-    SHORT = "short"           <AST=org.apache.jdo.impl.jdoql.tree.NodeImpl>; //NOI18N
-    INT = "int"               <AST=org.apache.jdo.impl.jdoql.tree.NodeImpl>; //NOI18N
-    FLOAT = "float"           <AST=org.apache.jdo.impl.jdoql.tree.NodeImpl>; //NOI18N
-    LONG = "long"             <AST=org.apache.jdo.impl.jdoql.tree.NodeImpl>; //NOI18N
-    DOUBLE = "double"         <AST=org.apache.jdo.impl.jdoql.tree.NodeImpl>; //NOI18N
-    
-    // literals
-    
-    NULL = "null"   <AST=org.apache.jdo.impl.jdoql.tree.ConstantExpr>; //NOI18N
-    TRUE = "true"   <AST=org.apache.jdo.impl.jdoql.tree.BooleanLiteralExpr>; //NOI18N
-    FALSE = "false" <AST=org.apache.jdo.impl.jdoql.tree.BooleanLiteralExpr>; //NOI18N
-
-    // other tokens
-
-    EQUAL     <AST=org.apache.jdo.impl.jdoql.tree.EqualsExpr>;
-    NOT_EQUAL <AST=org.apache.jdo.impl.jdoql.tree.NotEqualsExpr>;
-    GE        <AST=org.apache.jdo.impl.jdoql.tree.GreaterThanEqualsExpr>;
-    GT        <AST=org.apache.jdo.impl.jdoql.tree.GreaterThanExpr>;
-    LE        <AST=org.apache.jdo.impl.jdoql.tree.LessThanEqualsExpr>;
-    LT        <AST=org.apache.jdo.impl.jdoql.tree.LessThanExpr>;
-
-    PLUS      <AST=org.apache.jdo.impl.jdoql.tree.PlusExpr>;
-    MINUS     <AST=org.apache.jdo.impl.jdoql.tree.MinusExpr>;
-    STAR      <AST=org.apache.jdo.impl.jdoql.tree.TimesExpr>;
-    DIV       <AST=org.apache.jdo.impl.jdoql.tree.DivideExpr>;
-
-    BOR       <AST=org.apache.jdo.impl.jdoql.tree.OrExpr>;
-    OR        <AST=org.apache.jdo.impl.jdoql.tree.ConditionalOrExpr>;
-    BAND      <AST=org.apache.jdo.impl.jdoql.tree.AndExpr>;
-    AND       <AST=org.apache.jdo.impl.jdoql.tree.ConditionalAndExpr>;
-    LNOT      <AST=org.apache.jdo.impl.jdoql.tree.NotExpr>;
-    BNOT      <AST=org.apache.jdo.impl.jdoql.tree.ComplementExpr>;
-
-    INT_LITERAL    <AST=org.apache.jdo.impl.jdoql.tree.IntLiteralExpr>;
-    LONG_LITERAL   <AST=org.apache.jdo.impl.jdoql.tree.IntLiteralExpr>;
-    FLOAT_LITERAL  <AST=org.apache.jdo.impl.jdoql.tree.FloatLiteralExpr>;
-    DOUBLE_LITERAL <AST=org.apache.jdo.impl.jdoql.tree.DoubleLiteralExpr>;
-    CHAR_LITERAL   <AST=org.apache.jdo.impl.jdoql.tree.CharLiteralExpr>;
-    STRING_LITERAL <AST=org.apache.jdo.impl.jdoql.tree.ConstantExpr>;
-    IDENT          <AST=org.apache.jdo.impl.jdoql.tree.IdentifierExpr>;
-
-    DOT <AST=org.apache.jdo.impl.jdoql.tree.NodeImpl>;
-
-    // lexer only
-
-    LPAREN;
-    RPAREN;
-    COMMA;
-    SEMI;
-    WS;
-    NEWLINE;
-    ESC; 
-    HEX_DIGIT;
-    EXPONENT;
-    FLOATINGPOINT_SUFFIX;
-    UNICODE_ESCAPE;
-    UNICODE_CHAR;
-}
-
-{
-    /** The error message support class. */
-    protected ErrorMsg errorMsg;
-    
-    /** The width of a tab stop. */
-    protected static final int TABSIZE = 4;
-
-    /** */
-    protected static final int EOF_CHAR = 65535; // = (char) -1 = EOF
-
-    /** I18N support. */
-    protected static final I18NHelper msg = I18NHelper.getInstance(
-        "org.apache.jdo.impl.jdoql.Bundle", JDOQLLexer.class.getClassLoader()); //NOI18N
-    
-    /**
-     *
-     */
-    public void init(ErrorMsg errorMsg)
-    {
-        this.errorMsg = errorMsg;
-    }
-    
-    /**
-     *
-     */
-    public void tab() 
-    {
-        int column = getColumn();
-        int newColumn = (((column-1)/TABSIZE)+1)*TABSIZE+1;
-        setColumn(newColumn);
-    }
-
-    /**
-     *
-     */
-    public void reportError(int line, int column, String s)
-    {
-        errorMsg.error(line, column, s);
-    }
-
-    /**
-     * Report lexer exception errors caught in nextToken()
-     */
-    public void reportError(RecognitionException e)
-    {
-        handleANTLRException(e, errorMsg);
-    }
-
-    /**
-     * Lexer error-reporting function
-     */
-    public void reportError(String s)
-    {
-        errorMsg.error(0, 0, s);
-    }
-
-    /**
-     * Lexer warning-reporting function
-     */
-    public void reportWarning(String s)
-    {
-        throw new JDOQueryException(s);
-    }
-
-    /**
-     *
-     */
-    public static void handleANTLRException(ANTLRException ex, ErrorMsg errorMsg)
-    {
-        if (ex instanceof MismatchedCharException) {
-            MismatchedCharException mismatched = (MismatchedCharException)ex;
-            if (mismatched.mismatchType == MismatchedCharException.CHAR) {
-                if (mismatched.foundChar == EOF_CHAR) {
-                    errorMsg.error(mismatched.getLine(), mismatched.getColumn(), 
-                        msg.msg("EXC_UnexpectedEOF")); //NOI18N
-                }
-                else {
-                    errorMsg.error(mismatched.getLine(), mismatched.getColumn(), 
-                        msg.msg("EXC_ExpectedCharFound", //NOI18N
-                            String.valueOf((char)mismatched.expecting), 
-                            String.valueOf((char)mismatched.foundChar)));
-                }
-                return;
-            }
-        }
-        else if (ex instanceof MismatchedTokenException) {
-            MismatchedTokenException mismatched = (MismatchedTokenException)ex;
-            Token token = mismatched.token;
-            if ((mismatched.mismatchType == MismatchedTokenException.TOKEN) &&
-                (token != null)) {
-                if (token.getType() == Token.EOF_TYPE) {
-                    errorMsg.error(token.getLine(), token.getColumn(), 
-                        msg.msg("EXC_UnexpectedEOF")); //NOI18N
-                }
-                else {
-                    errorMsg.error(token.getLine(), token.getColumn(), 
-                        msg.msg("EXC_SyntaxErrorAt", token.getText())); //NOI18N
-                }
-                return;
-            }
-        }
-        else if (ex instanceof NoViableAltException) {
-            Token token = ((NoViableAltException)ex).token;
-            if (token != null) {
-                if (token.getType() == Token.EOF_TYPE) {
-                    errorMsg.error(token.getLine(), token.getColumn(), 
-                        msg.msg("EXC_UnexpectedEOF")); //NOI18N
-                }
-                else {
-                    errorMsg.error(token.getLine(), token.getColumn(), 
-                        msg.msg("EXC_UnexpectedToken", token.getText())); //NOI18N
-                }
-                return;
-            }
-        }
-        else if (ex instanceof NoViableAltForCharException) {
-            NoViableAltForCharException noViableAlt = (NoViableAltForCharException)ex;
-            errorMsg.error(noViableAlt.getLine(), noViableAlt.getColumn(), 
-                msg.msg("EXC_UnexpectedChar", String.valueOf((char)noViableAlt.foundChar)));//NOI18N
-        }
-        else if (ex instanceof TokenStreamRecognitionException) {
-            handleANTLRException(((TokenStreamRecognitionException)ex).recog, errorMsg);
-        }
-
-        // no special handling from aboves matches the exception if this line is reached =>
-        // make it a syntax error
-        int line = 0;
-        int column = 0;
-        if (ex instanceof RecognitionException) {
-            line = ((RecognitionException)ex).getLine();
-            column = ((RecognitionException)ex).getColumn();
-        }
-        errorMsg.error(line, column, msg.msg("EXC_SyntaxError")); //NOI18N
-    }
-}
-
-// OPERATORS
-
-// The following Java operators are included although not supported by JDOQL:
-//   ASSIGN, DIV_ASSIGN, PLUS_ASSIGN, INC, MINUS_ASSIGN, DEC, STAR_ASSIGN, 
-//   SR, SL, BOR_ASSIGN, BAND_ASSIGN
-// The lexer recognizes them, but the parser will result in a syntax error.
-// This gurantees an error message. Othewise the java operator pre-decrement
-// is mapped to two unray minus. Two unray minus are valid in JDOQL, but not 
-// indented.
-
-LPAREN          :   '('     ;
-RPAREN          :   ')'     ;
-COMMA           :   ','     ;
-//DOT           :   '.'     ;
-ASSIGN          :   "="     ; //NOI18N
-EQUAL           :   "=="    ; //NOI18N
-LNOT            :   '!'     ;
-BNOT            :   '~'     ;
-NOT_EQUAL       :   "!="    ; //NOI18N
-DIV             :   '/'     ;
-DIV_ASSIGN      :   "/="    ; //NOI18N
-PLUS            :   '+'     ;
-PLUS_ASSIGN     :   "+="    ; //NOI18N
-INC             :   "++"    ; //NOI18N
-MINUS           :   '-'     ;
-MINUS_ASSIGN    :   "-="    ; //NOI18N
-DEC             :   "--"    ; //NOI18N
-STAR            :   '*'     ;
-STAR_ASSIGN     :   "*="    ; //NOI18N
-SR              :   ">>"    ; //NOI18N
-GE              :   ">="    ; //NOI18N
-GT              :   ">"     ; //NOI18N
-SL              :   "<<"    ; //NOI18N
-LE              :   "<="    ; //NOI18N
-LT              :   '<'     ;
-BOR             :   '|'     ;
-BOR_ASSIGN      :   "|="    ; //NOI18N
-OR              :   "||"    ; //NOI18N
-BAND            :   '&'     ;
-BAND_ASSIGN     :   "&="    ; //NOI18N
-AND             :   "&&"    ; //NOI18N
-SEMI            :   ';'     ;
-
-// Whitespace -- ignored
-WS
-    :   (   ' '
-        |   '\t'
-        |   '\f'
-        )+
-        { _ttype = Token.SKIP; }
-    ;
-
-NEWLINE
-    :   (   "\r\n"  //NOI18N
-        |   '\r'
-        |   '\n'
-        )
-        { 
-            newline(); 
-            _ttype = Token.SKIP; 
-        }
-    ;
-
-// character literals
-CHAR_LITERAL
-    :   '\'' ( ESC | ~'\'' ) '\'' 
-    ;
-
-// string literals
-STRING_LITERAL
-    :  '"' ( ESC | ~'"')* '"' //NOI18N
-    ;
-
-protected
-ESC
-    :   '\\'
-        (   'n'
-        |   'r'
-        |   't'
-        |   'b'
-        |   'f'
-        |   '"' //NOI18N
-        |   '\''
-        |   '\\'
-        |   ('u')+ HEX_DIGIT HEX_DIGIT HEX_DIGIT HEX_DIGIT 
-        |   ('0'..'3')
-            (
-                options {
-                    warnWhenFollowAmbig = false;
-                }
-            :   ('0'..'7')
-                (   
-                    options {
-                        warnWhenFollowAmbig = false;
-                    }
-                :   '0'..'7'
-                )?
-            )?
-        |   ('4'..'7')
-            (
-                options {
-                    warnWhenFollowAmbig = false;
-                }
-            :   ('0'..'9')
-            )?
-        )
-    ;
-
-protected
-HEX_DIGIT
-    :   ('0'..'9'|'A'..'F'|'a'..'f')
-    ;
-
-INT_LITERAL
-    {   
-        boolean isDecimal=false;
-        int tokenType = DOUBLE_LITERAL; 
-    }
-    :   '.' {_ttype = DOT;}
-            (('0'..'9')+ {tokenType = DOUBLE_LITERAL;}
-             (EXPONENT)? 
-             (tokenType = FLOATINGPOINT_SUFFIX)? 
-            { _ttype = tokenType; })?
-    |   (   '0' {isDecimal = true;} // special case for just '0'
-            (   ('x'|'X')
-                (
-                    options {
-                        warnWhenFollowAmbig=false;
-                    }
-                :   HEX_DIGIT
-                )+
-            |   ('0'..'7')+
-            )?
-        |   ('1'..'9') ('0'..'9')*  {isDecimal=true;}
-        )
-        (   ('l'|'L') { _ttype = LONG_LITERAL; }
-        |   {isDecimal}?
-            {tokenType = DOUBLE_LITERAL;} 
-            (   '.' ('0'..'9')* (EXPONENT)? 
-                (tokenType = FLOATINGPOINT_SUFFIX)?
-            |   EXPONENT (tokenType = FLOATINGPOINT_SUFFIX)?
-            |   tokenType = FLOATINGPOINT_SUFFIX
-            )
-            { _ttype = tokenType; }
-        )?
-    ;
-
-protected
-EXPONENT
-    :   ('e'|'E') ('+'|'-')? ('0'..'9')+
-    ;
-
-protected
-FLOATINGPOINT_SUFFIX returns [int tokenType]
-    : 'f' { tokenType = FLOAT_LITERAL; } 
-    | 'F' { tokenType = FLOAT_LITERAL; } 
-    | 'd' { tokenType = DOUBLE_LITERAL; } 
-    | 'D' { tokenType = DOUBLE_LITERAL; } 
-    ;
-
-IDENT
-    options {paraphrase = "an identifier"; testLiterals=true;} //NOI18N
-    :   (   'a'..'z'
-        |   'A'..'Z'
-        |   '_'
-        |   '$'
-        |   UNICODE_ESCAPE
-        |   c1:'\u0080'..'\uFFFE'
-            { 
-                if (!Character.isJavaIdentifierStart(c1)) {
-                    errorMsg.error(getLine(), getColumn(), 
-                        msg.msg("EXC_UnexpectedChar", String.valueOf(c1)));//NOI18N
-                }
-            }
-        ) 
-        (   'a'..'z'
-        |   'A'..'Z'
-        |   '_'
-        |   '$'
-        |   '0'..'9'
-        |   UNICODE_ESCAPE
-        |   c2:'\u0080'..'\uFFFE'
-            {   
-                if (!Character.isJavaIdentifierPart(c2)) {
-                    errorMsg.error(getLine(), getColumn(), 
-                        msg.msg("EXC_UnexpectedChar", String.valueOf(c2)));//NOI18N
-                }
-            }
-        )*
-    ;
-
-protected
-UNICODE_ESCAPE
-    : '\\' ('u')+ HEX_DIGIT HEX_DIGIT HEX_DIGIT HEX_DIGIT
-        {
-            try {
-                String tmp = text.toString();
-                char c  = (char)Integer.parseInt(tmp.substring(tmp.length() - 4, tmp.length()), 16);
-                // problems using ANTLR feature $setText => use generated code
-                text.setLength(_begin); 
-                text.append(new Character(c).toString());
-            }
-            catch (NumberFormatException ex) {
-                errorMsg.fatal(msg.msg("ERR_UnexpectedExceptionUnicode"), ex); //NOI18N
-            }
-        }
-    ;
-
-//===== Parser Class Definitions =====
-
-/**
- * This class defines the syntax analysis (parser) of the JDOQL compiler.
- *
- * @author  Michael Bouschen
- */
-class JDOQLParser extends Parser;
-
-options {
-    k = 2;                   // two token lookahead
-    exportVocab = JDOQL;
-    buildAST = true;
-    ASTLabelType = "JDOQLAST"; // NOI18N
-}
-
-tokens
-{
-    // "imaginary" tokens, that have no corresponding real input
-
-    QUERY_TREE             <AST=org.apache.jdo.impl.jdoql.tree.Tree>;
-    CANDIDATE_CLASS        <AST=org.apache.jdo.impl.jdoql.tree.CandidateClassImpl>;
-    PARAMETER_DECL         <AST=org.apache.jdo.impl.jdoql.tree.NodeImpl>;
-    VARIABLE_DECL          <AST=org.apache.jdo.impl.jdoql.tree.VariableDecl>;
-
-    // operators
-    OBJECT_EQUAL           <AST=org.apache.jdo.impl.jdoql.tree.EqualsExpr>;
-    OBJECT_NOT_EQUAL       <AST=org.apache.jdo.impl.jdoql.tree.NotEqualsExpr>;
-    COLLECTION_EQUAL       <AST=org.apache.jdo.impl.jdoql.tree.EqualsExpr>;
-    COLLECTION_NOT_EQUAL   <AST=org.apache.jdo.impl.jdoql.tree.NotEqualsExpr>;
-    UNARY_MINUS            <AST=org.apache.jdo.impl.jdoql.tree.UnaryMinusExpr>;
-    UNARY_PLUS             <AST=org.apache.jdo.impl.jdoql.tree.UnaryPlusExpr>;
-    CONCAT                 <AST=org.apache.jdo.impl.jdoql.tree.PlusExpr>;
-    CAST                   <AST=org.apache.jdo.impl.jdoql.tree.CastExpr>;
-
-    // special dot expressions
-    FIELD_ACCESS           <AST=org.apache.jdo.impl.jdoql.tree.FieldAccessExpr>;
-    STATIC_FIELD_ACCESS    <AST=org.apache.jdo.impl.jdoql.tree.FieldAccessExpr>;
-    NAVIGATION             <AST=org.apache.jdo.impl.jdoql.tree.FieldAccessExpr>;
-    CONTAINS               <AST=org.apache.jdo.impl.jdoql.tree.ContainsCallExpr>;
-    STARTS_WITH            <AST=org.apache.jdo.impl.jdoql.tree.StartsWithCallExpr>;
-    ENDS_WITH              <AST=org.apache.jdo.impl.jdoql.tree.EndsWithCallExpr>;
-    IS_EMPTY               <AST=org.apache.jdo.impl.jdoql.tree.IsEmptyCallExpr>;
-    
-    // identifier types
-    VARIABLE_ACCESS        <AST=org.apache.jdo.impl.jdoql.tree.VariableAccessExpr>;
-    PARAMETER_ACCESS       <AST=org.apache.jdo.impl.jdoql.tree.ParameterAccessExpr>;
-
-    // types
-    TYPE                   <AST=org.apache.jdo.impl.jdoql.tree.TypeImpl>;
-
-    // constant value
-    CONSTANT               <AST=org.apache.jdo.impl.jdoql.tree.ConstantExpr>;
-
-    // Query Tree nodes
-    BOOLEAN_LITERAL        <AST=org.apache.jdo.impl.jdoql.tree.BooleanLiteralExpr>;
-    BYTE_LITERAL           <AST=org.apache.jdo.impl.jdoql.tree.ByteLiteralExpr>;
-    SHORT_LITERAL          <AST=org.apache.jdo.impl.jdoql.tree.ShortLiteralExpr>;
-
-    // temporary node removed by Semantic
-    ARG_LIST               <AST=org.apache.jdo.impl.jdoql.tree.NodeImpl>;
-}
-
-{
-    /** The error message support class. */
-    protected ErrorMsg errorMsg;
-    
-    /** I18N support. */
-    protected final static I18NHelper msg = I18NHelper.getInstance(
-        "org.apache.jdo.impl.jdoql.Bundle", JDOQLParser.class.getClassLoader()); //NOI18N
-    
-    /**
-     *
-     */
-    public void init(ErrorMsg errorMsg)
-    {
-        this.errorMsg = errorMsg;
-    }
-    
-    /**
-     * ANTLR method called when an error was detected.
-     */
-    public void reportError(RecognitionException ex)
-    {
-        JDOQLLexer.handleANTLRException(ex, errorMsg);
-    }
-
-    /**
-     * ANTLR method called when an error was detected.
-     */
-    public void reportError(String s)
-    {
-        errorMsg.error(0, 0, s);
-    }
-
-    /**
-     *
-     */
-    public void reportError(int line, int column, String s)
-    {
-        errorMsg.error(line, column, s);
-    }
-
-    /**
-     * ANTLR method called when a warning was detected.
-     */
-    public void reportWarning(String s)
-    {
-        throw new JDOQueryException(s);
-    }
-
-}
-
-// ----------------------------------
-// rules: import declaration
-// ----------------------------------
-
-parseImports
-{   
-    errorMsg.setContext("declareImports");  //NOI18N
-}
-    :   ( declareImport ( SEMI! declareImport )* )? ( SEMI! )? EOF!
-    ;
-
-declareImport
-    :   i:IMPORT^ q:qualifiedNameStar
-        {
-            if (#q.getType() == STAR) {
-                #i.setType(IMPORT_ON_DEMAND);
-                #i.setFirstChild(#q.getFirstChild());
-            }
-        }
-    ;
-
-// ----------------------------------
-// rules: parameter declaration
-// ----------------------------------
-
-parseParameters
-{   
-    errorMsg.setContext("declareParameters"); //NOI18N
-}
-    :   ( declareParameter ( COMMA! declareParameter )* )? ( COMMA! )? EOF!
-    ;
-
-declareParameter
-    :   type IDENT
-        { 
-            ParameterDecl paramDecl = 
-                new ParameterDecl(new Token(PARAMETER_DECL,"parameterDecl")); //NOI18N
-            paramDecl.setFirstChild(#declareParameter);
-            #declareParameter = paramDecl;
-    }
-    ;
-
-// ----------------------------------
-// rules: variables declaration
-// ----------------------------------
-
-parseVariables
-{   
-    errorMsg.setContext("declareVariables");  //NOI18N
-}
-    :   ( declareVariable ( SEMI! declareVariable )* )? ( SEMI! )? EOF!
-    ;
-
-declareVariable
-    :   type IDENT
-        {  
-            VariableDecl variableDecl = 
-                new VariableDecl(new Token(VARIABLE_DECL,"variableDecl")); //NOI18N
-            variableDecl.setFirstChild(#declareVariable);
-            #declareVariable = variableDecl;
-        }
-    ;
-
-// ----------------------------------
-// rules ordering specification
-// ----------------------------------
-
-parseOrdering
-{   
-    errorMsg.setContext("setOrdering");  //NOI18N
-}
-    :   ( orderSpec ( COMMA! orderSpec )* )? ( COMMA! )? EOF!
-    ;
-
-orderSpec
-    :   e:expression ( ASCENDING^ | DESCENDING^ )
-    ; 
-
-// ----------------------------------
-// rules filer expression
-// ----------------------------------
-
-parseFilter
-{  
-    errorMsg.setContext("setFilter");  //NOI18N
-}
-    :   e:expression EOF!
-    ;
-
-// This is a list of expressions.
-expressionList
-    :   expression (COMMA! expression)*
-    ;
-
-expression
-    :   invalidExpression
-    ;
-
-// assignment expression: not supported => syntax error
-invalidExpression
-    :   conditionalOrExpression 
-        ( 
-            op:invalidOperator
-            {
-                errorMsg.error(#op.getLine(), #op.getColumn(), 
-                    msg.msg("EXC_UnexpectedToken", #op.getText())); //NOI18N
-            }
-            invalidExpression
-        )?
-    ;
-
-invalidOperator
-    :   ASSIGN | PLUS_ASSIGN | MINUS_ASSIGN | STAR_ASSIGN | 
-        DIV_ASSIGN | BAND_ASSIGN | BOR_ASSIGN | SR | SL
-    ;
-
-// conditional or ||
-conditionalOrExpression
-    :   conditionalAndExpression (OR^ conditionalAndExpression)*
-    ;
-
-// conditional and &&
-conditionalAndExpression
-    :   inclusiveOrExpression (AND^ inclusiveOrExpression)*
-    ;
-
-// bitwise or logical or |
-inclusiveOrExpression
-    :   andExpression (BOR^ andExpression)*
-    ;
-
-// bitwise or logical and &
-andExpression
-    :   equalityExpression (BAND^ equalityExpression)*
-    ;
-
-// equality/inequality ==/!=
-equalityExpression
-    :   relationalExpression ((NOT_EQUAL^ | EQUAL^) relationalExpression)*
-    ;
-// boolean relational expressions
-relationalExpression
-    :   additiveExpression
-        (   (   LT^
-            |   GT^
-            |   LE^
-            |   GE^
-            )
-            additiveExpression
-        )*
-    ;
-
-// binary addition/subtraction
-additiveExpression
-    :   multiplicativeExpression ((PLUS^ | MINUS^) multiplicativeExpression)*
-    ;
-// multiplication/division/modulo
-multiplicativeExpression
-    :   unaryExpression ((STAR^ | DIV^ ) unaryExpression)*
-    ;
-
-unaryExpression
-    :   MINUS^ {#MINUS.setType(UNARY_MINUS);} unaryExpression
-    |   PLUS^  {#PLUS.setType(UNARY_PLUS);} unaryExpression
-    |   i:INC^ unaryExpression
-        {
-            errorMsg.error(#i.getLine(), #i.getColumn(), 
-                msg.msg("EXC_UnexpectedToken", #i.getText())); //NOI18N
-        }
-    |   d:DEC^ unaryExpression
-        {
-            errorMsg.error(#d.getLine(), #d.getColumn(), 
-                msg.msg("EXC_UnexpectedToken", #d.getText())); //NOI18N
-        }
-    |   unaryExpressionNotPlusMinus
-    ;
-
-unaryExpressionNotPlusMinus
-    :   BNOT^ unaryExpression
-    |   LNOT^ unaryExpression
-    |   ( LPAREN type RPAREN unaryExpression )=>
-          lp:LPAREN^ {#lp.setType(CAST);} type RPAREN! unaryExpression
-    |   postfixExpression
-    ;
-
-// qualified names, field access, method invocation
-postfixExpression
-    :   primary
-        (   DOT^ IDENT ( argList )? )*
-    ;
-
-argList
-    :   LPAREN!
-        (   expressionList
-            {
-                NodeImpl argListRoot = new NodeImpl(new Token(ARG_LIST,"argList")); //NOI18N
-                argListRoot.setFirstChild(#argList);
-                #argList = argListRoot;
-            }
-        |   /* empty list */
-            {
-                NodeImpl argListRoot = new NodeImpl(new Token(ARG_LIST,"argList")); //NOI18N
-                #argList = argListRoot;
-            }
-        )
-        RPAREN!
-    ;
-
-// the basic element of an expression
-primary
-    :   IDENT
-    |   literal
-    |   THIS
-    |   LPAREN! expression RPAREN!
-    ;
-
-literal
-    :   TRUE
-    |   FALSE
-    |   INT_LITERAL
-    |   LONG_LITERAL
-    |   FLOAT_LITERAL
-    |   DOUBLE_LITERAL
-    |   c:CHAR_LITERAL
-        {
-            // strip quotes from the token text
-            String text = #c.getText();
-            #c.setText(text.substring(1,text.length()-1));
-        }
-    |   s:STRING_LITERAL
-        {
-            // strip quotes from the token text
-            String text = #s.getText();
-            #s.setText(text.substring(1,text.length()-1));
-        }
-    |   NULL
-    ;
-
-qualifiedName
-    :   IDENT ( DOT^ IDENT )*
-    ;
-
-qualifiedNameStar
-    :   IDENT ( DOT^ IDENT )* ( DOT! STAR^ )?
-    ;
-
-type
-    :   qualifiedName
-    |   primitiveType
-    ;
-
-// The primitive types.
-primitiveType
-    :   BOOLEAN
-    |   BYTE
-    |   CHAR
-    |   SHORT
-    |   INT
-    |   FLOAT
-    |   LONG
-    |   DOUBLE
-    ;
diff --git a/query20/src/java/org/apache/jdo/impl/jdoql/jdoqlc/JDOQLAST.java b/query20/src/java/org/apache/jdo/impl/jdoql/jdoqlc/JDOQLAST.java
deleted file mode 100644
index c3840fd..0000000
--- a/query20/src/java/org/apache/jdo/impl/jdoql/jdoqlc/JDOQLAST.java
+++ /dev/null
@@ -1,220 +0,0 @@
-/*
- * 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.
- */
-
-/*
- * JDOQLAST.java
- *
- * Created on August 28, 2001
- */
-
-package org.apache.jdo.impl.jdoql.jdoqlc;
-
-import org.apache.jdo.model.java.JavaType;
-
-import antlr.Token;
-import antlr.CommonAST;
-import antlr.collections.AST;
-
-
-/** 
- * This class represents a node in the intermediate representation (AST) 
- * used by the query compiler. 
- * It provides
- * - line info
- * - column info
- * - type info (JavaType instance): the semantic analysis calculates 
- *   the type of an expression and adds this info to each node.
- * @author  Michael Bouschen
- */
-public class JDOQLAST
-    extends CommonAST
-    implements Cloneable
-{
-    /** The line info */
-    protected int line = 0;
-
-    /** The column info */
-    protected int column = 0;
-
-    /** The type info */
-    protected transient JavaType typeInfo;
-
-    /** */
-    public JDOQLAST()
-    {
-    }
-
-    /** */
-    public JDOQLAST(int type, String text, JavaType typeInfo)
-    {
-        initialize(type, text, typeInfo);
-    }
-
-    /** */
-    public JDOQLAST(JDOQLAST ast)
-    {
-        initialize(ast);
-    }
-    
-    /** */
-    public void initialize(Token t)
-    {
-        setType(t.getType());
-        setText(t.getText());
-        setLine(t.getLine());
-        setColumn(t.getColumn());
-    }
-
-    /** */
-    public void initialize(int type, String text, JavaType typeInfo)
-    {
-        setType(type);
-        setText(text);
-        setTypeInfo(typeInfo);
-    }
-
-    /** */
-    public void initialize(AST _ast)
-    {
-        JDOQLAST ast = (JDOQLAST)_ast;
-        setType(ast.getType());
-        setText(ast.getText());
-        setLine(ast.getLine());
-        setColumn(ast.getColumn());
-        setTypeInfo(ast.getTypeInfo());
-    }
-    
-    /** */
-    public void setLine(int line)
-    {
-        this.line = line;
-    }
-
-    /** */
-    public int getLine()
-    {
-        return line;
-    }
-
-    /** */
-    public void setColumn(int column)
-    {
-        this.column = column;
-    }
-
-    /** */
-    public int getColumn()
-    {
-        return column;
-    }
-
-    /** */
-    public void setTypeInfo(JavaType typeInfo)
-    {
-        this.typeInfo = typeInfo;
-    }
-
-    /** */
-    public JavaType getTypeInfo()
-    {
-        return typeInfo;
-    }
-
-    /** 
-     * Returns a string representation of this JDOQLAST.
-     * @return a string representation of the object.
-     */
-    public String toString()
-    {
-        JavaType typeInfo = getTypeInfo();
-        StringBuffer repr = new StringBuffer();
-        // token text
-        repr.append((getText() == null ? "null" : getText())); //NOI18N
-        repr.append(" ["); //NOI18N
-        // token type
-        repr.append(getType());
-        // line/column info
-        repr.append(", ("); //NOI18N
-        repr.append(getLine() + "/" + getColumn()); //NOI18N
-        repr.append("), "); //NOI18N
-        // type info
-        repr.append(typeInfo);
-        repr.append(", "); //NOI18N
-        // node class info
-        String className = getClass().getName();
-        int index = className.lastIndexOf('.');
-        if (index > -1)
-            className = className.substring(index+1);
-        repr.append(className);
-        repr.append("]"); //NOI18N
-        return repr.toString();
-    }
-
-    /**
-     * Returns a string representation of this JDOQLAST including 
-     * all child nodes.
-     * @return a string representation of this JDOQLAST including all
-     * child nodes.
-     */
-    public String treeToString() 
-    {
-        StringBuffer repr = new StringBuffer();
-        treeToString(0, repr);
-        return repr.toString();
-    }
-
-    /**
-     * Creates and returns a copy of this object.
-     * The returned JDOQLAST shares the same state as this object, meaning 
-     * the fields type, text, line, column, and typeInfo have the same values. 
-     * But it is not bound to any tree structure, thus the child is null 
-     * and the sibling is null.
-     * @return a clone of this instance.
-     */
-    protected Object clone()
-        throws CloneNotSupportedException
-    {
-        JDOQLAST clone = (JDOQLAST)super.clone();
-        clone.setFirstChild(null);
-        clone.setNextSibling(null);
-        return clone;
-    }
-    
-    // Internal helper method
-
-    /** */
-    private void treeToString(int indent, StringBuffer repr) 
-    {
-        // indent
-        for (int i = 0; i < indent; i++) {
-            repr.append("   "); //NOI18N
-        }
-
-        // append string representation of current node
-        repr.append(toString());
-
-        // child nodes in new line
-        repr.append("\n");
-
-        // append string representation(s) of child nodes
-        for (JDOQLAST node = (JDOQLAST)this.getFirstChild(); 
-             node != null; 
-             node = (JDOQLAST)node.getNextSibling()) {
-            node.treeToString(indent+1, repr);
-        }
-    }
-}
-
diff --git a/query20/src/java/org/apache/jdo/impl/jdoql/jdoqlc/JDOQLASTFactory.java b/query20/src/java/org/apache/jdo/impl/jdoql/jdoqlc/JDOQLASTFactory.java
deleted file mode 100644
index 28c2d9c..0000000
--- a/query20/src/java/org/apache/jdo/impl/jdoql/jdoqlc/JDOQLASTFactory.java
+++ /dev/null
@@ -1,95 +0,0 @@
-/*
- * 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.
- */
-
-/*
- * JDOQLASTFactory.java
- *
- * Created on September 3, 2001
- */
-
-package org.apache.jdo.impl.jdoql.jdoqlc;
-
-import antlr.collections.AST;
-import antlr.ASTFactory;
-
-import javax.jdo.JDOFatalInternalException;
-
-import org.apache.jdo.util.I18NHelper;
-
-/** 
- * Factory to create and connect JDOQLAST nodes.
- *
- * @author  Michael Bouschen
- */
-public class JDOQLASTFactory
-    extends ASTFactory
-{
-    /** The singleton JDOQLASTFactory instance. */    
-    private static JDOQLASTFactory factory = new JDOQLASTFactory();
-
-    /** I18N support. */
-    private final static I18NHelper msg = I18NHelper.getInstance(
-        "org.apache.jdo.impl.jdoql.Bundle", JDOQLASTFactory.class.getClassLoader()); //NOI18N
-    
-    /** 
-     * Get an instance of JDOQLASTFactory.
-     * @return an instance of JDOQLASTFactory
-     */    
-    public static JDOQLASTFactory getInstance()
-    {
-        return factory;
-    }
-    
-    /**
-     *
-     */
-    protected JDOQLASTFactory()
-    {
-        this.theASTNodeTypeClass = JDOQLAST.class;
-        this.theASTNodeType = this.theASTNodeTypeClass.getName();
-    }
-    
-    /**
-     *
-     */
-    public AST create() 
-    {
-        return new JDOQLAST();
-    }
-
-    /**
-     *
-     */
-    public AST create(AST tr) 
-    { 
-        return create((JDOQLAST)tr);
-    }
-
-    /**
-     *
-     */
-    public JDOQLAST create(JDOQLAST tr) 
-    { 
-        try {
-            return (tr==null) ? null : (JDOQLAST)tr.clone();
-        }
-        catch(CloneNotSupportedException ex) {
-            throw new JDOFatalInternalException(
-                msg.msg("ERR_UnexpectedExceptionClone"), ex); //NOI18N
-        }
-    }
-}
-
diff --git a/query20/src/java/org/apache/jdo/impl/jdoql/jdoqlc/JDOQLC.java b/query20/src/java/org/apache/jdo/impl/jdoql/jdoqlc/JDOQLC.java
deleted file mode 100644
index 465753c..0000000
--- a/query20/src/java/org/apache/jdo/impl/jdoql/jdoqlc/JDOQLC.java
+++ /dev/null
@@ -1,326 +0,0 @@
-/*
- * 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.
- */
-
-/*
- * JDOQLC.java
- *
- * Created on August 28, 2001
- */
-
-package org.apache.jdo.impl.jdoql.jdoqlc;
-
-import java.io.Reader;
-import java.io.StringReader;
-import java.util.Collection;
-
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-
-import org.apache.jdo.impl.jdoql.scope.ParameterTable;
-import org.apache.jdo.impl.jdoql.scope.VariableTable;
-import org.apache.jdo.impl.jdoql.tree.Tree;
-import org.apache.jdo.jdoql.JDOQueryException;
-import org.apache.jdo.pm.PersistenceManagerInternal;
-import org.apache.jdo.util.I18NHelper;
-
-import antlr.TokenBuffer;
-import antlr.ANTLRException;
-
-/** 
- * This class controls the JDOQL compiler passes.
- *
- * @author  Michael Bouschen
- */
-public class JDOQLC
-{
-    /** The persistence manager of the query instance. */
-    protected PersistenceManagerInternal pm;
-
-    /** Type support. */
-    protected TypeSupport typeSupport;
-
-    /** Error message helper. */
-    protected ErrorMsg errorMsg;    
-    
-    /** The candidate class. */
-    protected Class candidateClass;
-    
-    /** The AST representing the filter expression. */
-    protected JDOQLAST filterAST = null;
-    
-    /** The AST representing the import declarations. */
-    protected JDOQLAST importsAST = null;
-    
-    /** The AST representing the parameter declarations. */
-    protected JDOQLAST paramsAST = null;
-    
-    /** The AST representing the variable declarations. */
-    protected JDOQLAST varsAST = null;
-    
-    /** The AST representing the ordering specification. */
-    protected JDOQLAST orderingAST = null;
-
-    /** The complete query tree. */
-    protected JDOQLAST queryTree = null;
-    
-    /** I18N support */
-    private final static I18NHelper msg = I18NHelper.getInstance(
-        "org.apache.jdo.impl.jdoql.Bundle", //NOI18N
-        JDOQLC.class.getClassLoader());
-
-    /** Logger */
-    private static Log logger = LogFactory.getFactory().getInstance(
-        "org.apache.jdo.impl.jdoql.jdoqlc"); //NOI18N
-    
-    /**
-     *
-     */
-    public JDOQLC(PersistenceManagerInternal pm)
-    {
-        this.pm = pm;
-        this.typeSupport = new TypeSupport();
-        this.errorMsg = new ErrorMsg();
-    }
-    
-    /**
-     *
-     */
-    public void setClass(Class candidateClass)
-    {
-        // Method semanticCheck checks for valid candidateClass
-        this.candidateClass = candidateClass;
-    }
-
-    /**
-     *
-     */
-    public void declareImports(String imports)
-    {
-        if (imports == null) {
-            importsAST = null;
-            return;
-        }
-
-        try {
-            JDOQLParser parser = createStringParser(imports);
-            parser.parseImports();
-            importsAST = (JDOQLAST)parser.getAST();        
-        }
-        catch (ANTLRException ex) {
-            JDOQLLexer.handleANTLRException(ex, errorMsg);
-        }
-    }
-    
-    /**
-     *
-     */
-    public void declareParameters(String parameters)
-    {
-        if (parameters == null) { 
-            paramsAST = null;
-            return;
-        }
-        
-        try {
-            JDOQLParser parser = createStringParser(parameters);
-            parser.parseParameters();
-            paramsAST = (JDOQLAST)parser.getAST();        
-        }
-        catch (ANTLRException ex) {
-            JDOQLLexer.handleANTLRException(ex, errorMsg);
-        }
-    }
-    
-    /**
-     *
-     */
-    public void declareVariables(String variables)
-    {
-        if (variables == null) {
-            varsAST = null;
-            return;
-        }
-        
-        try {
-            JDOQLParser parser = createStringParser(variables);
-            parser.parseVariables();
-            varsAST = (JDOQLAST)parser.getAST();        
-        }
-        catch (ANTLRException ex) {
-            JDOQLLexer.handleANTLRException(ex, errorMsg);
-        }
-    }
-    
-    /**
-     *
-     */
-    public void setOrdering(String ordering)
-    {
-        if (ordering == null) {
-            orderingAST = null;
-            return;
-        }
-        
-        try {
-            JDOQLParser parser = createStringParser(ordering);
-            parser.parseOrdering();
-            orderingAST = (JDOQLAST)parser.getAST();        
-        }
-        catch (ANTLRException ex) {
-            JDOQLLexer.handleANTLRException(ex, errorMsg);
-        }
-    }
-    
-    /**
-     *
-     */
-    public void setFilter(String filter)
-    {
-        if ((filter == null) || (filter.trim().length() == 0)) {
-            // If there is no filter specified use "true" as filter.
-            // This is the case if 
-            // - setFilter is not called at all (filter == null)
-            // - the filter is empty or contians whitespecace only.
-            // Internally the filter has to be specified, 
-            // otherwise semantic analysis has problems with empty AST.
-            filter = "true"; //NOI18N
-        }
-        
-        try {
-            JDOQLParser parser = createStringParser(filter);
-            parser.parseFilter();
-            filterAST = (JDOQLAST)parser.getAST();        
-        }
-        catch (ANTLRException ex) {
-            JDOQLLexer.handleANTLRException(ex, errorMsg);
-        }
-     }
-
-    /**
-     *
-     */
-    public void setQueryTree(JDOQLAST queryTree)
-    {
-        this.queryTree = queryTree;
-    }
-
-    /**
-     *
-     */
-    public JDOQLAST semanticCheck(ParameterTable paramtab, VariableTable vartab)
-    {
-        boolean trace = logger.isTraceEnabled();
-        ClassLoader applClassLoader = null;
-
-        Semantic semantic = new Semantic();
-        semantic.init(typeSupport, paramtab, vartab, errorMsg);
-        semantic.setASTFactory(JDOQLASTFactory.getInstance());
-
-        if (queryTree == null) {
-            // check candidate class
-            if (candidateClass == null) {
-                throw new JDOQueryException(
-                    msg.msg("EXC_MissingCandidateClass")); //NOI18N
-            }
-            applClassLoader = candidateClass.getClassLoader();
-            // create complete tree representation
-            queryTree = semantic.createQueryTree(
-                candidateClass, importsAST, paramsAST, 
-                varsAST, orderingAST, filterAST);
-        }
-        else {
-            Tree tree = (Tree)queryTree;
-            Class clazz = tree.getCandidateClass();
-            if (clazz != null)
-                applClassLoader = clazz.getClassLoader();
-            tree.initANTLRAST();
-        }
-
-        // set the candidateClass class loader
-        typeSupport.initApplicationJavaModel(applClassLoader);
-
-        if (trace)
-            logger.trace("AST\n" + queryTree.treeToString()); //NOI18N
-
-        try {
-            if (logger.isDebugEnabled())
-                logger.debug("Start semantic analysis"); //NOI18N
-            semantic.query(queryTree);
-            queryTree = (JDOQLAST)semantic.getAST();
-            if (trace)
-                logger.trace("Typed AST\n" + queryTree.treeToString()); //NOI18N
-        }
-        catch (ANTLRException ex) {
-            ex.printStackTrace();
-            errorMsg.fatal(
-                msg.msg("ERR_UnexpectedExceptionSemantic"), ex); //NOI18N
-        }
-        return queryTree;
-    }
-
-    /**
-     *
-     */
-    public JDOQLAST optimize(JDOQLAST tree)
-    {
-        // Do not include parameters into optimization => paramtab == null
-        return optimize(tree, null);
-    }
-
-    /**
-     *
-     */
-    public JDOQLAST optimize(JDOQLAST tree, ParameterTable paramtab)
-    {
-        Tree ast = null;
-        Optimizer optimizer= new Optimizer();
-        optimizer.init(pm, paramtab, errorMsg);
-        optimizer.setASTFactory(JDOQLASTFactory.getInstance());
-        
-        try {
-            if (logger.isDebugEnabled())
-                logger.debug("START optimizer"); //NOI18N
-            optimizer.query(tree);
-            ast = (Tree)optimizer.getAST();
-            if (logger.isTraceEnabled())
-                logger.trace("Optimized AST\n" + queryTree.treeToString()); //NOI18N
-        }
-        catch (ANTLRException ex) {
-            ex.printStackTrace();
-            errorMsg.fatal(
-                msg.msg("ERR_UnexpectedExceptionOptimizer"), ex); //NOI18N
-        }
-        return ast;
-    }
-
-    //========= Internal helper methods ==========
-    
-    /**
-     *
-     */
-    private JDOQLParser createStringParser(String text)
-    {
-        Reader in = new StringReader(text);
-        JDOQLLexer lexer = new JDOQLLexer(in);
-        lexer.init(errorMsg);
-        TokenBuffer buffer = new TokenBuffer(lexer);
-        JDOQLParser parser = new JDOQLParser(buffer);
-        parser.init(errorMsg);
-        parser.setASTFactory(JDOQLASTFactory.getInstance());
-        return parser;
-    }
-    
-}
diff --git a/query20/src/java/org/apache/jdo/impl/jdoql/jdoqlc/Optimizer.g b/query20/src/java/org/apache/jdo/impl/jdoql/jdoqlc/Optimizer.g
deleted file mode 100644
index 13f7546..0000000
--- a/query20/src/java/org/apache/jdo/impl/jdoql/jdoqlc/Optimizer.g
+++ /dev/null
@@ -1,1313 +0,0 @@
-/*
- * 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.
- */
-
-/*
- * Optimizer.g
- *
- * Created on August 28, 2001
- */
-
-header
-{
-    package org.apache.jdo.impl.jdoql.jdoqlc;
-    
-    import java.util.Collection;
-    
-    import java.math.BigDecimal;
-    import java.math.BigInteger;
-
-    import java.lang.reflect.Field;
-    import java.security.AccessController;
-    import java.security.PrivilegedAction;
-
-    import org.apache.jdo.model.java.JavaField;
-    import org.apache.jdo.model.java.JavaType;
-    import org.apache.jdo.impl.model.java.PredefinedType;
-    import org.apache.jdo.impl.model.java.WrapperClassType;
-
-    import org.apache.jdo.pm.PersistenceManagerInternal;
-    import org.apache.jdo.util.I18NHelper;
-    import org.apache.jdo.impl.jdoql.tree.*;
-    import org.apache.jdo.impl.jdoql.scope.ParameterTable;
-}
-
-/**
- * This class defines the optimizer pass of the JDOQL compiler.
- * It takes the typed AST as produced by the smenatic analysis and
- * converts it into a simpler but equivalent typed AST.
- * 
- * @author  Michael Bouschen
- */
-class Optimizer extends TreeParser;
-
-options
-{
-    importVocab = JDOQL;
-    buildAST = true;
-    defaultErrorHandler = false;
-    ASTLabelType = "JDOQLAST"; //NOI18N
-}
-
-{
-    /** The persistence manager of the query instance. */
-    protected PersistenceManagerInternal pm;
-
-    /** The error message support class. */
-    protected ErrorMsg errorMsg;
-    
-    /** The query parameter table */
-    protected ParameterTable paramtab;
-    
-    /** Flag indicating whether query parameers should be included. */
-    protected boolean optimizeParameters;
-
-    /** I18N support */
-    protected final static I18NHelper msg = I18NHelper.getInstance(
-        "org.apache.jdo.impl.jdoql.Bundle", Optimizer.class.getClassLoader()); //NOI18N
-    
-    /**
-     *
-     */
-    public void init(PersistenceManagerInternal pm,
-                     ParameterTable paramtab, ErrorMsg errorMsg)
-    {
-        this.pm = pm;
-        this.errorMsg = errorMsg;
-        this.paramtab = paramtab;
-        this.optimizeParameters = (paramtab != null);
-    }
-
-    /**
-     *
-     */
-    public void reportError(RecognitionException ex) {
-        errorMsg.fatal(msg.msg("ERR_OptimizerError", ex)); //NOI18N
-    }
-
-    /**
-     *
-     */
-    public void reportError(String s) {
-        errorMsg.fatal(msg.msg("ERR_OptimizerError") + s); //NOI18N
-    }
-
-    /**
-     * Converts the string argument into a single char.
-     */
-    protected static char parseChar(String text)
-    {
-        char first = text.charAt(0);
-        if (first == '\\') {
-            //found escape => check the next char
-            char second = text.charAt(1);
-            switch (second)
-            {
-            case 'n': return '\n';
-            case 'r': return '\r';
-            case 't': return '\t';
-            case 'b': return '\b';
-            case 'f': return '\f';
-            case 'u': 
-                // unicode spec
-                return (char)Integer.parseInt(text.substring(2, text.length()), 16);
-            case '0':            
-            case '1':
-            case '2':
-            case '3':            
-            case '4':
-            case '5':            
-            case '6':
-            case '7': 
-                // octal spec 
-                return (char)Integer.parseInt(text.substring(1, text.length()), 8);
-            default : return second;
-            }
-        }
-        return first;
-    }
-
-    /**
-     * Check an AND operation (BAND, AND) for constant operands 
-     * that could be optimized.
-     * @param op the AND operator
-     * @param left the left operand
-     * @param right the right operand
-     * @return optimized JDOQLAST 
-     */
-    protected JDOQLAST checkAnd(JDOQLAST op, JDOQLAST left, JDOQLAST right)
-    {
-        JDOQLAST ast = op;
-
-        if (isBooleanValueAST(left)) {
-            ast = handleValueAndExpr(op, ((ConstantExpr)left).getValue(), right);
-        }
-        else if (isBooleanValueAST(right)) {
-            ast = handleValueAndExpr(op, ((ConstantExpr)right).getValue(), left);
-        }
-        return ast;
-    }
-
-    /**
-     * Check an OR operation (BOR, OR) for constant operands 
-     * that could be optimized.
-     * @param op the OR operator
-     * @param left the left operand
-     * @param right the right operand
-     * @return optimized JDOQLAST 
-     */
-    protected JDOQLAST checkOr(JDOQLAST op, JDOQLAST left, JDOQLAST right)
-    {
-        JDOQLAST ast = op;
-
-        if (isBooleanValueAST(left)) {
-            ast = handleValueOrExpr(op, ((ConstantExpr)left).getValue(), right);
-        }
-        else if (isBooleanValueAST(right)) {
-            ast = handleValueOrExpr(op, ((ConstantExpr)right).getValue(), left);
-        }
-        return ast;
-    }
-
-    /**
-     * Check a equality operation (EQUAL, NOT_EQUAL) for constant operands
-     * that could be optimized.
-     * @param op the equality operator
-     * @param left the left operand
-     * @param right the right operand
-     * @param negate true for not equal operation, false otherwise
-     * @return optimized JDOQLAST 
-     */
-    protected JDOQLAST checkEqualityOp(JDOQLAST op, JDOQLAST left, 
-                                       JDOQLAST right, boolean negate)
-    {
-        JDOQLAST ast = op;
-        
-        // case <CONSTANT> <op> <CONSTANT> 
-        if ((left.getType() == CONSTANT) && (right.getType() == CONSTANT)) {
-            ast = handleValueEqValue(op, left, right, negate);
-        }
-        // case <boolean CONSTANT> <op> <expr>
-        else if (isBooleanValueAST(left)) {
-            ast = handleBooleanValueEqExpr(op, ((ConstantExpr)left).getValue(), 
-                                           right, negate);
-        }
-        // case <expr> <op> <boolean CONSTANT>
-        else if (isBooleanValueAST(right)) {
-            ast = handleBooleanValueEqExpr(op, ((ConstantExpr)right).getValue(),
-                                           left, negate);
-        }
-        return ast;
-    }
-
-    /**
-     * Check a object equality operation (OBJECT_EQUAL, OBJECT_NOT_EQUAL) 
-     * for constant operands that could be optimized.
-     * @param op the object equality operator
-     * @param left the left operand
-     * @param right the right operand
-     * @param negate true for not equal operation, false otherwise
-     * @return optimized JDOQLAST 
-     */
-    protected JDOQLAST checkObjectEqualityOp(JDOQLAST op, JDOQLAST left, 
-                                             JDOQLAST right, boolean negate)
-    {
-        JDOQLAST ast = op;
-
-        if ((left.getType() == CONSTANT) && (right.getType() == CONSTANT)) {
-            ast = handleValueEqValue(op, left, right, negate);
-        }
-        return ast;
-    }
-
-    /**
-     * Check a collection equality operation (COLLECTION_EQUAL, 
-     * COLLECTION_NOT_EQUAL) for constant operands that could be optimized.
-     * @param op the collection equality operator
-     * @param left the left operand
-     * @param right the right operand
-     * @param negate true for not equal operation, false otherwise
-     * @return optimized JDOQLAST 
-     */
-    protected JDOQLAST checkCollectionEqualityOp(JDOQLAST op, JDOQLAST left, 
-                                                 JDOQLAST right, boolean negate)
-    {
-        JDOQLAST ast = op;
-        boolean isLeftConstant = (left.getType() == CONSTANT);
-        boolean isRightConstant = (right.getType() == CONSTANT);
-        
-        if (isLeftConstant && isRightConstant) {
-            ast = handleValueEqValue(op, left, right, negate);
-        }
-        return ast;
-    }
-
-    /**
-     * Check a logical not operation (LNOT) for a constant operand 
-     * that could be optimized.
-     * @param op the logical not operator
-     * @param arg the operand
-     * @return optimized JDOQLAST 
-     */
-    protected JDOQLAST checkLogicalNotOp(JDOQLAST op, JDOQLAST arg)
-    {
-        JDOQLAST ast = op;
-
-        if (arg.getType() == CONSTANT) {
-            // !value may be calculated at compile time.
-            Object valueObj = ((ConstantExpr)arg).getValue();
-            Boolean value = (valueObj instanceof Boolean) ? 
-                            new Boolean(!((Boolean)valueObj).booleanValue()) :
-                            Boolean.TRUE;
-            ast = ConstantExpr.newConstant(value);
-            ast.setType(CONSTANT);
-            ast.setText(value.toString());
-            ast.setTypeInfo(op.getTypeInfo());
-        }
-        return ast;
-    }
-
-    /**
-     * Check a binary plus operation (PLUS) for constant operands
-     * that could be optimized.
-     * @param op the plus operator
-     * @param left the left operand
-     * @param right the right operand
-     * @return optimized JDOQLAST 
-     */
-    protected JDOQLAST checkBinaryPlusOp(JDOQLAST op, JDOQLAST left, 
-                                         JDOQLAST right)
-    {
-        JDOQLAST ast = op;
-
-        if ((left.getType() == CONSTANT) && (right.getType() == CONSTANT)) {
-            Object leftValue = ((ConstantExpr)left).getValue();
-            Object rightValue = ((ConstantExpr)right).getValue();
-            Object value = null;
-            if (leftValue == null)
-                value = rightValue;
-            else if (rightValue == null)
-                value = leftValue;
-            else {
-                JavaType type = op.getTypeInfo();
-                
-                if (type.isWrapperClass())
-                    type = ((WrapperClassType)type).getWrappedPrimitiveType();
-                
-                if (type.equals(PredefinedType.intType))
-                    value = new Integer(((Number)leftValue).intValue() + 
-                        ((Number)rightValue).intValue());
-                else if (type.equals(PredefinedType.longType))
-                    value = new Long(((Number)leftValue).longValue() + 
-                        ((Number)rightValue).longValue());
-                else if (type.equals(PredefinedType.floatType))
-                    value = new Float(((Number)leftValue).floatValue() + 
-                        ((Number)rightValue).floatValue());
-                else if (type.equals(PredefinedType.doubleType))
-                    value = new Double(((Number)leftValue).doubleValue() + 
-                        ((Number)rightValue).doubleValue());
-                else if (type.equals(PredefinedType.bigDecimalType))
-                    value = getBigDecimalValue(leftValue).add(
-                       getBigDecimalValue(rightValue));
-                else if (type.equals(PredefinedType.bigIntegerType))
-                    value = getBigIntegerValue(leftValue).add(
-                        getBigIntegerValue(rightValue));
-                else 
-                    errorMsg.fatal(msg.msg("ERR_OptmizerInvalidType", //NOI18N
-                        "checkBinaryPlusOp", type)); //NOI18N
-            }
-            ast = ConstantExpr.newConstant(value);
-            ast.setType(CONSTANT);
-            ast.setText(value.toString());
-            ast.setTypeInfo(op.getTypeInfo());
-        }
-        return ast;
-    }
-    
-    /**
-     * Check a string concatenation operation (CONCAT) for constant operands
-     * that could be optimized.
-     * @param op the concat operator
-     * @param left the left operand
-     * @param right the right operand
-     * @return optimized JDOQLAST 
-     */
-    protected JDOQLAST checkConcatOp(JDOQLAST op, JDOQLAST left, JDOQLAST right)
-    {
-        JDOQLAST ast = op;
-
-        if ((left.getType() == CONSTANT) && (right.getType() == CONSTANT)) {
-            Object leftValue = ((ConstantExpr)left).getValue();
-            Object rightValue = ((ConstantExpr)right).getValue();
-            Object value = null;
-            if (leftValue == null)
-                value = rightValue;
-            else if (rightValue == null)
-                value = leftValue;
-            else 
-                value = leftValue.toString() + rightValue.toString();
-            ast = ConstantExpr.newConstant(value);
-            ast.setType(CONSTANT);
-            ast.setText(value.toString());
-            ast.setTypeInfo(op.getTypeInfo());
-        }
-        return ast;
-    }
-
-    /**
-     * Check a binary minus operation (MINUS) for constant operands
-     * that could be optimized.
-     * @param op the minus operator
-     * @param left the left operand
-     * @param right the right operand
-     * @return optimized JDOQLAST 
-     */
-    protected JDOQLAST checkBinaryMinusOp(JDOQLAST op, JDOQLAST left, 
-                                          JDOQLAST right)
-    {
-        JDOQLAST ast = op;
-
-        if ((left.getType() == CONSTANT) && (right.getType() == CONSTANT)) {
-            Object leftValue = ((ConstantExpr)left).getValue();
-            Object rightValue = ((ConstantExpr)right).getValue();
-            Object value = null;
-            if (rightValue == null)
-                value = leftValue;
-            else {
-                if (leftValue == null)
-                    leftValue = new Integer(0);
-                
-                JavaType type = op.getTypeInfo();
-                
-                if (type.isWrapperClass())
-                    type = ((WrapperClassType)type).getWrappedPrimitiveType();
-                
-                if (type.equals(PredefinedType.intType))
-                    value = new Integer(((Number)leftValue).intValue() -
-                        ((Number)rightValue).intValue());
-                else if (type.equals(PredefinedType.longType))
-                    value = new Long(((Number)leftValue).longValue() -
-                        ((Number)rightValue).longValue());
-                else if (type.equals(PredefinedType.floatType))
-                    value = new Float(((Number)leftValue).floatValue() - 
-                        ((Number)rightValue).floatValue());
-                else if (type.equals(PredefinedType.doubleType))
-                    value = new Double(((Number)leftValue).doubleValue() - 
-                        ((Number)rightValue).doubleValue());
-                else if (type.equals(PredefinedType.bigDecimalType))
-                    value = getBigDecimalValue(leftValue).subtract(
-                       getBigDecimalValue(rightValue));
-                else if (type.equals(PredefinedType.bigIntegerType))
-                    value = getBigIntegerValue(leftValue).subtract(
-                        getBigIntegerValue(rightValue));
-                else 
-                    errorMsg.fatal(msg.msg("ERR_OptmizerInvalidType", //NOI18N
-                        "checkBinaryMinusOp", type)); //NOI18N
-            }
-            ast = ConstantExpr.newConstant(value);
-            ast.setType(CONSTANT);
-            ast.setText(value.toString());
-            ast.setTypeInfo(op.getTypeInfo());
-        }
-        return ast;
-    }
-    
-    /**
-     * Check a binary multiplication operation (STAR) for constant operands
-     * that could be optimized.
-     * @param op the multiplication operator
-     * @param left the left operand
-     * @param right the right operand
-     * @return optimized JDOQLAST 
-     */
-    protected JDOQLAST checkMultiplicationOp(JDOQLAST op, JDOQLAST left, 
-                                             JDOQLAST right)
-    {
-        JDOQLAST ast = op;
-
-        if ((left.getType() == CONSTANT) && (right.getType() == CONSTANT)) {
-            Object leftValue = ((ConstantExpr)left).getValue();
-            Object rightValue = ((ConstantExpr)right).getValue();
-            Object value = null;
-            if (leftValue == null)
-                leftValue = new Integer(0);
-            if (rightValue == null)
-                rightValue = new Integer(0);
-            JavaType type = op.getTypeInfo();
-                
-            if (type.isWrapperClass())
-                type = ((WrapperClassType)type).getWrappedPrimitiveType();
-                
-            if (type.equals(PredefinedType.intType))
-                value = new Integer(((Number)leftValue).intValue() *
-                    ((Number)rightValue).intValue());
-            else if (type.equals(PredefinedType.longType))
-                value = new Long(((Number)leftValue).longValue() *
-                    ((Number)rightValue).longValue());
-            else if (type.equals(PredefinedType.floatType))
-                value = new Float(((Number)leftValue).floatValue() * 
-                    ((Number)rightValue).floatValue());
-            else if (type.equals(PredefinedType.doubleType))
-                value = new Double(((Number)leftValue).doubleValue() * 
-                    ((Number)rightValue).doubleValue());
-            else if (type.equals(PredefinedType.bigDecimalType))
-                value = getBigDecimalValue(leftValue).multiply(
-                    getBigDecimalValue(rightValue));
-            else if (type.equals(PredefinedType.bigIntegerType))
-                value = getBigIntegerValue(leftValue).multiply(
-                    getBigIntegerValue(rightValue));
-            else 
-                errorMsg.fatal(msg.msg("ERR_OptmizerInvalidType", //NOI18N
-                    "checkMultiplicationOp", type)); //NOI18N
-
-            ast = ConstantExpr.newConstant(value);
-            ast.setType(CONSTANT);
-            ast.setText(value.toString());
-            ast.setTypeInfo(op.getTypeInfo());
-        }
-        return ast;
-    }
-    
-    /**
-     * Check a binary division operation (DIV) for constant operands
-     * that could be optimized.
-     * @param op the division operator
-     * @param left the left operand
-     * @param right the right operand
-     * @return optimized JDOQLAST 
-     */
-    protected JDOQLAST checkDivisionOp(JDOQLAST op, JDOQLAST left, 
-                                       JDOQLAST right)
-    {
-        JDOQLAST ast = op;
-
-        if ((left.getType() == CONSTANT) && (right.getType() == CONSTANT)) {
-            Object leftValue = ((ConstantExpr)left).getValue();
-            Object rightValue = ((ConstantExpr)right).getValue();
-            Object value = null;
-            if (leftValue == null)
-                leftValue = new Integer(0);
-            if (rightValue == null)
-                // division by zero!
-                rightValue = new Integer(0);
-
-            JavaType type = op.getTypeInfo();
-            
-            if (type.isWrapperClass())
-                type = ((WrapperClassType)type).getWrappedPrimitiveType();
-                
-            if (type.equals(PredefinedType.intType))
-                value = new Integer(((Number)leftValue).intValue() /
-                    ((Number)rightValue).intValue());
-            else if (type.equals(PredefinedType.longType))
-                value = new Long(((Number)leftValue).longValue() /
-                    ((Number)rightValue).longValue());
-            else if (type.equals(PredefinedType.floatType))
-                value = new Float(((Number)leftValue).floatValue() / 
-                    ((Number)rightValue).floatValue());
-            else if (type.equals(PredefinedType.doubleType))
-                value = new Double(((Number)leftValue).doubleValue() / 
-                    ((Number)rightValue).doubleValue());
-            else if (type.equals(PredefinedType.bigDecimalType))
-                value = getBigDecimalValue(leftValue).divide(
-                   getBigDecimalValue(rightValue), BigDecimal.ROUND_HALF_EVEN);
-            else if (type.equals(PredefinedType.bigIntegerType))
-                value = getBigIntegerValue(leftValue).divide(
-                    getBigIntegerValue(rightValue));
-            else 
-                errorMsg.fatal(msg.msg("ERR_OptmizerInvalidType", //NOI18N
-                    "checkDivisionOp", type)); //NOI18N
-
-            ast = ConstantExpr.newConstant(value);
-            ast.setType(CONSTANT);
-            ast.setText(value.toString());
-            ast.setTypeInfo(op.getTypeInfo());
-        }
-        return ast;
-    }
-    
-    /**
-     * Check a unary minus operation (UNARY_MINUS) for a constant operand
-     * that could be optimized.
-     * @param op the unary minus operator
-     * @param arg the operand
-     * @return optimized JDOQLAST 
-     */
-    protected JDOQLAST checkUnaryMinusOp(JDOQLAST op, JDOQLAST arg)
-    {
-        JDOQLAST ast = op;
-        
-        if (arg.getType() == CONSTANT) {
-            Object value = ((ConstantExpr)arg).getValue();
-            JavaType type = op.getTypeInfo();
-            Object negate = null;
-            
-            if (type.equals(PredefinedType.intType))
-                negate = new Integer(-((Number)value).intValue());
-            else if (type.equals(PredefinedType.longType))
-                negate = new Long(-((Number)value).longValue());
-            else if (type.equals(PredefinedType.floatType))
-                negate = new Float(-((Number)value).floatValue());
-            else if (type.equals(PredefinedType.doubleType))
-                negate = new Double(-((Number)value).doubleValue());
-            else if (type.equals(PredefinedType.bigDecimalType))
-                negate = getBigDecimalValue(value).negate();
-            else if (type.equals(PredefinedType.bigIntegerType))
-                negate = getBigIntegerValue(value).negate();
-            else 
-                errorMsg.fatal(msg.msg("ERR_OptmizerInvalidType", //NOI18N
-                    "checkUnaryMinusOp", type)); //NOI18N
-            
-            ast = ConstantExpr.newConstant(negate);
-            ast.setType(CONSTANT);
-            ast.setText(negate.toString());
-            ast.setTypeInfo(op.getTypeInfo());
-        }
-        return ast;
-    }
-
-    /**
-     * Converts the specified value into a BigDecimal value. 
-     * @param value value to be converted
-     * @return BigDecimal representation
-     */
-    protected BigDecimal getBigDecimalValue(Object value)
-    {
-        BigDecimal ret = null;
-        if (value instanceof BigDecimal)
-            ret = (BigDecimal)value;
-        else if (value instanceof BigInteger)
-            ret = new BigDecimal((BigInteger)value);
-        else if (value instanceof Double)
-            ret = new BigDecimal(((Double)value).doubleValue());
-        else if (value instanceof Float)
-            ret = new BigDecimal(((Float)value).doubleValue());
-        else if (value instanceof Number)
-            ret = BigDecimal.valueOf(((Number)value).longValue());
-        else
-            errorMsg.fatal(msg.msg("ERR_OptmizerNumberExpected", //NOI18N
-                "getBigDecimalValue", value)); //NOI18N
-        return ret;
-    }
-
-    /**
-     * Converts the specified value into a BigInteger value. 
-     * @param value value to be converted
-     * @return BigInteger representation
-     */
-    protected BigInteger getBigIntegerValue(Object value)
-    {
-        BigInteger ret = null;
-
-        if (value instanceof BigInteger)
-            ret = (BigInteger)value;
-        else if (value instanceof Number)
-            ret = BigInteger.valueOf(((Number)value).longValue());
-        else
-            errorMsg.fatal(msg.msg("ERR_OptmizerNumberExpected", //NOI18N
-                "getBigIntegerValue", value)); //NOI18N
-        return ret;
-    }
-    
-    /**
-     * This method is called in the case of an equality operation having two 
-     * constant operands. It calculates the result of this constant operation 
-     * and returns a JDOQLAST node representing a constant boolean value.
-     * @param op the equality operator
-     * @param left the left operand
-     * @param right the right operand
-     * @param negate true for not equal operation, false otherwise
-     * @return optimized JDOQLAST 
-     */
-    protected JDOQLAST handleValueEqValue(JDOQLAST op, JDOQLAST left,
-                                          JDOQLAST right, 
-                                          boolean negate)
-    {
-        Object leftValue = ((ConstantExpr)left).getValue();
-        Object rightValue = ((ConstantExpr)right).getValue();
-        boolean booleanValue = false;
-        
-        if ((leftValue == null) && (rightValue == null)) {
-            // both values are null -> true
-            booleanValue = true;
-        }
-        else if ((leftValue != null) && (rightValue != null)) {
-            // both values are not null -> use equals
-            booleanValue = leftValue.equals(rightValue);
-        }
-        else
-        {
-            // one value is null, the other is not null -> false
-            booleanValue = false;
-        }
-        if (negate) {
-            booleanValue = !booleanValue;
-        }
-        
-        Boolean value = booleanValue ? Boolean.TRUE : Boolean.FALSE;
-        ConstantExpr constant = ConstantExpr.newConstant(value);
-        constant.setType(CONSTANT);
-        constant.setText(value.toString());
-        constant.setTypeInfo(op.getTypeInfo());
-        return op;
-    }
-
-    /**
-     * This method is called in the case of an equality operation having 
-     * a boolean constant operand and a non constant operand. 
-     * It returns the non constant operand either as it is or inverted, 
-     * depending on the equality operation.
-     * @param op the equality operator
-     * @param value the contant boolean value
-     * @param expr the non constant operand
-     * @param negate true for not equal operation, false otherwise
-     * @return optimized JDOQLAST 
-     */
-    private JDOQLAST handleBooleanValueEqExpr(JDOQLAST op, Object value, 
-                                              JDOQLAST expr, boolean negate)
-    {
-        JDOQLAST ast;
-        boolean skip = (value instanceof Boolean) ? 
-                       ((Boolean)value).booleanValue() : false;
-        if (negate) skip = !skip;
-
-        if (skip) {
-            // expr == true -> expr
-            // expr != false -> expr
-            ast = expr;
-        }
-        else {
-            // if expr is a equality op or a not op the invert operation 
-            // may be "inlined":
-            //   (expr1 == expr2) != true -> expr1 != expr2
-            //   (expr1 != expr2) != true -> expr1 == expr2
-            //   !expr != true -> expr
-            //   !expr == false -> expr
-            // Otherwise wrap the expr with a not op
-            //   expr != true -> !expr
-            //   expr == false -> !expr
-            switch (expr.getType()) {
-            case EQUAL:
-                ast = new NotEqualsExpr();
-                ast.initialize(NOT_EQUAL, "!=", PredefinedType.booleanType); //NOI18N
-                ast.setFirstChild(expr.getFirstChild());
-                ((BinaryExpr)ast).setCommonOperandType(
-                    ((BinaryExpr)expr).getCommonOperandType());
-                break;
-            case NOT_EQUAL:
-                ast = new EqualsExpr();
-                ast.initialize(EQUAL, "==", PredefinedType.booleanType); //NOI18N
-                ast.setFirstChild(expr.getFirstChild());
-                ((BinaryExpr)ast).setCommonOperandType(
-                    ((BinaryExpr)expr).getCommonOperandType());
-                break;
-            case LNOT:
-                ast = (JDOQLAST)expr.getFirstChild();
-                break;
-            default:
-                ast = new NotExpr();
-                ast.initialize(LNOT, "!", PredefinedType.booleanType); //NOI18N
-                ast.setFirstChild(expr);
-            }
-            expr.setNextSibling(null);
-        }
-        return ast;
-    }
-
-    /**
-     * This method is called in the case of an AND operation having at least 
-     * one constant operand. If the constant operand evaluates to true it 
-     * returns the other operand. If it evaluates to false it returns an AST
-     * representing the constant boolean value false.
-     * @param op the AND operator
-     * @param value the value of the contsnat operand
-     * @param expr the other operand
-     * @return optimized JDOQLAST 
-     */
-    private JDOQLAST handleValueAndExpr(JDOQLAST op, Object value, JDOQLAST expr)
-    {
-        JDOQLAST ast;
-
-        if ((value instanceof Boolean) && ((Boolean)value).booleanValue()) {
-            // true AND expr -> expr
-            // expr AND true -> expr
-            expr.setNextSibling(null);
-            ast = expr;
-        }
-        else
-        {
-            // false AND expr -> false
-            // expr AND false -> false
-            ast = ConstantExpr.newConstant(Boolean.FALSE);
-            ast.setType(CONSTANT);
-            ast.setText("false"); //NOI18N
-            ast.setTypeInfo(op.getTypeInfo());
-        }
-        return ast;
-    }
-
-    /**
-     * This method is called in the case of an OR operation having at least 
-     * one constant operand. If the constant operand evaluates to false it 
-     * returns the other operand. If it evaluates to true it returns an AST
-     * representing the constant boolean value true.
-     * @param op the AND operator
-     * @param value the value of the constant operand
-     * @param expr the other operand
-     * @return optimized JDOQLAST 
-     */
-    private JDOQLAST handleValueOrExpr(JDOQLAST op, Object value, JDOQLAST expr)
-    {
-        JDOQLAST ast;
-
-        if ((value instanceof Boolean) && ((Boolean)value).booleanValue()) {
-            // true OR expr -> true
-            // expr OR true -> true
-            ast = ConstantExpr.newConstant(Boolean.TRUE);
-            ast.setType(CONSTANT);
-            ast.setText("true"); //NOI18N
-            ast.setTypeInfo(op.getTypeInfo());
-        }
-        else {
-            // false OR expr -> expr
-            // expr OR false -> expr
-            expr.setNextSibling(null);
-            ast = expr;
-        }
-        return ast;
-    }
-
-    /**
-     * Returns true if the specified AST represents a constant boolean value.
-     */
-    protected boolean isBooleanValueAST(JDOQLAST ast)
-    {
-        return (ast.getType() == CONSTANT) && 
-               (PredefinedType.booleanType.equals(ast.getTypeInfo()));
-    }
-
-    /**
-     * Returns the specified string w/o a long type suffix 'l' or 'L' or
-     * the specified string if there is no such suffix.
-     */
-    private String skipLongTypeSuffix(String txt)
-    {
-        int index = txt.length() - 1;
-        char last = txt.charAt(index);
-        return ((last == 'l') || (last == 'L')) ? txt.substring(0, index) : txt;
-    }
-
-    /**
-     * Returns the value of the specified field of the specified object.
-     * The method uses StateManager methods to access the field value, 
-     * if it is a managed field of a persistent instance. 
-     * Otherwise it uses reflection.
-     * @param javaField the field representation
-     * @param pm the pm used in case of a managed field of a persistent instance
-     * @param object the instance
-     * @return the field value
-     */
-    private Object getFieldValue(JavaField javaField, 
-                                 PersistenceManagerInternal pm, 
-                                 Object object)
-    {
-        int fieldNumber = 
-            TypeSupport.getFieldNumber(javaField, pm, object);
-        if (fieldNumber == -1) 
-            return TypeSupport.getFieldValue(getAccessibleField(javaField), 
-                                             object);
-        else
-            return TypeSupport.getFieldValue(fieldNumber, pm, object);
-    }
-
-    /**
-     * Returns the value of the specified static field.
-     * @param javaField the field representation
-     * @return the field value
-     */
-    private Object getStaticFieldValue(JavaField javaField)
-    {
-        return TypeSupport.getFieldValue(getAccessibleField(javaField), null);
-    } 
-
-    /**
-     * Method executing TypeSupport.getAccessibleField in a doPrivileged block.
-     */
-    private Field getAccessibleField(final JavaField javaField)
-    {
-        return (Field) AccessController.doPrivileged(
-            new PrivilegedAction() {
-                public Object run () {
-                    return TypeSupport.getAccessibleField(javaField);
-                }});
-    }
-
-}
-
-// rules
-
-query!
-    :   #(  q:QUERY_TREE
-            c:candidateClass
-            p:parameters
-            v:variables
-            o:ordering
-            f:filter
-        )
-        {
-            Tree tree = new Tree((CandidateClassImpl)#c, (ParameterDecl)#p, 
-                                 (VariableDecl)#v, (OrderingExpr)#o, (Expr)#f);
-            tree.setType(QUERY_TREE);
-            tree.setText("QUERY_TREE"); //NOI18N
-            #query = tree;
-        }
-    ;
-
-// ----------------------------------
-// rules: candidate class
-// ----------------------------------
-
-candidateClass
-{   
-    errorMsg.setContext("setCandidates"); //NOI18N
-}
-    :   #(CANDIDATE_CLASS TYPE)
-    ;
-
-// ----------------------------------
-// rules: parameter declaration
-// ----------------------------------
-
-parameters
-{   
-    errorMsg.setContext("declareParameters"); //NOI18N
-}
-    :   ( declareParameter )*
-    ;
-
-declareParameter
-    :   #( PARAMETER_DECL TYPE ( IDENT )? )
-    ;
-
-// ----------------------------------
-// rules: variable declaration
-// ----------------------------------
-
-variables 
-{ 
-    errorMsg.setContext("declareVariables"); //NOI18N
-}
-    :   ( declareVariable )*
-    ;
-
-declareVariable
-    :   #( VARIABLE_DECL TYPE ( IDENT )? )
-    ;
-
-// ----------------------------------
-// rules: ordering specification
-// ----------------------------------
-
-ordering 
-{   
-    errorMsg.setContext("setOrdering"); //NOI18N
-}
-    :   ( orderSpec )*
-    ;
-
-orderSpec
-    :   #( ASCENDING expression )
-    |   #( DESCENDING expression )
-    ;
-
-// ----------------------------------
-// rules: filer expression
-// ----------------------------------
-
-filter
-{   
-    errorMsg.setContext("setFilter"); //NOI18N
-}
-    :   expression
-    ;
-
-expression 
-    :   primary
-    |   bitwiseExpr
-    |   conditionalExpr
-    |   relationalExpr
-    |   binaryArithmeticExpr
-    |   unaryArithmeticExpr
-    |   complementExpr
-    ;
-
-bitwiseExpr
-    :   #( op1:BAND left1:expression right1:expression )
-        {
-            #bitwiseExpr = checkAnd(#op1, #left1, #right1);
-        }
-    |   #( op2:BOR  left2:expression right2:expression )
-        {
-            #bitwiseExpr = checkOr(#op2, #left2, #right2);
-        }
-    ;
-
-conditionalExpr
-    :   #( op1:AND left1:expression right1:expression )
-        {
-            #conditionalExpr = checkAnd(#op1, #left1, #right1);
-        }
-    |   #( op2:OR  left2:expression right2:expression )
-        {
-            #conditionalExpr = checkOr(#op2, #left2, #right2);
-        }
-   ;
-
-relationalExpr
-    :   #( op1:EQUAL left1:expression right1:expression )
-        {
-            #relationalExpr = checkEqualityOp(#op1, #left1, #right1, false);
-        }
-    |   #( op2:NOT_EQUAL left2:expression right2:expression )
-        {
-            #relationalExpr = checkEqualityOp(#op2, #left2, #right2, true);
-        }
-    |   #( op3:OBJECT_EQUAL left3:expression right3:expression ) 
-        {
-            #relationalExpr = checkObjectEqualityOp(#op3, #left3, #right3, false);
-        }
-    |   #( op4:OBJECT_NOT_EQUAL left4:expression right4:expression )
-        {
-            #relationalExpr = checkObjectEqualityOp(#op4, #left4, #right4, true);
-        }
-    |   #( op5:COLLECTION_EQUAL left5:expression right5:expression )
-        {
-            #relationalExpr = checkCollectionEqualityOp(#op5, #left5, #right5, false);
-        }
-    |   #( op6:COLLECTION_NOT_EQUAL left6:expression right6:expression )
-        {
-            #relationalExpr = checkCollectionEqualityOp(#op6, #left6, #right6, true);
-        }
-    |   #( LT expression expression )
-    |   #( GT expression expression )
-    |   #( LE expression expression )
-    |   #( GE expression expression )
-    ;
-
-binaryArithmeticExpr
-    :   #( op1:PLUS   left1:expression right1:expression )
-        {
-            #binaryArithmeticExpr = checkBinaryPlusOp(#op1, #left1, #right1);
-        }
-    |   #( op2:CONCAT left2:expression right2:expression )
-        {
-            #binaryArithmeticExpr = checkConcatOp(#op2, #left2, #right2);
-        }
-    |   #( op3:MINUS  left3:expression right3:expression )
-        {
-            #binaryArithmeticExpr = checkBinaryMinusOp(#op3, #left3, #right3);
-        }
-    |   #( op4:STAR   left4:expression right4:expression )
-        {
-            #binaryArithmeticExpr = checkMultiplicationOp(#op4, #left4, #right4);
-        }
-    |   #( op5:DIV    left5:expression right5:expression )
-        {
-            #binaryArithmeticExpr = checkDivisionOp(#op5, #left5, #right5);
-        }
-    ;
-
-unaryArithmeticExpr 
-    :   #( UNARY_PLUS expression )
-    |   ( #( UNARY_MINUS ( INT_LITERAL | LONG_LITERAL ) ) )=> 
-        #( UNARY_MINUS l:integralLiteral[true] )
-        { 
-            #unaryArithmeticExpr = #l; 
-        }
-    |   #( op2:UNARY_MINUS arg2:expression )
-        {
-            #unaryArithmeticExpr = checkUnaryMinusOp(#op2, #arg2);
-        }
-    ;
-
-complementExpr 
-    :   #( op1:BNOT arg1:expression )
-    |   #( op2:LNOT arg2:expression )
-        {
-            #complementExpr = checkLogicalNotOp(#op2, #arg2);
-        }
-    ;
-
-primary 
-    :   #( CAST TYPE expression )
-    |   literal
-    |   THIS
-    |   parameterAccess
-    |   variableAccess
-    |   staticFieldAccess
-    |   fieldAccess
-    |   navigation
-    |   contains
-    |   startsWith
-    |   endsWith
-    |   isEmpty
-    ;
-
-literal
-    :   b1:TRUE
-        { 
-            ConstantExpr constant = ConstantExpr.newConstant(Boolean.TRUE);
-            constant.setType(CONSTANT);
-            constant.setText("true"); //NOI18N
-            constant.setTypeInfo(b1.getTypeInfo());
-            #literal = constant;
-        }
-    |   b2:FALSE
-        { 
-            ConstantExpr constant = ConstantExpr.newConstant(Boolean.FALSE);
-            constant.setType(CONSTANT);
-            constant.setText("false"); //NOI18N
-            constant.setTypeInfo(b2.getTypeInfo());
-            #literal = constant;
-        }
-    |   b3:BOOLEAN_LITERAL
-        {
-            b3.setType(CONSTANT);
-        }
-    |   integralLiteral[false]
-    |   f:FLOAT_LITERAL
-        {  
-            String txt = f.getText();
-            Float value = null;
-            try {
-                value = new Float(txt);
-            } 
-            catch (NumberFormatException ex) {
-                errorMsg.error(f.getLine(), f.getColumn(), 
-                    msg.msg("EXC_InvalidLiteral", "float", txt)); //NOI18N
-            }
-            ConstantExpr constant = ConstantExpr.newConstant(value);
-            constant.setType(CONSTANT);
-            constant.setText(f.getText());
-            constant.setTypeInfo(f.getTypeInfo());
-            #literal = constant;
-        }
-    |   d:DOUBLE_LITERAL
-        {  
-            String txt = d.getText();
-            Double value = null;
-            try {
-                value = new Double(txt);
-            } 
-            catch (NumberFormatException ex) {
-                errorMsg.error(d.getLine(), d.getColumn(), 
-                    msg.msg("EXC_InvalidLiteral", "double", txt)); //NOI18N
-            }
-            ConstantExpr constant = ConstantExpr.newConstant(value);
-            constant.setType(CONSTANT);
-            constant.setText(d.getText());
-            constant.setTypeInfo(d.getTypeInfo());
-            #literal = constant;
-        }
-    |   c:CHAR_LITERAL
-        { 
-            Character value = new Character(parseChar(c.getText())); 
-            ConstantExpr constant = ConstantExpr.newConstant(value);
-            constant.setType(CONSTANT);
-            constant.setText(c.getText());
-            constant.setTypeInfo(c.getTypeInfo());
-            #literal = constant;
-        }
-    |   s:STRING_LITERAL
-        { 
-            ConstantExpr constant = ConstantExpr.newConstant(s.getText());
-            constant.setType(CONSTANT);
-            constant.setText(s.getText());
-            constant.setTypeInfo(s.getTypeInfo());
-            #literal = constant;
-        }
-    |   n:NULL
-        { 
-            ConstantExpr constant = ConstantExpr.newConstant(null);
-            constant.setType(CONSTANT);
-            constant.setText("null"); //NOI18N
-            constant.setTypeInfo(n.getTypeInfo());
-            #literal = constant;
-        }
-    |   by:BYTE_LITERAL
-        {
-            by.setType(CONSTANT);
-        }
-    |   sh:SHORT_LITERAL
-        {
-            sh.setType(CONSTANT);
-        }
-    |   con:CONSTANT
-    ;
-
-integralLiteral! [boolean negate]
-    :   i:INT_LITERAL
-        { 
-            String txt = negate ? "-" + i.getText() : i.getText();
-            Integer value = null;
-            try {
-                value = Integer.decode(txt);
-            } 
-            catch (NumberFormatException ex) {
-                errorMsg.error(i.getLine(), i.getColumn(), 
-                    msg.msg("EXC_InvalidLiteral", "int", txt)); //NOI18N
-            }
-            ConstantExpr constant = ConstantExpr.newConstant(value);
-            constant.setType(CONSTANT);
-            constant.setText(txt);
-            constant.setTypeInfo(i.getTypeInfo());
-            #integralLiteral = constant;
-        }
-    |   l:LONG_LITERAL
-        {   
-            String txt = negate ? "-" + l.getText() : l.getText();
-            Long value = null;
-            try {
-                value = Long.decode(skipLongTypeSuffix(txt));
-            } 
-            catch (NumberFormatException ex) {
-                errorMsg.error(l.getLine(), l.getColumn(), 
-                    msg.msg("EXC_InvalidLiteral", "long", txt)); //NOI18N
-            }
-            ConstantExpr constant = ConstantExpr.newConstant(value);
-            constant.setType(CONSTANT);
-            constant.setText(txt);
-            constant.setTypeInfo(l.getTypeInfo());
-            #integralLiteral = constant;
-        }
-    ;
-
-parameterAccess
-    :   p:PARAMETER_ACCESS
-        {
-            if (optimizeParameters) {
-                Object value = paramtab.getValue(#p.getText());
-                ConstantExpr constant = ConstantExpr.newConstant(value);
-                constant.setType(CONSTANT);
-                constant.setText((value==null) ? "null" : value.toString()); //NOI18N
-                constant.setTypeInfo(#p.getTypeInfo());
-                #parameterAccess = constant;
-            }
-        }
-    ;
-
-variableAccess
-    :   #( VARIABLE_ACCESS ( expression )? )
-    ;
-
-staticFieldAccess!
-    :   #( s:STATIC_FIELD_ACCESS t:TYPE (i:IDENT)? )
-        {
-            // Calculate the value of the static field at compile time
-            // and treat it as constant value.
-            StaticFieldAccessExpr fieldAccess = (StaticFieldAccessExpr)#s;
-            String fieldName = fieldAccess.getName();
-            JavaField javaField = #t.getTypeInfo().getJavaField(fieldName);
-            Object value = getStaticFieldValue(javaField);
-            ConstantExpr constant = ConstantExpr.newConstant(value);
-            constant.setType(CONSTANT);
-            constant.setText((value==null) ? "null" : value.toString()); //NOI18N
-            constant.setTypeInfo(#s.getTypeInfo());
-            #staticFieldAccess = constant;
-        }
-    ;
-
-fieldAccess
-    :   #( f:FIELD_ACCESS o:expression ( i:IDENT )? )
-        {
-            if (#o.getType() == CONSTANT) {
-                // If the object of the field access is a constant value, 
-                // evaluate the field access at compile time and 
-                // treat the expression as constant value.
-                FieldAccessExpr fieldAccess = (FieldAccessExpr)#f;
-                String fieldName = fieldAccess.getName();
-                JavaField javaField = #o.getTypeInfo().getJavaField(fieldName);
-                Object value = getFieldValue(
-                    javaField, pm, ((ConstantExpr)#o).getValue());
-                ConstantExpr constant = ConstantExpr.newConstant(value);
-                constant.setType(CONSTANT);
-                constant.setText((value==null) ? "null" : value.toString()); //NOI18N
-                constant.setTypeInfo(#f.getTypeInfo());
-                #fieldAccess = constant;
-            }
-        }
-    ;
-
-navigation
-    :   #(  n:NAVIGATION o:expression ( i:IDENT )? )
-        {
-            if (#o.getType() == CONSTANT) {
-                // If the object of the navigation is a constant value, 
-                // evaluate the field access at compile time and 
-                // treat the expression as constant value.
-                FieldAccessExpr fieldAccess = (FieldAccessExpr)#n;
-                String fieldName = fieldAccess.getName();
-                JavaField javaField = #o.getTypeInfo().getJavaField(fieldName);
-                Object value = getFieldValue(
-                    javaField, pm, ((ConstantExpr)#o).getValue());
-                ConstantExpr constant = ConstantExpr.newConstant(value);
-                constant.setType(CONSTANT);
-                constant.setText((value==null) ? "null" : value.toString()); //NOI18N
-                constant.setTypeInfo(#n.getTypeInfo());
-                #navigation = constant;
-            }
-        }
-    ;
-
-contains
-    :   #( CONTAINS expression expression )
-    ;
-
-startsWith
-    :   #( STARTS_WITH expression expression ) 
-    ;
-
-endsWith
-    :   #( ENDS_WITH expression expression ) 
-    ;
-
-isEmpty
-    :   #( op:IS_EMPTY e:expression)
-        {
-            if (#e.getType() == CONSTANT) {
-                // If the expression that specifies the collection is a 
-                // constant value, evaluate the isEmpty call at compile time 
-                // and treat the expression as constant value.
-                Object object = ((ConstantExpr)#e).getValue();
-                Object value = null;
-                if (object == null) {
-                    value = new Boolean(false);
-                }
-                else if (object instanceof Collection) {
-                    value = new Boolean(((Collection)object).isEmpty());
-                }
-                else {
-                    errorMsg.fatal(msg.msg("ERR_OptmizerCollectionExpected", //NOI18N
-                            "isEmpty", object)); //NOI18N
-                }
-                ConstantExpr constant = ConstantExpr.newConstant(value);
-                constant.setType(CONSTANT);
-                constant.setText((value==null) ? "null" : value.toString()); //NOI18N
-                constant.setTypeInfo(#op.getTypeInfo());
-                #isEmpty = constant;
-            }
-        }
-    ;
-
diff --git a/query20/src/java/org/apache/jdo/impl/jdoql/jdoqlc/Semantic.g b/query20/src/java/org/apache/jdo/impl/jdoql/jdoqlc/Semantic.g
deleted file mode 100644
index d81152c..0000000
--- a/query20/src/java/org/apache/jdo/impl/jdoql/jdoqlc/Semantic.g
+++ /dev/null
@@ -1,1727 +0,0 @@
-/*
- * 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.
- */
-
-/*
- * Semantic.g
- *
- * Created on August 28, 2001
- */
-
-header
-{
-    package org.apache.jdo.impl.jdoql.jdoqlc;
-    
-    import java.util.Collection;
-    
-    import org.apache.jdo.model.java.JavaType;
-    import org.apache.jdo.model.java.JavaField;
-    import org.apache.jdo.impl.model.java.ErrorType;
-    import org.apache.jdo.impl.model.java.NullType;
-    import org.apache.jdo.impl.model.java.PrimitiveType;
-    import org.apache.jdo.impl.model.java.WrapperClassType;
-    import org.apache.jdo.impl.model.java.PredefinedType;
-
-    import org.apache.jdo.impl.jdoql.tree.*;
-    import org.apache.jdo.impl.jdoql.scope.ParameterTable;
-    import org.apache.jdo.impl.jdoql.scope.SymbolTable;
-    import org.apache.jdo.impl.jdoql.scope.TypeNames;
-    import org.apache.jdo.impl.jdoql.scope.VariableTable;
-
-    import org.apache.jdo.util.I18NHelper; 
-}
-
-/**
- * This class defines the semantic analysis of the JDOQL compiler.
- * Input of this pass is the AST as produced by the parser,
- * that consists of JDOQLAST nodes.
- * The result is a typed JDOQLAST tree.
- * <p>
- * TBD:
- * <ul>
- * <li> Check for non portable contains queries
- * </ul> 
- *
- * @author  Michael Bouschen
- */
-class Semantic extends TreeParser;
-
-options
-{
-    importVocab = JDOQL;
-    buildAST = true;
-    defaultErrorHandler = false;
-    ASTLabelType = "JDOQLAST"; //NOI18N
-}
-
-{
-    /** The error message support class. */
-    protected ErrorMsg errorMsg;
-    
-    /** Symbol table handling names of variables and parameters. */
-    protected SymbolTable symtab;
-    
-    /** Table of type names handling imports. */
-    protected TypeNames typeNames;
-
-    /** The type support. */
-    protected TypeSupport typeSupport;
-    
-    /** The query parameter table */
-    protected ParameterTable paramtab;
-    
-    /** The variable table. */
-    protected VariableTable vartab;
-    
-    /** The variable checker. */
-    protected VariableChecker varChecker;
-
-    /** Candidate class. */
-    protected JavaType candidateClass; 
-    
-    /** I18N support */
-    protected final static I18NHelper msg = I18NHelper.getInstance(
-        "org.apache.jdo.impl.jdoql.Bundle", Semantic.class.getClassLoader()); //NOI18N
-    
-    /**
-     *
-     */
-    public void init(TypeSupport typeSupport, ParameterTable paramtab, 
-                     VariableTable vartab, ErrorMsg errorMsg)
-    {
-        this.errorMsg = errorMsg;
-        this.symtab = new SymbolTable();
-        this.typeNames = new TypeNames(typeSupport);
-        this.vartab = vartab;
-        this.typeSupport = typeSupport;
-        this.paramtab = paramtab;
-        this.varChecker = new VariableChecker();
-    }
-
-    /**
-     *
-     */
-    public void reportError(RecognitionException ex) {
-        errorMsg.fatal(msg.msg("ERR_SemanticError"), ex); //NOI18N
-    }
-
-    /**
-     *
-     */
-    public void reportError(String s) {
-        errorMsg.fatal(msg.msg("ERR_SemanticError") + s); //NOI18N
-    }
-    
-    /**
-     * Combines partial ASTs into one query AST.
-     */
-    public JDOQLAST createQueryTree(Class candidateClass, JDOQLAST importsAST, 
-                                    JDOQLAST paramsAST, JDOQLAST varsAST, 
-                                    JDOQLAST orderingAST, JDOQLAST filterAST)
-    {
-        CandidateClassImpl candidateClassAST = new CandidateClassImpl();
-        candidateClassAST.setType(CANDIDATE_CLASS);
-        candidateClassAST.setText(candidateClass.getName());
-        candidateClassAST.setCandidateClass(candidateClass);
-        JDOQLAST query = new NodeImpl();
-        query.setType(QUERY_TREE);
-        query.setText("query"); //NOI18N
-        query.addChild(candidateClassAST);
-        if (importsAST != null)
-            query.addChild(importsAST);
-        if (paramsAST != null)
-            query.addChild(paramsAST);
-        if (varsAST != null)
-            query.addChild(varsAST);
-        if (orderingAST != null)
-            query.addChild(orderingAST);
-        if (filterAST != null)
-            query.addChild(filterAST);
-        return query;
-    }
-    
-    /**
-     * This method analyses the expression of a single ordering definition.
-     * It checks whether the expression
-     * - is of a orderable type
-     * @param expr the expression of an ordering definition
-     */
-    protected void analyseOrderingExpression(JDOQLAST expr)
-    {
-        JavaType exprType = expr.getTypeInfo();
-        if (!exprType.isOrderable())
-        {
-            errorMsg.error(expr.getLine(), expr.getColumn(),
-                msg.msg("EXC_NotSortableInOrdering", //NOI18N 
-                    exprType.getName()));
-            expr.setTypeInfo(ErrorType.errorType);
-        }
-    }
-
-    /**
-     * This method analyses a dot expression of the form expr.ident or
-     * expr.ident(params) where expr itself can again be a dot expression.
-     * It checks whether the dot expression is 
-     * - part of a qualified class name specification
-     * - field access,
-     * - a method call
-     * The method returns a temporary single AST node that is defined with a
-     * specific token type (field access, method call, etc.). This node also
-     * contains the type of the dot expression.
-     * @param expr the left hand side of the dot expression
-     * @param ident the right hand side of the dot expression
-     * @param args arguments (in the case of a call)
-     * @return AST node representing the specialized dot expr
-     */
-    protected JDOQLAST analyseDotExpr(JDOQLAST dot, JDOQLAST expr, 
-                                      JDOQLAST ident, JDOQLAST args)
-    {
-        JavaType exprType = expr.getTypeInfo();
-        String name = ident.getText();
-        dot.setText(expr.getText() + '.' + name);
-        if (!exprType.isPrimitive()) {
-            // left expression is of a class type
-            if (args == null) {
-                // no paranethesis specified => field access
-                JavaField javaField = exprType.getJavaField(name);
-                if (javaField == null) {
-                    errorMsg.error(ident.getLine(), ident.getColumn(),
-                        msg.msg("EXC_UnknownField",  //NOI18N
-                            ident.getText(), exprType.getName()));
-                    dot.setTypeInfo(ErrorType.errorType);
-                    ident.setTypeInfo(ErrorType.errorType);
-                    return dot;
-                }
-                else if (expr.getType() == TYPE) {
-                    // access of the form: className.staticField
-                    JDOQLAST fieldAccess = analyseStaticFieldAccess(
-                        expr, ident, exprType, javaField);
-                    fieldAccess.setLine(#dot.getLine());
-                    fieldAccess.setColumn(#dot.getColumn());
-                    return fieldAccess;
-                }
-                else {
-                    // access of the form: object.field
-                    JDOQLAST fieldAccess = 
-                        analyseFieldAccess(expr, ident, exprType, javaField);
-                    fieldAccess.setLine(#dot.getLine());
-                    fieldAccess.setColumn(#dot.getColumn());
-                    return fieldAccess;
-                }
-            }
-            else {
-                // parenthesis specified => method call
-                if (exprType.isJDOSupportedCollection()) {
-                    JDOQLAST call = 
-                        analyseCollectionCall(dot, expr, ident, args);
-                    call.setLine(#dot.getLine());
-                    call.setColumn(#dot.getColumn());
-                    return call;
-                }
-                else if (exprType.equals(PredefinedType.stringType)) {
-                    JDOQLAST call = analyseStringCall(dot, expr, ident, args);
-                    call.setLine(#dot.getLine());
-                    call.setColumn(#dot.getColumn());
-                    return call;
-                }
-                errorMsg.error(dot.getLine(), dot.getColumn(),  
-                               msg.msg("EXC_InvalidMethodCall")); //NOI18N
-                dot.setTypeInfo(ErrorType.errorType);
-                return dot;
-            }
-        }
-        else {
-            errorMsg.error(expr.getLine(), expr.getColumn(),
-                msg.msg("EXC_ClassTypeExpressionExpected", //NOI18N
-                    ident.getText(), exprType.getName()));
-            dot.setTypeInfo(ErrorType.errorType);
-            return dot;
-        }
-    }
-
-    /**
-     * 
-     */
-    protected JDOQLAST analyseFieldAccess(
-        JDOQLAST objectExpr, JDOQLAST ident, JavaType classType, 
-        JavaField javaField)
-    {
-        FieldAccessExpr fieldAccess = new FieldAccessExpr();
-        String name = ident.getText();
-        JavaType fieldType = javaField.getType();
-        int tokenType = (classType.isPersistenceCapable() && 
-                         fieldType.isPersistenceCapable()) ? 
-                         NAVIGATION : FIELD_ACCESS;
-        fieldAccess.initialize(tokenType, objectExpr.getText() + '.' + name, 
-                               fieldType);
-        fieldAccess.setName(name);
-        fieldAccess.setFirstChild(objectExpr);
-        objectExpr.setNextSibling(null);
-        return fieldAccess;
-    }
-
-    /**
-     * 
-     */
-    protected JDOQLAST analyseStaticFieldAccess(
-        JDOQLAST typename, JDOQLAST ident, JavaType classType, 
-        JavaField javaField)
-    {
-        String name = ident.getText();
-        if (!typeSupport.isStaticField(javaField)) {
-            errorMsg.error(ident.getLine(), ident.getColumn(),  
-                msg.msg("EXC_InvalidStaticReference", //NOI18N 
-                    name, classType.getName()));
-        }
-        StaticFieldAccessExpr fieldAccess = new StaticFieldAccessExpr();
-        fieldAccess.initialize(STATIC_FIELD_ACCESS,
-                               typename.getText() + '.' + name, 
-            javaField.getType());
-        fieldAccess.setName(name);
-        fieldAccess.setFirstChild(typename);
-        typename.setNextSibling(null);
-        return fieldAccess;
-    }
-
-    /**
-     * This method analyses an identifier defined in the current scope which
-     * is a field, variable or parameter defined in the symbol table.
-     * @param ident the identifier AST
-     * @return AST node representing a defined identifier 
-     */
-    protected JDOQLAST analyseDefinedIdentifier(JDOQLAST ident)
-    {
-        JDOQLAST ast = null;
-        String name = ident.getText();
-        Decl decl = (Decl)symtab.getDeclaration(name);
-        if (decl != null) {
-            if (decl instanceof VariableDecl) {
-                ast = new VariableAccessExpr();
-                ast.initialize(VARIABLE_ACCESS, name, decl.getTypeInfo());
-                ast.setLine(ident.getLine());
-                ast.setColumn(ident.getColumn());
-            }
-            else if (decl instanceof ParameterDecl) {   
-                ast = new ParameterAccessExpr();
-                ast.initialize(PARAMETER_ACCESS, name, decl.getTypeInfo());
-                ast.setLine(ident.getLine());
-                ast.setColumn(ident.getColumn());
-            }
-        }
-        else {
-            JavaField javaField = candidateClass.getJavaField(name);
-            if (javaField != null) {
-                ThisExpr thisAST = new ThisExpr();
-                thisAST.initialize(THIS, "this", candidateClass); //NOI18N
-                ast = analyseFieldAccess(thisAST, ident, candidateClass, 
-                                         javaField);
-                ast.setLine(ident.getLine());
-                ast.setColumn(ident.getColumn());
-            }
-        }
-        return ast;
-    }
-    
-    /**
-     * Analyses a call for an object that implements Collection. 
-     * Currently, only contains and isEmpty are supported.
-     */
-    protected JDOQLAST analyseCollectionCall(JDOQLAST dot, JDOQLAST collection, 
-                                             JDOQLAST method, JDOQLAST args)
-    {
-        String methodName = method.getText();
-        JDOQLAST call = null;
-        JDOQLAST firstArg = (JDOQLAST)args.getFirstChild();
-        if (methodName.equals("contains")) { //NOI18N
-            call = new ContainsCallExpr();
-            call.initialize(CONTAINS, methodName, PredefinedType.booleanType);
-            checkContainsArgs(collection, method, firstArg);
-            call.setFirstChild(collection);
-            collection.setNextSibling(firstArg);
-        }
-        else if (methodName.equals("isEmpty")) { //NOI18N
-            call = new IsEmptyCallExpr();
-            call.initialize(IS_EMPTY, methodName, PredefinedType.booleanType);
-            checkIsEmptyArgs(firstArg);
-            call.setFirstChild(collection);
-            collection.setNextSibling(null);
-        }
-        else {
-            errorMsg.error(dot.getLine(), dot.getColumn(),  
-                msg.msg("EXC_InvalidMethodCall"));  //NOI18N
-            call = new IsEmptyCallExpr();
-            call.initialize(IS_EMPTY, methodName, ErrorType.errorType);
-        }
-        return call;
-    }
-    
-    /**
-     * Check the arguments of a contains call.
-     */
-    protected void checkContainsArgs(JDOQLAST collection, JDOQLAST method, 
-                                     JDOQLAST args)
-    {
-        JDOQLAST firstArg = args;
-        if (firstArg == null) {
-            errorMsg.error(method.getLine(), method.getColumn(),
-                msg.msg("EXC_WrongNumberOfArgs")); //NOI18N
-        }
-        else if (firstArg.getNextSibling() != null) {
-            JDOQLAST nextArg = (JDOQLAST)firstArg.getNextSibling();
-            errorMsg.error(nextArg.getLine(), nextArg.getColumn(),
-                msg.msg("EXC_WrongNumberOfArgs")); //NOI18N
-        }
-        else {
-            JavaType elementType = PredefinedType.objectType;
-            JavaField collectionJavaField = getCollectionField(collection);
-            if (collectionJavaField != null) {
-                elementType = TypeSupport.getElementType(collectionJavaField);
-            }
-            JavaType argumentType = firstArg.getTypeInfo();
-            JavaType testElementType = elementType.isPrimitive() ?
-                ((PrimitiveType)elementType).getWrapperClassType() : elementType;
-            JavaType testArgumentType = argumentType.isPrimitive() ?
-                ((PrimitiveType)argumentType).getWrapperClassType() : argumentType;
-            // elementType compatible with argumentType => OK
-            // argumentType compatible with elementType => OK
-            // otherwise error
-            if (!testElementType.isCompatibleWith(testArgumentType) &&
-                !testArgumentType.isCompatibleWith(testElementType)) {
-                errorMsg.error(collection.getLine(), collection.getColumn(),
-                    msg.msg("EXC_CollectionElementTypeMismatch", //NOI18N
-                        elementType.getName(), argumentType.getName()));
-            }
-        }
-    }
-
-    /**
-     *
-     */
-    protected JavaField getCollectionField(JDOQLAST expr)
-    {
-        JDOQLAST child = (JDOQLAST)expr.getFirstChild();
-        switch (expr.getType()) {
-        case FIELD_ACCESS:
-        case NAVIGATION:
-            if (child != null) {
-                JavaType classType = child.getTypeInfo();
-                String fieldName = null;
-                if (child.getNextSibling() != null) {
-                    fieldName = child.getNextSibling().getText();
-                }
-                else {
-                    fieldName = ((FieldAccessExpr)expr).getName();
-                }
-                return classType.getJavaField(fieldName);
-            }
-            errorMsg.fatal(msg.msg("ERR_MissingChildren", expr)); //NOI18N
-            break;
-        case CAST:
-            if ((child != null) && (child.getNextSibling() != null)) {
-                return getCollectionField((JDOQLAST)child.getNextSibling());
-            }
-            errorMsg.fatal(msg.msg("ERR_MissingChildren", expr)); //NOI18N
-            break;
-        }
-        return null;
-    }
-
-    /**
-     * Check the arguments of a isEmpty call.
-     */
-    protected void checkIsEmptyArgs(JDOQLAST args)
-    {
-        if (args != null) {
-            // isEmpty does not take parameters
-            errorMsg.error(args.getLine(), args.getColumn(),
-                msg.msg("EXC_WrongNumberOfArgs")); //NOI18N
-        }
-    }
-
-    /**
-     * Analyses a call for an object of type String.
-     * Currently startsWith and endsWith are the only valid String methods
-     * in a query filter.
-     */
-    protected JDOQLAST analyseStringCall(JDOQLAST dot, JDOQLAST string, 
-                                         JDOQLAST method, JDOQLAST args)
-    {
-        String methodName = method.getText();
-        JDOQLAST call = null;
-        JDOQLAST firstArg = (JDOQLAST)args.getFirstChild();
-        if (methodName.equals("startsWith")) { //NOI18N
-            call = new StartsWithCallExpr();
-            call.initialize(STARTS_WITH, methodName, PredefinedType.booleanType);
-            checkStringCallArgs(method, firstArg);
-            call.setFirstChild(string);
-            string.setNextSibling(firstArg);
-        }
-        else if (methodName.equals("endsWith")) { //NOI18N
-            call = new EndsWithCallExpr();
-            call.initialize(ENDS_WITH, methodName, PredefinedType.booleanType);
-            checkStringCallArgs(method, firstArg);
-            call.setFirstChild(string);
-            string.setNextSibling(firstArg);
-        }
-        else
-        {
-            errorMsg.error(dot.getLine(), dot.getColumn(),  
-                msg.msg("EXC_InvalidMethodCall"));  //NOI18N
-            call = new StartsWithCallExpr();
-            call.initialize(STARTS_WITH, methodName, ErrorType.errorType);
-        }
-        return call;
-    }
-
-    /**
-     * Check the arguments of a startWith or endWith call.
-     */
-    protected void checkStringCallArgs(JDOQLAST method, JDOQLAST args)
-    {
-        JDOQLAST firstArg = args;
-        if (firstArg == null) {
-            errorMsg.error(method.getLine(), method.getColumn(),
-                msg.msg("EXC_WrongNumberOfArgs")); //NOI18N
-        }
-        else if (firstArg.getNextSibling() != null) {
-            JDOQLAST nextArg = (JDOQLAST)firstArg.getNextSibling();
-            errorMsg.error(nextArg.getLine(), nextArg.getColumn(),
-                msg.msg("EXC_WrongNumberOfArgs")); //NOI18N
-        }
-        else {
-            JavaType argType = firstArg.getTypeInfo();
-            if (!argType.equals(PredefinedType.stringType)) {
-                errorMsg.error(firstArg.getLine(), firstArg.getColumn(),
-                    msg.msg("EXC_ArgumentTypeMismatch", //NOI18N
-                        argType.getName(), PredefinedType.stringType.getName()));
-            }
-        }
-    }
-
-    /**
-     * Analyses a bitwise/logical operation (&, |, ^)
-     * @param op the bitwise/logical operator
-     * @param leftAST left operand 
-     * @param rightAST right operand
-     * @return the type info of the operator 
-     */
-    protected JavaType analyseBitwiseExpr(JDOQLAST op, JDOQLAST leftAST, 
-                                          JDOQLAST rightAST)
-    {
-        JavaType left = leftAST.getTypeInfo();
-        JavaType right = rightAST.getTypeInfo();
-        
-        // handle error type
-        if (left.equals(ErrorType.errorType) || 
-            right.equals(ErrorType.errorType))
-            return ErrorType.errorType;
-        
-        switch(op.getType()) {
-        case BAND:
-        case BOR:
-            if (TypeSupport.isBooleanType(left) && 
-                TypeSupport.isBooleanType(right)) {
-                JavaType common = PredefinedType.booleanType;
-                ((BinaryExpr)op).setCommonOperandType(
-                    TypeSupport.getJavaClass(common));
-                return common;
-            }
-            break;
-        }
-
-        // if this code is reached a bitwise operator was used with 
-        // invalid arguments
-        errorMsg.error(op.getLine(), op.getColumn(), 
-            msg.msg("EXC_InvalidArguments",  op.getText())); //NOI18N
-        return ErrorType.errorType;
-    }
-    
-    /**
-     * Analyses a boolean conditional operation (&&, ||)
-     * @param op the conditional operator
-     * @param leftAST left operand 
-     * @param rightAST right operand
-     * @return the type info of the operator 
-     */
-    protected JavaType analyseConditionalExpr(JDOQLAST op, JDOQLAST leftAST, 
-                                              JDOQLAST rightAST)
-    {
-        JavaType left = leftAST.getTypeInfo();
-        JavaType right = rightAST.getTypeInfo();
-
-        // handle error type
-        if (left.equals(ErrorType.errorType) || 
-            right.equals(ErrorType.errorType))
-            return ErrorType.errorType;
-
-        switch(op.getType()) {
-        case AND:
-        case OR:
-            if (TypeSupport.isBooleanType(left) && 
-                TypeSupport.isBooleanType(right)) {
-                JavaType common = PredefinedType.booleanType;
-                ((BinaryExpr)op).setCommonOperandType(
-                    TypeSupport.getJavaClass(common));
-                return common;
-            }
-            break;
-        }
-        
-        // if this code is reached a conditional operator was used 
-        // with invalid arguments
-        errorMsg.error(op.getLine(), op.getColumn(), 
-            msg.msg("EXC_InvalidArguments", op.getText())); //NOI18N
-        return ErrorType.errorType;
-    }
-
-    /**
-     * Analyses a relational operation.
-     * A relational operation contains one of <, <=, >, >=, ==, or !=.
-     * @param op the relational operator
-     * @param leftAST left operand 
-     * @param rightAST right operand
-     * @return the node representing the relational expr
-     */
-    protected JDOQLAST analyseRelationalExpr(JDOQLAST op, JDOQLAST leftAST, 
-                                             JDOQLAST rightAST)
-    {
-        JavaType left = leftAST.getTypeInfo();
-        JavaType right = rightAST.getTypeInfo();
-
-        // handle error type
-        if (left.equals(ErrorType.errorType) || 
-            right.equals(ErrorType.errorType)) {
-            op.setTypeInfo(ErrorType.errorType);
-            return op;
-        }
-
-        // special check for <, <=, >, >=
-        // left and right hand types must be orderable
-        switch(op.getType()) {
-        case LT:
-        case LE:
-        case GT:
-        case GE:
-            if (!left.isOrderable()) {
-                errorMsg.error(op.getLine(), op.getColumn(),
-                    msg.msg("EXC_NotSortableType", //NOI18N
-                        left.getName(), op.getText()));
-                op.setTypeInfo(ErrorType.errorType);
-                return op;
-            }
-            if (!right.isOrderable()) {
-                errorMsg.error(op.getLine(), op.getColumn(),
-                    msg.msg("EXC_NotSortableType", //NOI18N 
-                        right.getName(), op.getText()));
-                op.setTypeInfo(ErrorType.errorType);
-                return op;
-            }
-            break;
-        case EQUAL:
-            if (left.isPersistenceCapable() ||
-                right.isPersistenceCapable()) {
-                op.setType(OBJECT_EQUAL);
-            }
-            else if (left.isJDOSupportedCollection() || 
-                     right.isJDOSupportedCollection()) {
-                op.setType(COLLECTION_EQUAL);
-            }
-            break;
-        case NOT_EQUAL:
-            if (left.isPersistenceCapable() || 
-                right.isPersistenceCapable()) {
-                op.setType(OBJECT_NOT_EQUAL);
-            }
-            else if (left.isJDOSupportedCollection() || 
-                     right.isJDOSupportedCollection()) {
-                op.setType(COLLECTION_NOT_EQUAL);
-            }
-            break;
-        }
-        
-        JavaType common = getCommonOperandType(left, right);
-        if (common != ErrorType.errorType) {
-            ((BinaryExpr)op).setCommonOperandType(
-                TypeSupport.getJavaClass(common));
-            op.setTypeInfo(PredefinedType.booleanType);
-            // check for operands of type char or Character;
-            // they need to be explictly cast to the common operand type.
-            leftAST = addCharacterCast(leftAST, common);
-            rightAST = addCharacterCast(rightAST, common);
-            op.setFirstChild(leftAST);
-            leftAST.setNextSibling(rightAST);
-            return op;
-        }
-        
-        // if this code is reached a conditional operator was used with 
-        // invalid arguments
-        errorMsg.error(op.getLine(), op.getColumn(), 
-            msg.msg("EXC_InvalidArguments",  op.getText())); //NOI18N 
-        op.setTypeInfo(ErrorType.errorType);
-        return op;
-    }
-    
-    /**
-     * Analyses a binary arithmetic expression +, -, *, /.
-     * @param op the  operator
-     * @param leftAST left operand 
-     * @param rightAST right operand
-     * @return the node representing the binary arithmetic op
-     */
-    protected JDOQLAST analyseBinaryArithmeticExpr(JDOQLAST op, JDOQLAST leftAST,
-                                                   JDOQLAST rightAST)
-    {
-        JavaType left = leftAST.getTypeInfo();
-        JavaType right = rightAST.getTypeInfo();
-
-        // handle error type
-        if (left.equals(ErrorType.errorType) || 
-            right.equals(ErrorType.errorType)) {
-            op.setTypeInfo(ErrorType.errorType);
-            return op;
-        }
-
-        if (TypeSupport.isNumberType(left) && TypeSupport.isNumberType(right)) {
-            JavaType common = getCommonOperandType(left, right);
-            if (common != ErrorType.errorType) {
-                ((BinaryExpr)op).setCommonOperandType(
-                    TypeSupport.getJavaClass(common));
-                op.setTypeInfo(common);
-                // Check for operands of type char or Character;
-                // they need to be explictly cast to the common operand type.
-                leftAST = addCharacterCast(leftAST, common);
-                rightAST = addCharacterCast(rightAST, common);
-                op.setFirstChild(leftAST);
-                leftAST.setNextSibling(rightAST);
-                return op;
-            }
-        }
-        else if (op.getType() == PLUS) {
-            // handle + for strings
-            if (left.equals(PredefinedType.stringType) && 
-                right.equals(PredefinedType.stringType)) {
-                JavaType common = PredefinedType.stringType;
-                ((BinaryExpr)op).setCommonOperandType(
-                    TypeSupport.getJavaClass(common));
-                op.setTypeInfo(common);
-                // change the token type to CONCAT
-                op.setType(CONCAT);
-                return op;
-            }
-        }
-
-        // if this code is reached a conditional operator was used 
-        // with invalid arguments
-        errorMsg.error(op.getLine(), op.getColumn(), 
-            msg.msg("EXC_InvalidArguments",  op.getText())); //NOI18N
-        op.setTypeInfo(ErrorType.errorType);
-        return op;
-    }
-    
-    /**
-     * The query runtime has a problem with binary or relational expressions 
-     * having an operand of type char or Character. The query runtime treats the
-     * value of the expression to be a value of the promoted type (see binary 
-     * numeric promotion). The value will be of type Character which is not 
-     * compatible to java.lang.Number. 
-     * In the current query runtime only the CastExpression includes the 
-     * conversion code from the Character to Number. This keeps the code for
-     * binary and relational expressions free from any special treatement of 
-     * char or Character values.
-     * As a consequence the semantic analsis needs to insert a cast node 
-     * whenever binary numeric promotion converts a char or Character into a 
-     * numeric or Number type.
-     * Method addCharacterCast checks whether the specified ast is of type 
-     * char or Character. If so it wraps it into a cast expression ast using
-     * the specified type. If not the ast is reured as it is.
-     * @param ast the ast to be checked
-     * @param common the type to be used inside the cast
-     * @return a cast node that wraps the specified ast node, if the ast is 
-     * of type char or Character; the ast itself otherwise.
-     */
-    protected JDOQLAST addCharacterCast(JDOQLAST ast, JavaType common)
-    {
-        JDOQLAST node = ast;
-        if (TypeSupport.isCharType(ast.getTypeInfo())) {
-            CastExpr cast = new CastExpr();
-            cast.initialize(CAST, "CAST", common); //NOI18N
-            cast.setLine(ast.getLine());
-            cast.setColumn(ast.getColumn());
-            TypeImpl typeNode = new TypeImpl();
-            typeNode.initialize(TYPE, common.getName(), common);
-            cast.setFirstChild(typeNode);
-            typeNode.setNextSibling(ast);
-            node = cast;
-        }
-        return node;
-    }
-    
-    /**
-     * Returns the common type info for the specified operand types. 
-     * This includes binary numeric promotion as specified in Java.
-     * @param left type info of left operand 
-     * @param right type info of right operand
-     * @return the common type info
-     */
-    protected JavaType getCommonOperandType(JavaType left, JavaType right)
-    {
-        if (TypeSupport.isNumberType(left) && TypeSupport.isNumberType(right)) {
-            // handle java.math.BigDecimal
-            if (left.isCompatibleWith(PredefinedType.bigDecimalType))
-                return left;
-            if (right.isCompatibleWith(PredefinedType.bigDecimalType))
-                return right;
-            
-            // handle java.math.BigInteger
-            if (left.isCompatibleWith(PredefinedType.bigIntegerType)) {
-                // if right is floating point return BigDecimal, 
-                // otherwise return BigInteger
-                if (right.isWrapperClass())
-                    right = ((WrapperClassType)right).getWrappedPrimitiveType();
-                return right.isFloatingPoint() ? 
-                       PredefinedType.bigDecimalType : left;
-            }
-            if (right.isCompatibleWith(PredefinedType.bigIntegerType)) {
-                // if left is floating point return BigDecimal, 
-                // otherwise return BigInteger
-                if (left.isWrapperClass())
-                    left = ((WrapperClassType)left).getWrappedPrimitiveType();
-                return left.isFloatingPoint() ? 
-                       PredefinedType.bigDecimalType : right;
-            }       
-
-            boolean wrapper = false;
-            if (left.isWrapperClass()) {
-                left = ((WrapperClassType)left).getWrappedPrimitiveType();
-                wrapper = true;
-            }
-            if (right.isWrapperClass()) {
-                right = ((WrapperClassType)right).getWrappedPrimitiveType();
-                wrapper = true;
-            }
-            
-            // handle numeric types with arbitrary arithmetic operator
-            if (TypeSupport.isNumericType(left) && 
-                TypeSupport.isNumericType(right)) {
-                JavaType promotedType = 
-                    TypeSupport.binaryNumericPromotion(left, right);
-                if (wrapper && TypeSupport.isNumericType(promotedType)) {   
-                    promotedType = 
-                        ((PrimitiveType)promotedType).getWrapperClassType();
-                }
-                return promotedType;
-            }
-        }
-        else if (TypeSupport.isBooleanType(left) && 
-                 TypeSupport.isBooleanType(right)) {
-            // check for boolean wrapper class: if one of the operands has the 
-            // type Boolean return Boolean, otherwise return boolean.
-            if (left instanceof WrapperClassType)
-               return left;
-            else if (right instanceof WrapperClassType)
-               return right;
-            else
-               return PredefinedType.booleanType;
-        }
-        else if (left.isCompatibleWith(right)) {
-            return right;
-        }
-        else if (right.isCompatibleWith(left)) {
-            return left;
-        }
-
-        // not compatible types => return errorType
-        return ErrorType.errorType;
-    }
-
-    /**
-     * Analyses a unary expression + and -
-     * @param op the operator
-     * @param argAST the opreand
-     * @return the node representing the unary expression
-     */
-    protected JDOQLAST analyseUnaryArithmeticExpr(JDOQLAST op, JDOQLAST argAST)
-    {
-        JDOQLAST expr = null;
-        JavaType type = analyseUnaryArithmeticExprType(op, argAST);
-
-        switch(op.getType()) {
-        case UNARY_PLUS:
-            // create the correct node type here, 
-            // the lexer create Binary plus
-            expr = new UnaryPlusExpr();
-            expr.initialize(UNARY_PLUS, "+", type); //NOI18N
-            break;
-        case UNARY_MINUS:
-            // create the correct node type here, 
-            // the lexer create Binary plus
-            expr = new UnaryMinusExpr();
-            expr.initialize(UNARY_MINUS, "-", type); //NOI18N
-            break;
-        }
-        expr.setFirstChild(addCharacterCast(argAST, type));
-        expr.setLine(op.getLine());
-        expr.setColumn(op.getColumn());
-
-        return expr;
-    }
-
-    /**
-     * Analyses a unary expression + and -
-     * @param op the operator
-     * @param argAST the operand
-     * @return the type info of the operator 
-     */
-    protected JavaType analyseUnaryArithmeticExprType(JDOQLAST op, 
-                                                      JDOQLAST argAST)
-    {
-        JavaType arg = argAST.getTypeInfo();
-
-        // handle error type
-        if (arg.equals(ErrorType.errorType))
-            return ErrorType.errorType;
-        
-        // handle java.math.BigDecimal and java.math.BigInteger
-        if (arg.isCompatibleWith(PredefinedType.bigDecimalType))
-            return arg;
-
-        // handle java.math.BigInteger
-        if (arg.isCompatibleWith(PredefinedType.bigIntegerType))
-            return arg;
-
-        boolean wrapper = false;
-        if (arg.isWrapperClass()) {
-            arg = ((WrapperClassType)arg).getWrappedPrimitiveType();
-            wrapper = true;
-        }
-
-        if (TypeSupport.isNumericType(arg)) {
-            JavaType promotedType = TypeSupport.unaryNumericPromotion(arg);
-            if (wrapper && TypeSupport.isNumericType(promotedType)) {
-                promotedType = 
-                    ((PrimitiveType)promotedType).getWrapperClassType();
-            }
-            return promotedType;
-        }
-        
-        // if this code is reached a conditional operator was used 
-        // with invalid arguments
-        errorMsg.error(op.getLine(), op.getColumn(), 
-            msg.msg("EXC_InvalidArguments",  op.getText())); //NOI18N
-        return ErrorType.errorType;
-    }
-
-    /**
-     * Analyses a complement expression.
-     * A complement expression contains one of ! and ~
-     * @param op the operator
-     * @param argAST the operand
-     * @return the node representing the complement expression
-     */
-    protected JDOQLAST analyseComplementExpr(JDOQLAST op, JDOQLAST argAST)
-    {
-        JDOQLAST expr = null;
-        JavaType type = analyseComplementExprType(op, argAST);
-
-        switch(op.getType()) {
-        case BNOT:
-            // create the correct node type here, 
-            // the lexer create Binary plus
-            expr = new ComplementExpr();
-            expr.initialize(BNOT, "~", type); //NOI18N
-            break;
-        case LNOT:
-            // create the correct node type here, 
-            // the lexer create Binary plus
-            expr = new NotExpr();
-            expr.initialize(LNOT, "!", type); //NOI18N
-            break;
-        }
-        expr.setFirstChild(addCharacterCast(argAST, type));
-        expr.setLine(op.getLine());
-        expr.setColumn(op.getColumn());
-
-        return expr;
-    }
-
-    /**
-     * Analyses a complement expression.
-     * A complement expression contains one of ! and ~
-     * @param op the operator
-     * @param argAST the operand
-     * @return the type info of the operator 
-     */
-    protected JavaType analyseComplementExprType(JDOQLAST op, JDOQLAST argAST)
-    {
-        JavaType arg = argAST.getTypeInfo();
-
-        // handle error type
-        if (arg.equals(ErrorType.errorType))
-            return ErrorType.errorType;
-
-        switch(op.getType()) {
-        case BNOT:
-            if (TypeSupport.isIntegralType(arg)) {
-                boolean wrapper = false;
-                if (arg.isWrapperClass()) {
-                    arg = ((WrapperClassType)arg).getWrappedPrimitiveType();
-                    wrapper = true;
-                }
-
-                JavaType promotedType = TypeSupport.unaryNumericPromotion(arg);
-                if (wrapper) {
-                    promotedType = 
-                        ((PrimitiveType)promotedType).getWrapperClassType();
-                }
-                return promotedType;
-            }
-            break;
-        case LNOT:
-            if (TypeSupport.isBooleanType(arg)) {
-                return arg;
-            }
-            break;
-        }
-        
-        // if this code is reached a conditional operator was used with 
-        // invalid arguments
-        errorMsg.error(op.getLine(), op.getColumn(), 
-            msg.msg("EXC_InvalidArguments", op.getText())); //NOI18N 
-        return ErrorType.errorType;
-    }
-    
-    /**
-     *
-     */
-    protected void checkConstraints(JDOQLAST ast, VariableChecker tab)
-    {
-        checkConstraints(ast, null, tab);
-    }
-
-    /**
-     *
-     */
-    protected void checkConstraints(JDOQLAST ast, String dependentVariable, 
-                                    VariableChecker tab)
-    {
-        if (ast == null) return;
-        switch (ast.getType()) {
-        case VARIABLE_ACCESS:  
-            tab.markUsed(ast, dependentVariable);
-            break;
-        case CONTAINS:
-            JDOQLAST expr = (JDOQLAST)ast.getFirstChild();
-            JDOQLAST var = (JDOQLAST)expr.getNextSibling();
-            if (var.getType() == VARIABLE_ACCESS) {
-                checkConstraints(expr, var.getText(), tab);
-                tab.markConstraint(var, expr);
-            }
-            else {
-                checkConstraints(expr, dependentVariable, tab);
-            }
-            break;
-        case BOR:
-        case OR:
-            JDOQLAST left = (JDOQLAST)ast.getFirstChild();
-            JDOQLAST right = (JDOQLAST)left.getNextSibling();
-            // prepare tab copy for right hand side and merge 
-            // the right hand side copy into vartab
-            VariableChecker copy = new VariableChecker(tab);
-            checkConstraints(left, dependentVariable, tab);
-            checkConstraints(right, dependentVariable, copy);
-            tab.merge(copy);
-            break;
-        default:
-            for (JDOQLAST node = (JDOQLAST)ast.getFirstChild(); 
-                 node != null; node = (JDOQLAST)node.getNextSibling())  {
-                checkConstraints(node, dependentVariable, tab);
-            }
-            break;
-        }
-    }
-
-}
-
-// rules
-
-query
-    :   #(  QUERY_TREE
-            candidateClass
-            {
-                typeNames.init(candidateClass.getName());
-            }
-            imports
-            parameters
-            variables
-            ordering
-            filter
-        )
-    ;
-
-// ----------------------------------
-// rules: candidate class
-// ----------------------------------
-
-candidateClass
-{   
-    errorMsg.setContext("setClass"); //NOI18N
-}
-    :   #( c:CANDIDATE_CLASS t:type )
-        {
-            candidateClass = #t.getTypeInfo();
-            if (candidateClass == null) {
-                errorMsg.fatal(msg.msg("EXC_UnknownCandidateClass", //NOI18N
-                        #t.getText()));
-            }
-            #c.setTypeInfo(candidateClass);
-        }
-    ;
-
-// ----------------------------------
-// rules: import declaration
-// ----------------------------------
-
-imports!
-{   
-    errorMsg.setContext("declareImports"); //NOI18N
-}
-    :   ( declareImport )*
-    ;
-
-declareImport
-    {  String name = null; }
-    :   #( i1:IMPORT name = qualifiedName )
-        {
-            JavaType type = typeSupport.checkType(name);
-            if (type == null) {
-                errorMsg.error(#i1.getLine(), #i1.getColumn(),
-                    msg.msg("EXC_UnknownType", name)); //NOI18N
-            }
-
-            String old = typeNames.declareImport(name);
-            if (old != null) {
-                errorMsg.error(#i1.getLine(), #i1.getColumn(),
-                    msg.msg("EXC_MultipleImport", name)); //NOI18N
-            }
-        }
-    |   #( i2:IMPORT_ON_DEMAND name = qualifiedName )
-        {
-            typeNames.declareImportOnDemand(name);
-        }
-    ;
-
-// ----------------------------------
-// rules: parameter declaration
-// ----------------------------------
-
-parameters
-{   
-    errorMsg.setContext("declareParameters"); //NOI18N
-}
-    :   ( declareParameter )*
-    ;
-
-declareParameter
-    :   #( p:PARAMETER_DECL t:type ( i:IDENT )? )
-        {
-            ParameterDecl paramDecl = (ParameterDecl)#p;
-            String name = (#i != null) ? #i.getText() : paramDecl.getName();
-            JavaType type = #t.getTypeInfo();
-            if (symtab.declare(name, paramDecl) != null) {
-                errorMsg.error(#i.getLine(), #i.getColumn(),
-                    msg.msg("EXC_MultipleDeclaration", name)); //NOI18N
-            }
-            paramDecl.setTypeInfo(type);
-            paramDecl.setName(name);
-            paramDecl.setFirstChild(#t);
-            paramtab.declare(paramDecl);
-            #t.setNextSibling(null);
-        }
-    ;
-
-// ----------------------------------
-// rules: variable declaration
-// ----------------------------------
-
-variables 
-{ 
-    errorMsg.setContext("declareVariables"); //NOI18N
-}
-    :   ( declareVariable )*
-    ;
-
-declareVariable
-    :   #( v:VARIABLE_DECL t:type ( i:IDENT )? )
-        {
-            VariableDecl varDecl = (VariableDecl)#v;
-            String name = (#i != null) ? #i.getText() : varDecl.getName();
-            JavaType type = #t.getTypeInfo();
-            if (symtab.declare(name, varDecl) != null) {
-                errorMsg.error(#i.getLine(), #i.getColumn(),
-                    msg.msg("EXC_MultipleDeclaration", name)); //NOI18N
-            }
-            varDecl.setTypeInfo(type);
-            varDecl.setName(name);
-            varDecl.setFirstChild(#t);
-            #t.setNextSibling(null);
-            vartab.declare(varDecl);
-            varChecker.add(name);
-        }
-    ;
-
-// ----------------------------------
-// rules: ordering specification
-// ----------------------------------
-
-ordering 
-{   
-    errorMsg.setContext("setOrdering"); //NOI18N
-}
-    :   ( orderSpec )*
-    ;
-
-orderSpec
-    :   #( ASCENDING e1:expression )
-        {   analyseOrderingExpression(#e1); }
-    |   #( DESCENDING e2:expression )
-        {   analyseOrderingExpression(#e2); }
-    ;
-
-// ----------------------------------
-// rules: filer expression
-// ----------------------------------
-
-filter
-{   
-    errorMsg.setContext("setFilter"); //NOI18N
-}
-        // There is always a filter defined and it is the last node of the query
-        // tree. Otherwise all the remaining subtrees after the CANDIDATE_CLASS 
-        // subtree are empty which results in a ClassCastException 
-        // antlr.ASTNullType during analysis of the (non existsent) subtrees
-    :   e:expression
-        {
-            JavaType exprType = #e.getTypeInfo();
-            if (!(TypeSupport.isBooleanType(exprType) || 
-                    exprType.equals(ErrorType.errorType))) {
-                // filter expression must have the type boolean or Boolean
-                errorMsg.error(#e.getLine(), #e.getColumn(),
-                    msg.msg("EXC_BooleanFilterExpected", exprType)); //NOI18N
-            }
-            checkConstraints(#e, varChecker);
-            varChecker.checkConstraints();
-        }
-    ;
-
-expression
-    {   String repr; }
-    :   repr = e:exprNoCheck[false]
-        {
-            if (repr != null) {
-               #e.setTypeInfo(ErrorType.errorType);
-               errorMsg.error(#e.getLine(), #e.getColumn(),
-                    msg.msg("EXC_UndefinedExpression", repr)); //NOI18N
-            }
-        }
-    ;
-
-exprNoCheck [boolean insideDotExpr] returns [String repr]
-    {   repr = null; }  // repr is used to get the text of identifier
-                        // inside a dot expression
-    :   bitwiseExpr
-    |   conditionalExpr
-    |   relationalExpr
-    |   binaryArithmeticExpr
-    |   unaryArithmeticExpr
-    |   complementExpr
-    |   repr = primary[insideDotExpr]
-    ;
-
-bitwiseExpr
-    :   #( op1:BAND left1:expression right1:expression )
-        {
-            #op1.setTypeInfo(analyseBitwiseExpr(#op1, #left1, #right1));
-        }
-    |   #( op2:BOR  left2:expression right2:expression )
-        {
-            #op2.setTypeInfo(analyseBitwiseExpr(#op2, #left2, #right2));
-        }
-    ;
-
-conditionalExpr
-    :   #( op1:AND left1:expression right1:expression )
-        {
-            #op1.setTypeInfo(analyseConditionalExpr(#op1, #left1, #right1));
-        }
-    |   #( op2:OR  left2:expression right2:expression )
-        {
-            #op2.setTypeInfo(analyseConditionalExpr(#op2, #left2, #right2));
-        }
-    ;
-
-relationalExpr
-{
-    JavaType left = null;
-    JavaType right = null;
-}
-    :   #( op1:EQUAL left1:expression right1:expression )
-        {
-            #relationalExpr = analyseRelationalExpr(#op1, #left1, #right1);
-        }
-    |   #(  op2:NOT_EQUAL left2:expression right2:expression )
-        {
-            #relationalExpr = analyseRelationalExpr(#op2, #left2, #right2);
-        }
-    |   #(  op3:LT left3:expression right3:expression )
-        {
-            #relationalExpr = analyseRelationalExpr(#op3, #left3, #right3);
-        }
-    |   #(  op4:GT left4:expression right4:expression )
-        {
-            #relationalExpr = analyseRelationalExpr(#op4, #left4, #right4);
-        }
-    |   #(  op5:LE left5:expression right5:expression )
-        {
-            #relationalExpr = analyseRelationalExpr(#op5, #left5, #right5);
-        }
-    |   #(  op6:GE left6:expression right6:expression )
-        {
-            #relationalExpr = analyseRelationalExpr(#op6, #left6, #right6);
-        }
-    ;
-
-binaryArithmeticExpr
-    :   #( op1:PLUS left1:expression right1:expression )
-        {
-            #binaryArithmeticExpr = analyseBinaryArithmeticExpr(#op1, #left1, 
-                                                                #right1);
-        }
-    |   #( op2:MINUS left2:expression right2:expression )
-        {
-            #binaryArithmeticExpr = analyseBinaryArithmeticExpr(#op2, #left2,
-                                                                #right2);
-        }
-    |   #( op3:STAR left3:expression right3:expression )
-        {
-            #binaryArithmeticExpr = analyseBinaryArithmeticExpr(#op3, #left3,
-                                                                #right3);
-        }
-    |   #( op4:DIV left4:expression right4:expression )
-        {
-            #binaryArithmeticExpr = analyseBinaryArithmeticExpr(#op4, #left4,
-                                                                #right4);
-        }
-    ;
-
-unaryArithmeticExpr
-    :   #( op1:UNARY_PLUS arg1:expression )
-        {
-            #unaryArithmeticExpr = analyseUnaryArithmeticExpr(#op1, #arg1);
-        }
-    |   #( op2:UNARY_MINUS arg2:expression )
-        {
-            #unaryArithmeticExpr = analyseUnaryArithmeticExpr(#op2, #arg2);
-        }
-    ;
-
-complementExpr
-    :   #( op1:BNOT arg1:expression )
-        {
-            #complementExpr = analyseComplementExpr(#op1, #arg1);
-        }
-    |   #( op2:LNOT arg2:expression )
-        {
-            #complementExpr = analyseComplementExpr(#op2, #arg2);
-        }
-    ;
-
-primary [boolean insideDotExpr] returns [String repr]
-{   repr = null; } 
-    :   #( c:CAST t:type e:expression )
-        {
-            JavaType type = #t.getTypeInfo();
-            JavaType exprType = #e.getTypeInfo();
-            if (! ((TypeSupport.isNumberType(type) && 
-                    TypeSupport.isNumberType(exprType)) ||
-                    type.isCompatibleWith(exprType) || 
-                    exprType.isCompatibleWith(type))) {
-                errorMsg.error(#c.getLine(), #c.getColumn(),
-                    msg.msg("EXC_InvalidCast", //NOI18N
-                        exprType.getName(), type.getName()));
-                type = ErrorType.errorType;
-            }
-            CastExpr cast = new CastExpr();
-            cast.initialize(#c.getType(), "CAST", type); //NOI18N
-            cast.setLine(#c.getLine());
-            cast.setColumn(#c.getColumn());
-            cast.setFirstChild(#t);
-            #t.setNextSibling(#e);
-            #primary = cast;
-        }
-    |   literal
-    |   i:THIS
-        { #i.setTypeInfo(candidateClass); }
-    |   repr = dotExpr
-    |   repr = identifier [insideDotExpr]
-    |   parameterAccess
-    |   variableAccess
-    |   fieldAccess
-    |   navigation
-    |   contains
-    |   isEmpty
-    |   startsWith
-    |   endsWith
-    ;
- 
-literal
-    :   b1:TRUE          { #b1.setTypeInfo(PredefinedType.booleanType); }
-    |   b2:FALSE         { #b2.setTypeInfo(PredefinedType.booleanType); }
-    |   b3:BOOLEAN_LITERAL { #b3.setTypeInfo(PredefinedType.booleanType); }
-    |   i:INT_LITERAL    { #i.setTypeInfo(PredefinedType.intType); }
-    |   l:LONG_LITERAL   { #l.setTypeInfo(PredefinedType.longType); }
-    |   f:FLOAT_LITERAL  { #f.setTypeInfo(PredefinedType.floatType); }
-    |   d:DOUBLE_LITERAL { #d.setTypeInfo(PredefinedType.doubleType); }
-    |   c:CHAR_LITERAL   { #c.setTypeInfo(PredefinedType.charType); }
-    |   s:STRING_LITERAL { #s.setTypeInfo(PredefinedType.stringType); }
-    |   n:NULL           { #n.setTypeInfo(NullType.nullType); }
-    |   by:BYTE_LITERAL  { #by.setTypeInfo(PredefinedType.byteType); }
-    |   sh:SHORT_LITERAL { #sh.setTypeInfo(PredefinedType.shortType); }
-    |   con:CONSTANT     
-        {
-            Object value = ((ConstantExpr)#con).getValue();
-            #con.setTypeInfo((value == null) ? NullType.nullType :
-                             typeSupport.checkType(value.getClass()));
-        }
-    ;
-
-dotExpr returns [String repr]
-    {
-        repr = null;
-    }
-    :   #( dot:DOT 
-           repr = expr:exprNoCheck[true] ident:IDENT ( args:argList )?
-         )
-        {
-            JavaType type = null;
-            if (repr != null) { // possible package name
-                String qualifiedName = repr + '.' + #ident.getText();
-                type = typeSupport.checkType(qualifiedName);
-                if (type == null) {
-                    // name does not define a valid class => return qualifiedName
-                    repr = qualifiedName;
-                }
-                else if (#args == null) {
-                    // found valid class name and NO arguments specified
-                    // => use of the class name
-                    repr = null;
-                    TypeImpl typeNode = new TypeImpl();
-                    typeNode.initialize(TYPE, qualifiedName, type);
-                    #dotExpr = typeNode;
-                }
-                else {
-                    // found valid class name and arguments specified =>
-                    // looks like constructor call
-                    repr = null;
-                    errorMsg.error(dot.getLine(), dot.getColumn(),  
-                        msg.msg("EXC_InvalidMethodCall")); //NOI18N
-                }
-                #dot.setTypeInfo(type);
-                #dot.setText(#expr.getText() + '.' + #ident.getText());
-            }
-            else { // no string repr of left hand side => expression is defined
-                #dotExpr = analyseDotExpr(#dot, #expr, #ident, #args);
-            }
-        }
-    ;
-
-argList
-    :   #(ARG_LIST args)
-    ;
-
-identifier [boolean insideDotExpr] returns [String repr]
-    {
-        repr = null;   // repr is set when ident is part of a package name spec
-    }
-    :   ident:IDENT ( args:argList )?
-        {
-            String name = #ident.getText();
-
-            // check args, if defined => invalid method call
-            if (#args != null) {
-                #ident.setTypeInfo(ErrorType.errorType);
-                errorMsg.error(#ident.getLine(), #ident.getColumn(),  
-                    msg.msg("EXC_InvalidMethodCall")); //NOI18N
-            }
-            JDOQLAST ast = analyseDefinedIdentifier(#ident);
-            if (ast != null) {
-                #identifier = ast;
-            }
-            else if (insideDotExpr) {
-                JavaType resolved = typeNames.resolve(name);
-                if (resolved != null) {
-                    // type name
-                    TypeImpl typeNode = new TypeImpl();
-                    typeNode.initialize(TYPE, resolved.getName(), resolved);
-                    #identifier = typeNode;
-                }
-                else {
-                    repr = #ident.getText();
-                }
-            }
-            else {
-                #ident.setTypeInfo(ErrorType.errorType);
-                errorMsg.error(ident.getLine(), ident.getColumn(),
-                    msg.msg("EXC_UndefinedIdentifier", //NOI18N
-                        ident.getText()));
-            }
-        }
-    ;
-
-parameterAccess
-    :   p:PARAMETER_ACCESS
-        {
-            String name = #p.getText();
-            Decl decl = (Decl)symtab.getDeclaration(name);
-            if (decl instanceof ParameterDecl) {
-                #p.setTypeInfo(decl.getTypeInfo());
-            }
-            else {
-                errorMsg.error(#p.getLine(), #p.getColumn(),
-                    msg.msg("EXC_InvalidParameterAccess", name)); //NOI18N
-            }
-        }
-    ;
-
-variableAccess
-    :   #( v:VARIABLE_ACCESS ( expression )? )
-        {
-            String name = #v.getText();
-            Decl decl = (Decl)symtab.getDeclaration(name);
-            if (decl instanceof VariableDecl) {
-                #v.setTypeInfo(decl.getTypeInfo());
-            }
-            else {
-                errorMsg.error(#v.getLine(), #v.getColumn(),
-                    msg.msg("EXC_InvalidVariableAccess", name)); //NOI18N
-            }
-        }
-    ;
-
-staticFieldAccess
-    :   #( s:STATIC_FIELD_ACCESS t:type ( i:IDENT )? )
-        {
-            String fieldName = ((StaticFieldAccessExpr)#s).getName();
-            JavaType type = #t.getTypeInfo();
-            JavaType fieldType = ErrorType.errorType;
-            if (!type.isPrimitive()) {
-                // left expression is of a class type
-                JavaField javaField = type.getJavaField(fieldName);
-                if (javaField == null) {
-                    errorMsg.error(#s.getLine(), #s.getColumn(),
-                        msg.msg("EXC_UnknownField",  //NOI18N
-                            fieldName, type.getName()));
-                }
-                else {
-                    if (typeSupport.isStaticField(javaField)) {
-                        errorMsg.error(#s.getLine(), #s.getColumn(),  
-                            msg.msg("EXC_InvalidStaticReference", //NOI18N 
-                                fieldName, type.getName()));
-                    }
-                }
-                fieldType = javaField.getType();
-            }
-            else {
-                errorMsg.error(#s.getLine(), #s.getColumn(),
-                    msg.msg("EXC_ClassTypeExpressionExpected")); //NOI18N
-            }
-            #s.setTypeInfo(fieldType);
-        }
-    ;
-
-fieldAccess
-    :   #( f:FIELD_ACCESS o:expression ( i:IDENT )? )
-        {
-            String fieldName = ((FieldAccessExpr)#f).getName();
-            JavaType exprType = #o.getTypeInfo();
-            JavaType fieldType = ErrorType.errorType;
-            if (!exprType.isPrimitive()) {
-                // left expression is of a class type
-                JavaField javaField = exprType.getJavaField(fieldName);
-                if (javaField == null) {
-                    errorMsg.error(#f.getLine(), #f.getColumn(),
-                        msg.msg("EXC_UnknownField",  //NOI18N
-                            fieldName, exprType.getName()));
-                }
-                fieldType = javaField.getType();
-            }
-            else {
-                errorMsg.error(#o.getLine(), #o.getColumn(),
-                    msg.msg("EXC_ClassTypeExpressionExpected")); //NOI18N
-            }
-            #f.setTypeInfo(fieldType);
-            if (fieldType.isPersistenceCapable()) {
-                #f.setType(NAVIGATION);
-            }
-        }
-    ;
-
-navigation
-    :   #(  n:NAVIGATION o:expression ( i:IDENT )? )
-        {
-            String fieldName = ((FieldAccessExpr)#n).getName();
-            JavaType exprType = #o.getTypeInfo();
-            JavaType fieldType = ErrorType.errorType;
-            if (!exprType.isPrimitive()) {
-                // left expression is of a class type
-                JavaField javaField = exprType.getJavaField(fieldName);
-                if (javaField == null) {
-                    errorMsg.error(#n.getLine(), #n.getColumn(),
-                        msg.msg("EXC_UnknownField",  //NOI18N
-                            fieldName, exprType.getName()));
-                }
-                fieldType = javaField.getType();
-            }
-            else {
-                errorMsg.error(#o.getLine(), #o.getColumn(),
-                    msg.msg("EXC_ClassTypeExpressionExpected")); //NOI18N
-            }
-            #n.setTypeInfo(fieldType);
-        }
-    ;
-
-contains
-    :   #(c:CONTAINS collection:expression args:args )
-        {
-            // check type of collection expression
-            JavaType type = #collection.getTypeInfo();
-            if (!type.isJDOSupportedCollection()) {
-                errorMsg.error(#collection.getLine(), #collection.getColumn(),
-                    msg.msg("EXC_CollectionTypeExpected", type.getName())); //NOI18N
-            }
-            checkContainsArgs(#collection, #c, #args);
-            #c.setTypeInfo(PredefinedType.booleanType);
-        }
-    ;
-
-isEmpty
-    :   #(i:IS_EMPTY collection:expression args:args )
-        {
-            // check type of collection expression
-            JavaType type = #collection.getTypeInfo();
-            if (!type.isJDOSupportedCollection()) {
-                errorMsg.error(#collection.getLine(), #collection.getColumn(),
-                    msg.msg("EXC_CollectionTypeExpected", type.getName())); //NOI18N
-            }
-            checkIsEmptyArgs(#args);
-            #i.setTypeInfo(PredefinedType.booleanType);
-        }
-    ;
-
-startsWith
-    :   #(s:STARTS_WITH string:expression args:args )
-        {
-            // check type of string expression
-            JavaType type = #string.getTypeInfo();
-            if (!PredefinedType.stringType.equals(type)) {
-                errorMsg.error(#string.getLine(), #string.getColumn(),
-                    msg.msg("EXC_StringTypeExpected", type.getName())); //NOI18N
-            }
-            checkStringCallArgs(#s, #args);
-            #s.setTypeInfo(PredefinedType.booleanType);
-        }
-    ;
-
-endsWith
-    :   #(e:ENDS_WITH string:expression args:args )
-        {
-            // check type of string expression
-            JavaType type = #string.getTypeInfo();
-            if (!PredefinedType.stringType.equals(type)) {
-                errorMsg.error(#string.getLine(), #string.getColumn(),
-                    msg.msg("EXC_StringTypeExpected", type.getName())); //NOI18N
-            }
-            checkStringCallArgs(#e, #args);
-            #e.setTypeInfo(PredefinedType.booleanType);
-        }
-    ;
-
-args
-    : (expression)*
-    ;
-
-qualifiedName returns [String name]
-    {   name = null; }
-    :   id1:IDENT
-        {
-            name = #id1.getText();
-        }
-    |   #(  d:DOT
-            name = qualifiedName
-            id2:IDENT
-            {
-                name += (#d.getText() + #id2.getText());
-            }
-        )
-    ;
-
-// ----------------------
-// types
-// ----------------------
-
-type
-    { String name = null; }
-    :   name = qn:qualifiedName
-        {
-            // First check type name as it is
-            JavaType type = typeSupport.checkType(name);
-            if (type == null)
-                // Check type imports
-                type = typeNames.resolve(name);
-            if (type == null) {
-                // unknown type
-                errorMsg.error(#qn.getLine(), #qn.getColumn(),
-                    msg.msg("EXC_UnknownType", name)); //NOI18N
-            }
-            TypeImpl typeNode = new TypeImpl();
-            typeNode.initialize(TYPE, type.getName(), type);
-            #type = typeNode;
-        }
-    |   t:TYPE
-        {
-            Class clazz = ((NodeImpl)#t).getJavaClass();
-            if (clazz != null)
-                #t.setTypeInfo(typeSupport.checkType(clazz));
-            else
-                #t.setTypeInfo(typeSupport.checkType(#t.getText()));
-        }
-    |   p:primitiveType
-        {
-            name = #p.getText();
-            TypeImpl typeNode = new TypeImpl();
-            typeNode.initialize(TYPE, name, typeSupport.checkType(name));
-            #type = typeNode;
-        }
-    ;
-
-primitiveType
-    :   BOOLEAN
-    |   BYTE
-    |   CHAR
-    |   SHORT
-    |   INT
-    |   FLOAT
-    |   LONG
-    |   DOUBLE
-    ;
diff --git a/query20/src/java/org/apache/jdo/impl/jdoql/jdoqlc/SimpleFieldManager.java b/query20/src/java/org/apache/jdo/impl/jdoql/jdoqlc/SimpleFieldManager.java
deleted file mode 100644
index 3aeeec1..0000000
--- a/query20/src/java/org/apache/jdo/impl/jdoql/jdoqlc/SimpleFieldManager.java
+++ /dev/null
@@ -1,189 +0,0 @@
-/*
- * 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.
- */
-
-package org.apache.jdo.impl.jdoql.jdoqlc;
-
-import org.apache.jdo.state.FieldManager;
-
-/**
- * This is the means by which a StateManager implementation's setXXXField()
- * method (where XXX is e.g. Int) can give the value back to the object 
- *
- * @author Michael Bouschen
- */
-public class SimpleFieldManager implements FieldManager {
-
-    private Object value;
-
-    /**
-     * Provides the means by which the value of a boolean field can be given
-     * by a StateManager to an object that needs the value.
-     * @param fieldNum Field number of the field in the object whose value is
-     * given.
-     * @param value Boolean that is the value of a particular field.
-     */
-    public void storeBooleanField(int fieldNum, boolean value) {
-        this.value = new Boolean(value);
-    }
-
-    public boolean fetchBooleanField(int fieldNum) {
-        return ((Boolean)value).booleanValue();
-    }
-    
-    /**
-     * Provides the means by which the value of a char field can be given
-     * by a StateManager to an object that needs the value.
-     * @param fieldNum Field number of the field in the object whose value is
-     * given.
-     * @param value Char that is the value of a particular field.
-     */
-    public void storeCharField(int fieldNum, char value){
-        this.value = new Character(value);
-    } 
-
-    public char fetchCharField(int fieldNum) {
-        return ((Character)value).charValue();
-    }
-    
-    /**
-     * Provides the means by which the value of a byte field can be given
-     * by a StateManager to an object that needs the value.
-     * @param fieldNum Field number of the field in the object whose value is
-     * given.
-     * @param value Byte that is the value of a particular field.
-     */
-    public void storeByteField(int fieldNum, byte value){
-        this.value = new Byte(value);
-    } 
-
-
-    public byte fetchByteField(int fieldNum) {
-        return ((Byte)value).byteValue();
-    }
-
-    /**
-     * Provides the means by which the value of a short field can be given
-     * by a StateManager to an object that needs the value.
-     * @param fieldNum Field number of the field in the object whose value is
-     * given.
-     * @param value Short that is the value of a particular field.
-     */
-    public void storeShortField(int fieldNum, short value){
-        this.value = new Short(value);
-    } 
-
-
-    public short fetchShortField(int fieldNum) {
-        return ((Short)value).shortValue();
-    }
-
-    /**
-     * Provides the means by which the value of a int field can be given
-     * by a StateManager to an object that needs the value.
-     * @param fieldNum Field number of the field in the object whose value is
-     * given.
-     * @param value Int that is the value of a particular field.
-     */
-    public void storeIntField(int fieldNum, int value){
-        this.value = new Integer(value);
-    } 
-
-
-    public int fetchIntField(int fieldNum) {
-        return ((Integer)value).intValue();
-    }
-
-    /**
-     * Provides the means by which the value of a long field can be given
-     * by a StateManager to an object that needs the value.
-     * @param fieldNum Field number of the field in the object whose value is
-     * given.
-     * @param value Long that is the value of a particular field.
-     */
-    public void storeLongField(int fieldNum, long value){
-        this.value = new Long(value);
-    } 
-
-
-    public long fetchLongField(int fieldNum) {
-        return ((Long)value).longValue();
-    }
-
-    /**
-     * Provides the means by which the value of a  field can be given
-     * by a StateManager to an object that needs the value.
-     * @param fieldNum Field number of the field in the object whose value is
-     * given.
-     * @param value  that is the value of a particular field.
-     */
-    public void storeFloatField(int fieldNum, float value){
-        this.value = new Float(value);
-    } 
-
-
-    public float fetchFloatField(int fieldNum) {
-        return ((Float)value).floatValue();
-    }
-
-    /**
-     * Provides the means by which the value of a double field can be given
-     * by a StateManager to an object that needs the value.
-     * @param fieldNum Field number of the field in the object whose value is
-     * given.
-     * @param value Double that is the value of a particular field.
-     */
-    public void storeDoubleField(int fieldNum, double value){
-        this.value = new Double(value);
-    } 
-
-
-    public double fetchDoubleField(int fieldNum) {
-        return ((Double)value).doubleValue();
-    }
-
-    /**
-     * Provides the means by which the value of a String field can be given
-     * by a StateManager to an object that needs the value.
-     * @param fieldNum Field number of the field in the object whose value is
-     * given.
-     * @param value String that is the value of a particular field.
-     */
-    public void storeStringField(int fieldNum, String value){
-        this.value = value;
-    } 
-
-
-    public String fetchStringField(int fieldNum) {
-        return (String)value;
-    }
-
-    /**
-     * Provides the means by which the value of an Object field can be given
-     * by a StateManager to an object that needs the value.
-     * @param fieldNum Field number of the field in the object whose value is
-     * given.
-     * @param value Object that is the value of a particular field.
-     */
-    public void storeObjectField(int fieldNum, Object value){
-        this.value = value;
-    } 
-
-
-    public Object fetchObjectField(int fieldNum) {
-       return value;
-    }
-
-}
diff --git a/query20/src/java/org/apache/jdo/impl/jdoql/jdoqlc/TypeSupport.java b/query20/src/java/org/apache/jdo/impl/jdoql/jdoqlc/TypeSupport.java
deleted file mode 100644
index 948abe5..0000000
--- a/query20/src/java/org/apache/jdo/impl/jdoql/jdoqlc/TypeSupport.java
+++ /dev/null
@@ -1,440 +0,0 @@
-/*
- * 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.
- */
-
-/*
- * TypeTable.java
- *
- * Created on August 28, 2001
- */
-
-package org.apache.jdo.impl.jdoql.jdoqlc;
-
-import java.util.*;
-import java.lang.Class;
-import java.lang.reflect.Modifier;
-import java.lang.reflect.Field;
-import java.security.AccessController;
-import java.security.PrivilegedAction;
-
-import javax.jdo.JDOHelper;
-import javax.jdo.JDOException;
-import javax.jdo.JDOFatalInternalException;
-import javax.jdo.PersistenceManager;
-import javax.jdo.spi.PersistenceCapable;
-
-import org.apache.jdo.impl.model.java.ErrorType;
-import org.apache.jdo.impl.model.java.PredefinedType;
-import org.apache.jdo.impl.model.java.WrapperClassType;
-import org.apache.jdo.impl.model.java.reflection.ReflectionJavaField;
-import org.apache.jdo.impl.model.java.runtime.RuntimeJavaModelFactory;
-import org.apache.jdo.jdoql.JDOQueryException;
-import org.apache.jdo.model.ModelFatalException;
-import org.apache.jdo.model.java.JavaField;
-import org.apache.jdo.model.java.JavaModel;
-import org.apache.jdo.model.java.JavaType;
-import org.apache.jdo.model.jdo.JDOClass;
-import org.apache.jdo.model.jdo.JDOCollection;
-import org.apache.jdo.model.jdo.JDOField;
-import org.apache.jdo.model.jdo.JDORelationship;
-import org.apache.jdo.pm.PersistenceManagerInternal;
-import org.apache.jdo.state.FieldManager;
-import org.apache.jdo.state.StateManagerInternal;
-import org.apache.jdo.util.I18NHelper;
-
-
-/** 
- * Provides query convenience methods to deal with Java/JDO metadata.
- *
- * @author  Michael Bouschen
- * @since JDO 1.0.1
- */
-public class TypeSupport
-{
-    /** The JavaModel for the class loader of the candidate class. */
-    protected JavaModel applicationJavaModel;
-
-    /** The runtime JavaModel factory. */
-    private static final RuntimeJavaModelFactory javaModelFactory =
-        (RuntimeJavaModelFactory) AccessController.doPrivileged(
-            new PrivilegedAction () {
-                public Object run () {
-                    return RuntimeJavaModelFactory.getInstance();
-                }
-            }
-        );
-
-    /** I18N support */
-    private static final I18NHelper msg = I18NHelper.getInstance(
-        "org.apache.jdo.impl.jdoql.Bundle", TypeSupport.class.getClassLoader()); //NOI18N
-
-    /**
-     * This methods sets the application JavaModel to the JavaModel
-     * instance for the specified ClassLoader.
-     * @param classLoader the class loader of the candidate class.
-     */
-    public void initApplicationJavaModel(ClassLoader classLoader)
-    {
-        this.applicationJavaModel = javaModelFactory.getJavaModel(classLoader);
-    }
-
-    /**
-     * Returns the JavaType representation for the type with the specified
-     * name. This method uses the application JavaModel for the type
-     * lookup. This means any type is checked in the context of the
-     * JavaModel for the class loader of the candidate class.
-     * @param  name the name of the type to be checked. 
-     * @return the JavaType object representing the type with the 
-     *         specified name or null when the type was not found.
-     */
-    public JavaType checkType(String name)
-    {
-        return applicationJavaModel.getJavaType(name);
-    }
-    
-    /**
-     * Checks for the Java Type with the specified class object. 
-     * @param  clazz the clazz object of the type to be checked. 
-     * @return the TypeDescriptor object representing the type
-     */
-    public JavaType checkType(Class clazz)
-    {
-        if (clazz == null)
-            return null;
-        return javaModelFactory.getJavaType(clazz);
-    }
-
-    /**
-     * Implements binary numeric promotion as defined in the 
-     * Java Language Specification section 5.6.2
-     */
-    public static JavaType binaryNumericPromotion(JavaType left, JavaType right)
-    {
-        if ((left == null) || (right == null))
-            return ErrorType.errorType;
-
-        if (isNumericType(left) && isNumericType(right)) {
-            if (left.equals(PredefinedType.doubleType) || 
-                right.equals(PredefinedType.doubleType)) {
-                return PredefinedType.doubleType;
-            }
-            else if (left.equals(PredefinedType.floatType) || 
-                     right.equals(PredefinedType.floatType)) {
-                return PredefinedType.floatType;
-            }
-            else if (left.equals(PredefinedType.longType) || 
-                     right.equals(PredefinedType.longType)) {
-                return PredefinedType.longType;
-            }
-            else {
-                return PredefinedType.intType;
-            }
-        }
-
-        return ErrorType.errorType;
-    }
-
-    /**
-     * Implements unray numeric promotion as defined in the 
-     * Java Language Specification section 5.6.1
-     */
-    public static JavaType unaryNumericPromotion(JavaType type)
-    {
-        if (type == null)
-            return ErrorType.errorType;
-
-        if (isNumericType(type)) {
-            if (type.equals(PredefinedType.byteType) || 
-                type.equals(PredefinedType.shortType) || 
-                type.equals(PredefinedType.charType)) {
-                return PredefinedType.intType;
-            }
-            else {
-                return type;
-            }
-        }
-
-        return ErrorType.errorType;
-    }
-
-    /** 
-     * Returns the java.lang.Class instance for the specified type.
-     * @param type the type to be checked
-     * @return the corresponding class instance.
-     */
-    public static Class getJavaClass(JavaType type)
-    {
-        return javaModelFactory.getJavaClass(type);
-    }
-
-    //========= Interrogative methods ==========
-
-    /** 
-     * Returns <code>true</code> if the specified type is 
-     * boolean or java.lang.Boolean.
-     * @param type the type to be checked
-     * @return <code>true</code> if type is boolean or java.lang.Boolean; 
-     * <code>false</code> otherwise.
-     */
-    public static boolean isBooleanType(JavaType type)
-    {
-        return type.equals(PredefinedType.booleanType) || 
-            type.equals(PredefinedType.booleanClassType);
-    }
-
-    /** 
-     * Returns <code>true</code> if the specified type is 
-     * char or java.lang.Character 
-     * @param type the type to be checked
-     * @return <code>true</code> if type is char or java.lang.Character 
-     * <code>false</code> otherwise.
-     */
-    public static boolean isCharType(JavaType type)
-    {
-        return type.equals(PredefinedType.charType) ||
-            type.equals(PredefinedType.characterClassType);
-    }
-
-    /** 
-     * Returns <code>true</code> if the specified type is an interal type
-     * or a Java wrapper class for an interal type.
-     * @param type the type to be checked
-     * @return <code>true</code> if type is an integral type or a Java
-     * wrapper for an integral type; <code>false</code> otherwise.
-     */
-    public static boolean isIntegralType(JavaType type)
-    {
-        return type.isIntegral() ||
-            (type.isWrapperClass() && 
-             ((WrapperClassType)type).getWrappedPrimitiveType().isIntegral());
-    }
-
-    /**
-     * Returns <code>true</code> if specified type is a number type:
-     * <br>
-     * a numeric primitive
-     * <br>
-     * a numeric wrapper class 
-     * <br>
-     * java.math.BigDecimal, java.math.BigInteger.
-     * @param type the type to be checked
-     * @return <code>true</code> if type is a number type;
-     * <code>false</code> otherwise.
-     */
-    public static boolean isNumberType(JavaType type)
-    {
-        return isNumericType(type) || 
-            isNumericWrapperClassType(type) ||
-            isMathType(type);
-    }
-
-    /** 
-     * Returns <code>true</code> if the specified type is a Java wrapper
-     * class type for a numeric primitive type. 
-     * @param type the type to be checked
-     * @return <code>true</code> if type is a numeric wrapper class type;
-     * <code>false</code> otherwise.
-     */
-    public static boolean isNumericWrapperClassType(JavaType type)
-    {
-        return type.isWrapperClass() && 
-            isNumericType(((WrapperClassType)type).getWrappedPrimitiveType());
-    }
-
-    /**
-     * Returns <code>true</code> if the specified type is a either a
-     * integral or a floating point type.
-     * @param type the type to be checked
-     * @return <code>true</code> if type is a numeric type;
-     * <code>false</code> otherwise.
-     */
-    public static boolean isNumericType(JavaType type)
-    {
-        return type.isIntegral() || type.isFloatingPoint();
-    }
-    
-    /** 
-     * Returns <code>true</code> if the specified type is either
-     * java.math.BigDecimal or java.math.BigInteger. 
-     * @param type the type to be checked
-     * @return <code>true</code> if type is BigDecimal or BigInteger;
-     * <code>false</code> otherwise.
-     */
-    public static boolean isMathType(JavaType type)
-    {
-        return PredefinedType.bigDecimalType.equals(type) ||
-            PredefinedType.bigIntegerType.equals(type);
-    }
-
-    //========= Field access methods ==========
-
-    /** */
-    public static boolean isStaticField(JavaField field)
-    {
-        int modifiers = field.getModifiers();
-        return Modifier.isStatic(modifiers);
-    }
-    
-    /** */
-    public static JDOField getJDOField(JavaField javaField)
-    {
-        JDOField jdoField = null;
-        JDOClass jdoClass = javaField.getDeclaringClass().getJDOClass();
-        if (jdoClass != null) {
-            jdoField = jdoClass.getField(javaField.getName());
-        }
-        return jdoField;
-    }
-
-    /** */
-    public static JavaType getElementType(JavaField field)
-    {
-        JDOField jdoField = getJDOField(field);
-        if (jdoField != null) {
-            // check relationship
-            try {
-                JDORelationship jdoRelationship = jdoField.getRelationship();
-                if (jdoRelationship instanceof JDOCollection) {
-                    return ((JDOCollection)jdoRelationship).getElementType();
-                } 
-            }
-            catch (ModelFatalException ex) {
-                throw new JDOQueryException(ex.getMessage());
-            }
-        }
-        JavaType fieldType = field.getType();
-        if (fieldType.isJDOSupportedCollection())
-            return PredefinedType.objectType;
-
-        // If this code is reached the field is not specified as collection
-        // in the JDO metadata and does not have a JDO supported collection
-        // type => internal error. 
-        String fieldName = field.getName();
-        String className = field.getDeclaringClass().getName();
-        throw new JDOFatalInternalException(
-                msg.msg("ERR_CollectionFieldExpected", //NOI18N
-                        fieldName, className, fieldType.getName()));
-    }
-
-    /**
-     * field value of a managed field. Not using reflection.
-     */
-    public static Object getFieldValue(int fieldNumber, 
-                                       PersistenceManagerInternal pm, 
-                                       Object object)
-    {
-        PersistenceCapable pc = (PersistenceCapable)object;
-        StateManagerInternal sm = pm.findStateManager(pc);
-        FieldManager fm = new SimpleFieldManager();
-        // Call isLoaded to ensure the field with the specified
-        // field number is loaded.
-        // NOTE, this code is not StateManager implementation neutral,
-        // because it relies on the fact that isLoaded actually loads
-        // the field. A neutral implementation would check the returns
-        // value of isLoaded and if it returns false it would call a
-        // jdoGetXXX to load the field.
-        sm.isLoaded(pc, fieldNumber);
-        sm.provideField(fieldNumber, fm , false);
-        // NOTE, this call assumes that fetchObjectField return the 
-        // field value regardless which type the field has. Only 
-        // SimpleFieldManager from common.query.util.types has this 
-        // behavior. This is a workaround and needs to be changed!
-        return fm.fetchObjectField(fieldNumber);
-    }
-
-    /**
-     * Get field value via reflection 
-     */
-    public static Object getFieldValue(Field field, Object object)
-    {
-        try {
-            return field.get(object);
-        }
-        catch (IllegalAccessException ex) {
-            String fieldName = field.getName();
-            String className = field.getDeclaringClass().getName();
-            throw new JDOQueryException(
-                msg.msg("EXC_CannotAccessField", //NOI18N
-                        fieldName, className, ex));
-        }
-    }
-    
-    /** 
-     * Returns the fieldNumber of the specified field.
-     * @return field number 
-     */
-    public static int getFieldNumber(JavaField javaField,
-                                     PersistenceManager pm, 
-                                     Object object)
-    {
-        JDOField jdoField = getJDOField(javaField);
-        if ((object == null) || // null object means static field access
-            (jdoField == null) || // no jdo field info
-            !jdoField.isManaged()) { // field is not managed
-            return -1; // use reflection
-        }
-        
-        PersistenceManager instancePM =
-            JDOHelper.getPersistenceManager(object);
-        if (instancePM == null) { // object is a transient instance 
-            return -1; // use reflection
-        }
-        else if (!instancePM.equals(pm)) {
-            // instancePM is NOT the one from the query => exception
-            throw new JDOException(
-                msg.msg("EXC_InstanceBoundToDifferentPM", object)); //NOI18N
-        }
-
-        // return the field number from the JDOField
-        return jdoField.getFieldNumber();
-    }
-
-    /**
-     * Returns a accessible java.lang.reflect.Field instance for the
-     * specified JavaField. Note, this method gets a new Field instance
-     * from reflection and sets the accessibility. The method requires the
-     * caller to have the permission ReflectPermission("suppressAccessChecks").
-     * @param javaField the JavaField 
-     * @return accessible Field instance
-     */
-    public static Field getAccessibleField(JavaField javaField)
-    {
-        // Get a new java.lang.reflect.Field instance. The query runtime
-        // needs an accessible Field instance.
-        Class clazz = javaModelFactory.getJavaClass(javaField.getDeclaringClass());
-        String fieldName = javaField.getName();
-        final Field field = 
-            ReflectionJavaField.getDeclaredFieldPrivileged(clazz, fieldName);
-        if (field == null) {
-            throw new JDOQueryException( 
-                msg.msg("EXC_CannotFindField", //NOI18N
-                        fieldName, clazz.getName()));
-        }
-
-        // if the field is not accessible, try to set the accessible flag.
-        if (!field.isAccessible()) {
-            try {
-                field.setAccessible(true);
-            }
-            catch (SecurityException ex) {
-                throw new JDOQueryException(
-                    msg.msg("EXC_CannotChangeAccessibility", //NOI18N
-                            fieldName, clazz.getName()));
-            }
-        }
-        return field;
-    }
-    
-}
diff --git a/query20/src/java/org/apache/jdo/impl/jdoql/jdoqlc/VariableChecker.java b/query20/src/java/org/apache/jdo/impl/jdoql/jdoqlc/VariableChecker.java
deleted file mode 100644
index b281d18..0000000
--- a/query20/src/java/org/apache/jdo/impl/jdoql/jdoqlc/VariableChecker.java
+++ /dev/null
@@ -1,290 +0,0 @@
-/*
- * 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.
- */
-
-/*
- * VariableChecker.java
- *
- * Created on September 12, 2001
- */
-
-package org.apache.jdo.impl.jdoql.jdoqlc;
-
-import java.util.Map;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.Set;
-import java.util.HashSet;
-
-import javax.jdo.JDOUnsupportedOptionException;
-import javax.jdo.JDOFatalInternalException;
-
-import org.apache.jdo.jdoql.JDOQueryException;
-import org.apache.jdo.util.I18NHelper;
-
-
-/**
- * Checks variable declarations/application.
- *
- * @author  Michael Bouschen
- * @version 0.1
- */
-public class VariableChecker
-{
-    /** I18N support */
-    protected final static I18NHelper msg = I18NHelper.getInstance(
-        "org.apache.jdo.impl.jdoql.Bundle", VariableChecker.class.getClassLoader()); //NOI18N
-
-    /**
-     * A VarInfo consists of two info fields:
-     * - constraint: the variable is constraint with the specified expr
-     * - used: the variable is used
-     */
-    static class VarInfo
-    {
-        /**
-         * The constraint expression.
-         */
-        JDOQLAST constraint;
-
-        /**
-         * Set of JDOQLAST nodes denoting an access of this variable.
-         */
-        Set used;
-
-        /**
-         * Dependency for this variable. 
-         * The constraint for this variable may use another variable. 
-         */
-        String dependsOn;
-
-        /**
-         * Flag whether this varInfo is checked already (see checkConstraints)
-         */
-        int status;
-
-        static final int UNCHECKED = 0;
-        static final int IN_PROGRESS = 1;
-        static final int CHECKED = 2;
-
-        VarInfo()
-        {
-            this.constraint = null;
-            this.used = new HashSet();
-            this.dependsOn = null;
-            this.status = UNCHECKED;
-        }
-
-        VarInfo(VarInfo other)
-        {
-            this.constraint = other.constraint;
-            this.used = new HashSet(other.used);
-            this.dependsOn = other.dependsOn;
-            this.status = other.status;
-        }
-    }
-
-    /**
-     * Map of variable infos
-     */
-    protected Map varInfos;
-
-    /**
-     * Create an empty variable table
-     */
-    public VariableChecker()
-    {
-        varInfos = new HashMap();
-    }
-
-    /**
-     * Create a variable table initialized with the entries of the other variable table.
-     * The constructor creates copies of the values stored in the map (instances of class VarInfo).
-     */
-    public VariableChecker(VariableChecker other)
-    {
-        varInfos = new HashMap();
-        for (Iterator i = other.varInfos.entrySet().iterator(); i.hasNext();) {
-            Map.Entry entry = (Map.Entry)i.next();
-            varInfos.put(entry.getKey(), new VarInfo((VarInfo)entry.getValue()));
-        }
-    }
-
-    /**
-     * Creates a new entry in the variable table with the specified name as key and 
-     * an empty value.
-     */
-    public void add(String name)
-    {
-        // init var entry as not constraint and unused
-        varInfos.put(name, new VarInfo());
-    }
-
-    /**
-     * Mark the specified variable as used. 
-     * The method sets the info field of the VarInfo object to true.
-     */
-    public void markUsed(JDOQLAST variable, String dependendVar)
-    {
-        String name = variable.getText();
-        VarInfo entry = (VarInfo)varInfos.get(name);
-        if (entry == null) {
-            throw new JDOFatalInternalException(
-                msg.msg("ERR_VariableCheckerUndefinedVariable", //NOI18N
-                        "markUsed", name)); //NOI18N
-        }
-        entry.used.add(variable);
-        if (dependendVar != null) {
-            VarInfo dependendVarInfo = (VarInfo)varInfos.get(dependendVar);
-            if (dependendVarInfo.dependsOn != null) {
-                throw new JDOFatalInternalException(
-                    msg.msg("ERR_VariableCheckerMultipleDependencies", //NOI18N    
-                            dependendVar, dependendVarInfo.dependsOn, name));
-            }
-            dependendVarInfo.dependsOn = name;
-        }
-    }
-
-    /**
-     * Mark the specified variable as constaint with the specified expr.
-     * The method sets the constraint field of the VarInfo object to true.
-     */
-    public void markConstraint(JDOQLAST variable, JDOQLAST expr)
-    {
-        String name = variable.getText();
-        VarInfo entry = (VarInfo)varInfos.get(name);
-        if (entry == null) {
-            throw new JDOFatalInternalException(
-                msg.msg("ERR_VariableCheckerUndefinedVariable", //NOI18N
-                        "markConstraint", name)); //NOI18N
-        }
-        String old = (entry.constraint==null ? null : entry.constraint.getText());
-        if ((old != null) && !old.equals(expr.getText())) {
-            throw new JDOUnsupportedOptionException(
-                msg.msg("EXC_UnsupportedMultipleConstraints", name)); //NOI18N
-        }
-        entry.constraint = expr;
-    }
-
-    /**
-     * Merges the specified variable table (other) into this variable table.
-     */
-    public void merge(VariableChecker other)
-    {
-        for (Iterator i = varInfos.entrySet().iterator(); i.hasNext();) {
-            Map.Entry entry = (Map.Entry)i.next();
-            String name = (String)entry.getKey();
-            VarInfo info = (VarInfo)entry.getValue();
-            VarInfo otherInfo = (VarInfo)other.varInfos.get(name);
-            
-            // copy other info if this info is empty
-            if ((info.constraint == null) && (info.used.size() == 0)) {
-                info.constraint = otherInfo.constraint;
-                info.used = otherInfo.used;
-                info.dependsOn = otherInfo.dependsOn;
-                info.status = otherInfo.status;
-                continue;
-            }
-
-            // do nothing if otherInfo is empty
-            if ((otherInfo.constraint == null) && (otherInfo.used.size() == 0)) {
-                continue;
-            }
-            
-            // constraint check
-            // If both variables tables include constraints they have to be the same
-            if ((info.constraint != null) && (otherInfo.constraint != null)) {
-                if (!otherInfo.constraint.getText().equals(info.constraint.getText())) {
-                    throw new JDOUnsupportedOptionException(
-                        msg.msg("EXC_DifferentConstraints", name)); //NOI18N
-                }
-            }
-            // If at least one variable table does not define constraint, 
-            // nullify the constaint in this variable table
-            else {
-                info.constraint = null;
-                info.dependsOn = null;
-                info.status = VarInfo.UNCHECKED;
-            }
-            
-            // copy otherInfo.used to this used list
-            info.used.addAll(otherInfo.used);
-        }
-    }
-
-    /**
-     *
-     */
-    public void checkConstraints()
-    {
-        for (Iterator i = varInfos.entrySet().iterator(); i.hasNext();) {
-            Map.Entry entry = (Map.Entry)i.next();
-            VarInfo info = (VarInfo)entry.getValue();
-            checkConstraint((String)entry.getKey(), (VarInfo)entry.getValue());
-        }
-    }
-
-    protected void checkConstraint(String variable, VarInfo info)
-    {
-        switch (info.status) {
-        case VarInfo.UNCHECKED:
-            // if unchecked, start checking
-            info.status = VarInfo.IN_PROGRESS;
-            break;
-        case VarInfo.IN_PROGRESS:
-            // if this VarInfo is currently processed we have a cyclic dependency
-            throw new JDOUnsupportedOptionException(
-                msg.msg("EXC_UnsupportedCyclicConstaint", variable)); // NOI18N
-        case VarInfo.CHECKED:
-            // if alreday checked just return
-            return;
-        }
-        
-        if (info.dependsOn != null) {
-            VarInfo dependendVarInfo = (VarInfo)varInfos.get(info.dependsOn);
-            checkConstraint(info.dependsOn, dependendVarInfo);
-        }
-        
-        if (info.constraint == null) {
-            throw new JDOUnsupportedOptionException(
-                msg.msg("EXC_UnconstraintVariable", variable)); //NOI18N
-        }
-        
-        if (info.used.size() == 0) {
-            throw new JDOUnsupportedOptionException(
-                msg.msg("EXC_UnusedVariable", variable)); //NOI18N
-        }
-        
-        // Next line in comment, because the node visitor for queries in memory
-        // does not like VARIABLE_ACCESS child nodes. 
-        // This needs to be investigated for the SQL generation.
-        //attachConstraintToUsedAST(info);
-        info.status = VarInfo.CHECKED;
-    }
-    
-    /**
-     *
-     */
-    protected void attachConstraintToUsedAST(VarInfo info)
-    {
-        for (Iterator i = info.used.iterator(); i.hasNext();) {
-            JDOQLAST varNode = (JDOQLAST)i.next();
-            if (varNode.getFirstChild() == null) 
-                varNode.setFirstChild(JDOQLASTFactory.getInstance().dupTree(info.constraint));
-        }
-    }
-
-}
-
diff --git a/query20/src/java/org/apache/jdo/impl/jdoql/scope/AbstractValueTable.java b/query20/src/java/org/apache/jdo/impl/jdoql/scope/AbstractValueTable.java
deleted file mode 100644
index 14a789f..0000000
--- a/query20/src/java/org/apache/jdo/impl/jdoql/scope/AbstractValueTable.java
+++ /dev/null
@@ -1,175 +0,0 @@
-/*
- * 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.
- */
-
-/*
- * AbstractValueTable.java
- *
- * Created on September 11, 2001
- */
-
-package org.apache.jdo.impl.jdoql.scope;
-
-import java.util.Map;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.io.Serializable;
-
-import javax.jdo.JDOFatalInternalException;
-
-import org.apache.jdo.jdoql.JDOQueryException;
-import org.apache.jdo.jdoql.tree.Declaration;
-import org.apache.jdo.jdoql.tree.ValueTable;
-import org.apache.jdo.util.I18NHelper;
-
-
-/**
- * This method is the abstract super class for ParameterTable and VariableTable.
- * It provides common implementation for managing parameter and variable values.
- *
- * @author  Michael Bouschen
- */
-abstract class AbstractValueTable
-    implements ValueTable, Serializable, Cloneable
-{
-    /**
-     * Map of declarations. Key is the the name of the declared identifier, 
-     * value is the Declaration node.
-     */
-    Map declMap = new HashMap();
-    
-    /**
-     * Map of values. This map includes a values entry for each declared 
-     * identifier. Default value is UNDEFINED.
-     */
-    transient Map valueMap;
-    
-    /** I18N support */
-    protected final static I18NHelper msg = I18NHelper.getInstance(
-        "org.apache.jdo.impl.jdoql.Bundle", //NOI18N
-        AbstractValueTable.class.getClassLoader()); 
- 
-    /**
-     * Adds a new declaration. The value is set to UNDEFINED.
-     * @param decl the declaration node
-     */
-    public void declare(Declaration decl)
-    {
-        String name = decl.getName();
-        declMap.put(name, decl);
-    }
-    
-    /**
-     * This method initializes the map of values for this ValueTable. 
-     * It needs to be called prior to any use of an AbstractValueTable
-     * at query execution time.
-     */
-    public void initValueHandling()
-    {
-        valueMap = new HashMap();
-        for (Iterator i = declMap.keySet().iterator(); i.hasNext();) {
-            String name = (String)i.next();
-            valueMap.put(name, UNDEFINED.getInstance());
-        }
-    }
-
-    /**
-     * Sets the value for the specified identifier.
-     * @param name the name of the identifier
-     * @param value the current value of the identifier
-     */
-    public void setValue(String name, Object value)
-    {
-        if (valueMap == null)
-            throw new JDOFatalInternalException(
-                msg.msg("ERR_InvalidTableForExecution", //NOI18N
-                        this.getClass().getName()));
-        Declaration decl = (Declaration)declMap.get(name);
-        checkDeclaredIdentifier(name, decl);
-        valueMap.put(name, value);
-    }
-    
-    /**
-     * Returns the current value for the specified identifier.
-     * @param name the name of the identifier
-     * @return the current value of the identifier
-     */
-    public Object getValue(String name)
-    {
-        if (valueMap == null)
-            throw new JDOFatalInternalException(
-                msg.msg("ERR_InvalidTableForExecution", //NOI18N
-                        this.getClass().getName()));
-        checkDeclaredIdentifier(name, (Declaration)declMap.get(name));
-        return valueMap.get(name);
-    }
-    
-    /**
-     * Checks whether the type of the specified value is compatible of the type
-     * of the identifier from its declaration.
-     * @param name the name of the identifier
-     * @param value the value to be checked
-     * @return <code>true</code> if the type of the value is compatible with the 
-     * type of the identifier; <code>false</code> otherwise.
-     */
-    public boolean isCompatibleValue(String name, Object value)
-    {
-        Declaration decl = (Declaration)declMap.get(name);
-        checkDeclaredIdentifier(name, decl);
-
-        boolean isCompatible = true;
-
-        // check type compatibility of actual and formal parameter
-        Class formalType = decl.getJavaClass();
-
-        // handle value == null
-        if (value == null) {
-            isCompatible = !formalType.isPrimitive();
-        }
-        else {
-            Class actualType = value.getClass();
-            Class type = formalType;
-            if (formalType.isPrimitive()) {
-                if (formalType == int.class)
-                    type = Integer.class;
-                else if (formalType == long.class)
-                    type = Long.class;
-                else if (formalType == short.class)
-                    type = Short.class;
-                else if (formalType == byte.class)
-                    type = Byte.class;
-                else if (formalType == double.class)
-                    type = Double.class;
-                else if (formalType == float.class)
-                    type = Float.class;
-                else if (formalType == boolean.class)
-                    type = Boolean.class;
-                else if (formalType == char.class)
-                    type = Character.class;
-            }
-            isCompatible = type.isAssignableFrom(actualType);
-        }
-        return isCompatible;
-    }
- 
-    /**
-     * Internal method to check whether the specified identifier is declared. 
-     * Allows subclasses of AbstractValueTable to use specific error messages.
-     */
-    protected abstract void checkDeclaredIdentifier(String name, 
-                                                    Declaration decl);
-
-}
-
diff --git a/query20/src/java/org/apache/jdo/impl/jdoql/scope/ParameterTable.java b/query20/src/java/org/apache/jdo/impl/jdoql/scope/ParameterTable.java
deleted file mode 100644
index 6b462bb..0000000
--- a/query20/src/java/org/apache/jdo/impl/jdoql/scope/ParameterTable.java
+++ /dev/null
@@ -1,173 +0,0 @@
-/*
- * 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.
- */
-
-/*
- * ParameterTable.java
- *
- * Created on August 28, 2001
- */
-
-package org.apache.jdo.impl.jdoql.scope;
-
-import java.util.*;
-
-import javax.jdo.JDOFatalInternalException;
-
-import org.apache.jdo.impl.jdoql.QueryResultHelperImpl;
-import org.apache.jdo.jdoql.JDOQueryException;
-import org.apache.jdo.jdoql.tree.Declaration;
-import org.apache.jdo.pm.PersistenceManagerInternal;
-
-
-/**
- * The query parameter table.
- *
- * @author  Michael Bouschen
- */
-public class ParameterTable
-    extends AbstractValueTable
-{
-    /**
-     * List of query parameter names. The query parameter tables stores the 
-     * query parameter names in an extra list to presever the order of 
-     * parameter declarations.
-     */
-    List names = new ArrayList();
-
-    /**
-     * Adds a new declaration. The value is initially set to UNDEFINED.
-     * @param decl the declaration node
-     */
-    public void declare(Declaration decl)
-    {
-        super.declare(decl);
-        names.add(decl.getName());
-    }
-    
-    /**
-     * Returns a copy of this ParameterTable.
-     * @return a copy of this ParameterTable.
-     */
-    public ParameterTable getCopy()
-    {
-        try {
-            return (ParameterTable)clone();
-        }
-        catch (CloneNotSupportedException ex) {
-            throw new JDOFatalInternalException(
-                msg.msg("ERR_UnexpectedCloneProblems", ex)); //NOI18N
-        }
-    }
-    
-    /**
-     * Internal method to check whether the specified identifier is declared. 
-     */
-    protected void checkDeclaredIdentifier(String name, Declaration decl)
-    {
-        if (decl == null)
-            throw new JDOQueryException(
-                msg.msg("EXC_UndefinedQueryParameter", name)); //NOI18N
-    }
-
-    //========= PatameterTable convenience methods ==========
-
-    /**
-     * Sets all query parameter values. The order of declarations in 
-     * declareParameters defines the order in the specified array of parameter 
-     * values. The method checks the type compatibility of the query parameter 
-     * values.
-     * @param paramValues the parameter values
-     */
-    public void setValues(PersistenceManagerInternal queryPM, Object[] paramValues)
-    {
... 39288 lines suppressed ...

[db-jdo] 06/06: Updated COVERAGE

Posted by cl...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

clr pushed a commit to branch origin/2.0-rc1
in repository https://gitbox.apache.org/repos/asf/db-jdo.git

commit 93450cd776b5e80c2b17ff8823b5383599a58ed0
Author: Craig L Russell <cl...@apache.org>
AuthorDate: Thu Feb 23 01:47:25 2006 +0000

    Updated COVERAGE
---
 tck20/COVERAGE.txt | 85 +++++++++++++++++++++++++++++++++++++-----------------
 1 file changed, 58 insertions(+), 27 deletions(-)

diff --git a/tck20/COVERAGE.txt b/tck20/COVERAGE.txt
index ca032a1..cd9986e 100644
--- a/tck20/COVERAGE.txt
+++ b/tck20/COVERAGE.txt
@@ -1,51 +1,82 @@
 TCK Coverage Document for JSR-243 Java Data Objects 2.0:
 
+TCK Overview:
+---------------
+The JDO TCK tests use the JUnit testing framework. The TCK is distributed 
+as a source tree archive containing test source and all required configuration 
+files, including the JDO metadatafiles and SQL scripts. Test build and 
+execution is driven by the maven.xml build script. The user can run the 
+full test suite, groups of tests, or individual tests. Test results and 
+configuration information are saved in a timestamped log directory.
 
 TCK Components:
 ---------------
-- RunRules.html
+- Installation instructions at db.apache.org/jdo/downloads
+- README.txt
+- Run Rules
+- maven.xml test driver
 - Test Suite
-- Signature Test
-- JUnit Harness
+- exclude list
+
+TCK Dependencies to be manually installed (documented in README.txt) :
+---------------
+- Maven 1.0.x
+- JNDI implementation
+
+TCK Dependencies  downloaded automatically by Maven:
+---------------
+- JDO2 components api20, core20, enhaner20, tck20
+- JUnit test framework
+- JPOX JDO implementation
+- Derby
+- Other third-party libraries
 
 Terminology of Metrics
 ----------------------
-- Assertion: A specific statement of functionality or behavior derived from a specification.
-  A testable assertion is one that can be validated in an implementation by testing.
+- Assertion: A specific statement of functionality or behavior derived 
+from a specification.
+  A testable assertion is one that can be validated in an implementation 
+by testing.
 - Test: A binary application (or script) comprised of one or more Test Cases.
-- Test Case: A single set of test inputs, execution conditions, and expected results
-  developed to verify an implementation's conformance with a specific assertion.
-- Specification Assertion Coverage: Ratio of all assertions tested by at least one test
+- Test Case: A single set of test inputs, execution conditions, and expected 
+results developed to verify an implementation's conformance with a specific 
+assertion.
+- Specification Assertion Coverage: Ratio of all assertions tested by at 
+least one test
   case to the total number of testable assertions defined by the specification.
-- API Coverage: Ratio of methods directly exercised by test cases to the total number
-  of methods defined by the specification.
+- API Coverage: Ratio of methods directly exercised by test cases to the 
+total number of methods defined by the specification.
 
 Coverage
 --------
-- Total testable assertions: 1154 testable assertions
-  Assertions identified through the use of hand markup
-- API Signature Coverage: 100% for all defined public and protected members and validated
-  by the signature test included with the TCK.
-- See the following HTML reports in this bundle for JBI specification and API coverage metrics:
+- Total testable assertions: 791 specification assertions, identified through 
+hand markup of the FrameMaker specification document using conditional text. 
+Chapter 18 of the specification provides an XML grammar for metadata, for 
+which separate assertions were not developed. The metadata is extensively 
+tested by a small number of tests using a number of different metadata sets.
+- Tests: 538
+- Test cases: 1158
+- Assertion coverage: 538/791 = 68%
+- API Signature Coverage: 100% for all defined public and protected members
+<>
 
 Quality Assurance
 -----------------
-- TCK was run using representative configurations of the Reference Implementation on
+- TCK was run using representative configurations of the Reference 
+Implementation on
   the following platforms:
+   * Windows 2000 Pro/Sun  J2SE 1.4.2
+   * MacOX 10.4/Sun J2SE 1.4.2
    * Red Hat Linux/Sun J2SE 1.4.2
-   * Windows XP/Sun J2SE 1.4.2
-   * MacOSX 10.4/Sun J2SE 1.4.2
-
-- Code quality was demonstrated through use of code reviews and inspections
+- TCK code quality was demonstrated through use of code reviews conducted 
+publicly on the jdo-dev@apache.org emal list
 - Documentation instructions were verified and tested
 
+
 Justification of Adequacy
 -------------------------
-As the second major release of this specification, the coverage is good and consistent
-with the coverage of similar JSRs at this level of spec maturity. Coverage variance
-is due to effects of late spec changes and the availability/cost of test development
-resources. We plan to increase coverage over the next few months and release an updated
-version of the TCK. Licensees are strongly encouraged to utilize the latest version of the
-TCK when testing the compatibility of their JDO implementation, provided the TCK is
-available, and the licensee chooses to use it, at the time of testing.
+Given the large number of assertions and metadata elements, the coverage 
+is good. 
+<>The availability of test development resources was limited.
+
 

[db-jdo] 04/06: Added TCK coverage information

Posted by cl...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

clr pushed a commit to branch origin/2.0-rc1
in repository https://gitbox.apache.org/repos/asf/db-jdo.git

commit a188873c650133231415ece36e4d086a5c849811
Author: Craig L Russell <cl...@apache.org>
AuthorDate: Thu Feb 23 01:28:34 2006 +0000

    Added TCK coverage information
---
 tck20/COVERAGE.txt | 51 +++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 51 insertions(+)

diff --git a/tck20/COVERAGE.txt b/tck20/COVERAGE.txt
new file mode 100644
index 0000000..ca032a1
--- /dev/null
+++ b/tck20/COVERAGE.txt
@@ -0,0 +1,51 @@
+TCK Coverage Document for JSR-243 Java Data Objects 2.0:
+
+
+TCK Components:
+---------------
+- RunRules.html
+- Test Suite
+- Signature Test
+- JUnit Harness
+
+Terminology of Metrics
+----------------------
+- Assertion: A specific statement of functionality or behavior derived from a specification.
+  A testable assertion is one that can be validated in an implementation by testing.
+- Test: A binary application (or script) comprised of one or more Test Cases.
+- Test Case: A single set of test inputs, execution conditions, and expected results
+  developed to verify an implementation's conformance with a specific assertion.
+- Specification Assertion Coverage: Ratio of all assertions tested by at least one test
+  case to the total number of testable assertions defined by the specification.
+- API Coverage: Ratio of methods directly exercised by test cases to the total number
+  of methods defined by the specification.
+
+Coverage
+--------
+- Total testable assertions: 1154 testable assertions
+  Assertions identified through the use of hand markup
+- API Signature Coverage: 100% for all defined public and protected members and validated
+  by the signature test included with the TCK.
+- See the following HTML reports in this bundle for JBI specification and API coverage metrics:
+
+Quality Assurance
+-----------------
+- TCK was run using representative configurations of the Reference Implementation on
+  the following platforms:
+   * Red Hat Linux/Sun J2SE 1.4.2
+   * Windows XP/Sun J2SE 1.4.2
+   * MacOSX 10.4/Sun J2SE 1.4.2
+
+- Code quality was demonstrated through use of code reviews and inspections
+- Documentation instructions were verified and tested
+
+Justification of Adequacy
+-------------------------
+As the second major release of this specification, the coverage is good and consistent
+with the coverage of similar JSRs at this level of spec maturity. Coverage variance
+is due to effects of late spec changes and the availability/cost of test development
+resources. We plan to increase coverage over the next few months and release an updated
+version of the TCK. Licensees are strongly encouraged to utilize the latest version of the
+TCK when testing the compatibility of their JDO implementation, provided the TCK is
+available, and the licensee chooses to use it, at the time of testing.
+