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

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

Added: incubator/jdo/trunk/fostore20/test/java/org/apache/jdo/test/util/TestListSuite.java
URL: http://svn.apache.org/viewcvs/incubator/jdo/trunk/fostore20/test/java/org/apache/jdo/test/util/TestListSuite.java?rev=171355&view=auto
==============================================================================
--- incubator/jdo/trunk/fostore20/test/java/org/apache/jdo/test/util/TestListSuite.java (added)
+++ incubator/jdo/trunk/fostore20/test/java/org/apache/jdo/test/util/TestListSuite.java Sun May 22 11:40:13 2005
@@ -0,0 +1,165 @@
+/*
+ * 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.test.util;
+
+import java.io.BufferedReader;
+import java.io.FileNotFoundException;
+import java.io.FileReader;
+import java.io.IOException;
+import java.security.AccessController;
+import java.security.PrivilegedActionException;
+import java.security.PrivilegedExceptionAction;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.Enumeration;
+import java.util.Iterator;
+import java.util.List;
+
+import junit.framework.Test;
+import junit.framework.TestSuite;
+import junit.runner.TestCollector;
+
+/**
+ * This class implements a test suite including all test cases as specified
+ * in a testlist file. The user can specify the name of the testlist by
+ * setting the system property testlist. The default is
+ * tests.list. The swing GUI uses this class when browsing all
+ * test classes.
+ * 
+ * @author Michael Bouschen
+ */
+public class TestListSuite
+    extends TestSuite
+    implements TestCollector
+{
+    /** Name of the system property to specify the list of test class names. */
+    public static final String TESTLIST_PROPERTY = "testlist";
+
+    /** Default of the system property testlist. */
+    public static final String TESTLIST_DEFAULT = "tests.list";
+
+    /** 
+     * No arg constructor used by the swing GUI when browsing the test
+     * classes via the TestCollector interface.
+     */
+    public TestListSuite() { }
+    
+    /** 
+     * Creates a test suite with the specified name and reads the test
+     * class names fom a file specified by a system property.
+     */
+    public TestListSuite(String name) {
+        setName(name);
+        addTestClasses(getTestClassNames());
+    }
+    
+    /** 
+     * Creates a test suite with the specified name including the test
+     * classes from the specified list.
+     */
+    public TestListSuite(String name, List classNames) {
+    	setName(name);
+        addTestClasses(classNames);
+    }
+    
+    /** Runs this test suite in batch mode. */
+    public static void main(String args[]) {
+        JDORITestRunner.run(suite());
+    }
+
+    /** */
+	public static Test suite() {
+        return new TestListSuite("JDORI tests");
+    }
+
+    /** 
+     * Adds all test classes from the specified list to this test
+     * suite. 
+     */ 
+    private void addTestClasses(List classNames) {
+    	for (Iterator i = classNames.iterator(); i.hasNext();) {
+    		String className = (String)i.next();
+    		try {
+    			addTestSuite(Class.forName(className));
+    		}
+    		catch (ClassNotFoundException ex) {
+    			System.out.println("Cannot find test class " + className);
+    		}
+        }
+    }
+    
+	/** 
+     * Returns an enumeration of Strings with qualified class names. 
+     * Method defined in the JUnit interface TestCollector.
+     */
+	public Enumeration collectTests() {
+        return Collections.enumeration(getTestClassNames());
+    }
+
+    /** 
+     * Returns a list of fully qualified test class names. The method
+     * checks the system property testlist for the name of the test list
+     * (default is tests.list). Each line of the file is expected
+     * to be the fully qualified class name of a test class. Line starting
+     * with a # are skipped.
+     */
+    protected List getTestClassNames() {
+        // get the name of the testlist file as system property 
+        String testlist = System.getProperty(TESTLIST_PROPERTY, TESTLIST_DEFAULT);
+        List testClassNames = new ArrayList();
+        try {
+            BufferedReader reader = getTestListReader(testlist);
+            for (String line = reader.readLine(); 
+                 line != null; 
+                 line = reader.readLine()) {
+                line = line.trim();
+                if (isTestClassName(line)) {
+                    testClassNames.add(line);
+                }
+            }
+            reader.close();
+        }
+        catch (IOException ex) {
+            System.out.println("Problems reading testlist " + testlist + ": " + ex);
+        }
+        return testClassNames;
+    }
+    
+    /** Returns a BufferedReader for the specified testlist filename. */
+    protected BufferedReader getTestListReader(final String testlist) 
+        throws FileNotFoundException {
+        try {
+            return (BufferedReader)AccessController.doPrivileged(
+                new PrivilegedExceptionAction () {
+                    public Object run () throws IOException {
+                        return new BufferedReader(new FileReader(testlist));
+                    }
+                });
+        }
+        catch (PrivilegedActionException ex) {
+            // unwrap IOException
+            throw (FileNotFoundException)ex.getException();
+        } 
+    }
+
+    /** Returns true if the specified String defines a test class name. */
+    protected boolean isTestClassName(String line) {
+        return (line != null) && 
+               (line.length() > 0) &&
+               !line.trim().startsWith("#");
+    }
+}
+

Added: incubator/jdo/trunk/fostore20/test/java/org/apache/jdo/test/util/TestSelector.java
URL: http://svn.apache.org/viewcvs/incubator/jdo/trunk/fostore20/test/java/org/apache/jdo/test/util/TestSelector.java?rev=171355&view=auto
==============================================================================
--- incubator/jdo/trunk/fostore20/test/java/org/apache/jdo/test/util/TestSelector.java (added)
+++ incubator/jdo/trunk/fostore20/test/java/org/apache/jdo/test/util/TestSelector.java Sun May 22 11:40:13 2005
@@ -0,0 +1,284 @@
+/*
+ * 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.test.util;
+
+import java.awt.Cursor;
+import java.awt.Dimension;
+import java.awt.Frame;
+import java.awt.GridBagConstraints;
+import java.awt.GridBagLayout;
+import java.awt.Insets;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+import java.awt.event.MouseAdapter;
+import java.awt.event.MouseEvent;
+import java.awt.event.WindowAdapter;
+import java.awt.event.WindowEvent;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.Enumeration;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Vector;
+
+import javax.swing.JButton;
+import javax.swing.JDialog;
+import javax.swing.JLabel;
+import javax.swing.JList;
+import javax.swing.JScrollPane;
+import javax.swing.JTree;
+import javax.swing.event.TreeSelectionEvent;
+import javax.swing.event.TreeSelectionListener;
+import javax.swing.tree.DefaultMutableTreeNode;
+import javax.swing.tree.DefaultTreeModel;
+import javax.swing.tree.TreeModel;
+import javax.swing.tree.TreeNode;
+import javax.swing.tree.TreePath;
+
+import junit.runner.TestCollector;
+
+/**
+ * A test class selector. A simple dialog to pick the name of a test suite.
+ */
+public class TestSelector extends JDialog {
+    private JButton fCancel;
+    private JButton fOk;
+    private JList fList;
+    private JTree fTree;
+    private JScrollPane fScrolledList;
+    private JLabel fDescription;
+    private List fSelectedItems;
+    
+    /** */
+    public TestSelector(Frame parent, TestCollector testCollector) {
+        super(parent, true);
+        setSize(500, 500);
+        // setLocationRelativeTo only exists in 1.4
+        try {
+            setLocationRelativeTo(parent);
+        } catch (NoSuchMethodError e) {
+            centerWindow();
+        }
+        setTitle("Test Selector");
+        
+        Vector list = null;
+        try {
+            parent.setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));
+            list= createTestList(testCollector);
+        } finally {
+            parent.setCursor(Cursor.getDefaultCursor());
+        }
+        
+        fTree = new JTree(createTreeModel(list));
+        //fTree.getSelectionModel().setSelectionMode(
+        //    TreeSelectionModel.SINGLE_TREE_SELECTION);
+        fScrolledList= new JScrollPane(fTree);
+
+        fCancel= new JButton("Cancel");
+        fDescription= new JLabel("Select the Test class:");
+        fOk= new JButton("OK");
+        fOk.setEnabled(false);
+        getRootPane().setDefaultButton(fOk);
+        
+        defineLayout();
+        addListeners();
+    }
+
+    /** */
+    public boolean isEmpty() {
+        return ((TreeNode)fTree.getModel().getRoot()).getChildCount() == 0;
+    }
+    
+    /** */
+    public List getSelectedItems() {
+        return fSelectedItems;
+    }
+
+    /** */
+    public void checkEnableOK(TreeSelectionEvent e) {
+        boolean enabled = false;
+        TreePath[] paths = fTree.getSelectionPaths();
+        if (paths != null) {
+        	for (int i = 0; i < paths.length; i++) {
+                if (((TreeNode)paths[i].getLastPathComponent()).isLeaf()) {
+                    enabled = true;
+                    break;
+                }      
+            }
+        }
+        fOk.setEnabled(enabled);
+    }
+    
+    /** */
+    public void okSelected() {
+        List classNames = new ArrayList();
+        TreePath[] paths = fTree.getSelectionPaths();
+        if (paths != null) {
+        	for (int i = 0; i < paths.length; i++) {
+                Object selected = paths[i].getLastPathComponent();
+                if (selected instanceof ClassNameTreeNode) {
+                     classNames.add(((ClassNameTreeNode)selected).getClassName());
+                }
+        	}
+        }
+        
+        fSelectedItems = classNames;
+        dispose();
+    }
+    
+    /** */
+    private TreeModel createTreeModel(List classNames) {
+        DefaultMutableTreeNode root = new DefaultMutableTreeNode("Test Classes");
+        TreeModel model = new DefaultTreeModel(root);
+        
+        String currentPackageName = null;
+        DefaultMutableTreeNode currentPackageNode = null;
+        DefaultMutableTreeNode parent = root;
+        for (Iterator i = classNames.iterator(); i.hasNext();) {
+            String className = (String)i.next();
+            int index = className.lastIndexOf('.');
+            String packageName = (index >= 0) ? className.substring(0, index) : "";
+            if ((currentPackageName == null) || !currentPackageName.equals(packageName)) {
+                currentPackageName = packageName;
+                currentPackageNode = new DefaultMutableTreeNode(currentPackageName);
+                parent.add(currentPackageNode);
+            }
+            currentPackageNode.add(new ClassNameTreeNode(className));
+        }
+        return model;
+    }
+    
+    /** */
+    private void centerWindow() {
+        Dimension paneSize = getSize();
+        Dimension screenSize = getToolkit().getScreenSize();
+        setLocation((screenSize.width-paneSize.width)/2, (screenSize.height-paneSize.height)/2);
+    }
+    
+    /** */
+    private void addListeners() {
+        fCancel.addActionListener(
+            new ActionListener() {
+                public void actionPerformed(ActionEvent e) {
+                    dispose();
+                }
+            });
+        
+        fOk.addActionListener(
+            new ActionListener() {
+                public void actionPerformed(ActionEvent e) {
+                    okSelected();
+                }
+            });
+
+        fTree.addTreeSelectionListener(
+            new TreeSelectionListener() {
+                public void valueChanged(TreeSelectionEvent e) {
+                    checkEnableOK(e);
+                }
+            });
+        
+        fTree.addMouseListener(
+            new MouseAdapter () {
+                public void mouseClicked(MouseEvent e) {
+                    if (e.getClickCount() == 2) {
+                        okSelected();
+                    }
+                }
+            });
+
+        addWindowListener(
+            new WindowAdapter() {
+                public void windowClosing(WindowEvent e) {
+                    dispose();
+                }
+            }
+            );
+    }
+    
+    /** */
+    private void defineLayout() {
+        getContentPane().setLayout(new GridBagLayout());
+        GridBagConstraints labelConstraints = new GridBagConstraints();
+        labelConstraints.gridx= 0; labelConstraints.gridy= 0;
+        labelConstraints.gridwidth= 1; labelConstraints.gridheight= 1;
+        labelConstraints.fill= GridBagConstraints.BOTH;
+        labelConstraints.anchor= GridBagConstraints.WEST;
+        labelConstraints.weightx= 1.0;
+        labelConstraints.weighty= 0.0;
+        labelConstraints.insets= new Insets(8, 8, 0, 8);
+        getContentPane().add(fDescription, labelConstraints);
+
+        GridBagConstraints listConstraints = new GridBagConstraints();
+        listConstraints.gridx= 0; listConstraints.gridy= 1;
+        listConstraints.gridwidth= 4; listConstraints.gridheight= 1;
+        listConstraints.fill= GridBagConstraints.BOTH;
+        listConstraints.anchor= GridBagConstraints.CENTER;
+        listConstraints.weightx= 1.0;
+        listConstraints.weighty= 1.0;
+        listConstraints.insets= new Insets(8, 8, 8, 8);
+        getContentPane().add(fScrolledList, listConstraints);
+        
+        GridBagConstraints okConstraints= new GridBagConstraints();
+        okConstraints.gridx= 2; okConstraints.gridy= 2;
+        okConstraints.gridwidth= 1; okConstraints.gridheight= 1;
+        okConstraints.anchor= java.awt.GridBagConstraints.EAST;
+        okConstraints.insets= new Insets(0, 8, 8, 8);
+        getContentPane().add(fOk, okConstraints);
+
+
+        GridBagConstraints cancelConstraints = new GridBagConstraints();
+        cancelConstraints.gridx= 3; cancelConstraints.gridy= 2;
+        cancelConstraints.gridwidth= 1; cancelConstraints.gridheight= 1;
+        cancelConstraints.anchor= java.awt.GridBagConstraints.EAST;
+        cancelConstraints.insets= new Insets(0, 8, 8, 8);
+        getContentPane().add(fCancel, cancelConstraints);
+    }
+    
+    /** */
+    private Vector createTestList(TestCollector collector) {
+        Enumeration each= collector.collectTests();
+        Vector classNames = new Vector(300);
+        while(each.hasMoreElements()) {
+            classNames.add(each.nextElement());  
+        }
+        Collections.sort(classNames);
+        return classNames;
+    }
+
+    /** */
+    private static class ClassNameTreeNode extends DefaultMutableTreeNode {
+        private String className;
+        
+        /** */
+        public ClassNameTreeNode (String className) {
+            this.className = className;
+        }
+        
+        /** */
+        public String toString() {
+            if (className == null) return "";
+            int index = className.lastIndexOf('.');
+            return (index >= 0) ? className.substring(index+1) : className;
+        }
+        
+        /** */
+        public String getClassName() {
+            return className;   
+        }
+    }
+}

Added: incubator/jdo/trunk/fostore20/test/java/org/apache/jdo/test/util/Util.java
URL: http://svn.apache.org/viewcvs/incubator/jdo/trunk/fostore20/test/java/org/apache/jdo/test/util/Util.java?rev=171355&view=auto
==============================================================================
--- incubator/jdo/trunk/fostore20/test/java/org/apache/jdo/test/util/Util.java (added)
+++ incubator/jdo/trunk/fostore20/test/java/org/apache/jdo/test/util/Util.java Sun May 22 11:40:13 2005
@@ -0,0 +1,256 @@
+/*
+ * 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.test.util;
+
+import java.lang.reflect.Array;
+import java.text.SimpleDateFormat;
+import java.util.Comparator;
+import java.util.Date;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+import java.util.TreeSet;
+import java.util.GregorianCalendar;
+import java.util.TimeZone;
+import java.util.Locale;
+import java.text.SimpleDateFormat;
+
+/**
+* Provides for converting some collection-y objets to strings for testing
+* output purposes.
+*
+* @author Dave Bristor
+*/
+public class Util {
+    /** */
+    public static SimpleDateFormat longFormatter;
+    /** */
+    public static SimpleDateFormat shortFormatter;
+    /** Calendar representing the date Neil Armstrong walks on the moon */
+    public static GregorianCalendar moonWalkDate;
+
+    static {
+        TimeZone timeZone = TimeZone.getTimeZone("America/New_York");
+
+        longFormatter = new SimpleDateFormat("EEE/d/MMM/yyyy-HH:mm:ss", Locale.US);
+        longFormatter.setTimeZone(timeZone);
+
+        shortFormatter = new SimpleDateFormat("d/MMM/yyyy", Locale.US);
+        shortFormatter.setTimeZone(timeZone);
+
+        moonWalkDate = new GregorianCalendar(timeZone);
+        // Neil Armstrong walks on the moon
+        moonWalkDate.set(1969, GregorianCalendar.JULY, 20, 22, 56, 00);
+        // we need to set the millis
+        moonWalkDate.set(GregorianCalendar.MILLISECOND, 0);
+    }
+
+    public static String stringifyArrayObj(Object val) {
+        StringBuffer rc = new StringBuffer("[ ");
+        try {
+            int length = Array.getLength(val);
+            for (int i = 0; i < length; i++) {
+                Object obj = Array.get(val, i);
+                if (obj.getClass().isArray()) {
+                    rc.append(stringifyArrayObj(obj));
+                } else if (obj instanceof Date) {
+                    rc.append(longFormatter.format((Date)obj));
+                } else {
+                    rc.append(obj);
+                }
+                if (i < length - 1) {
+                    rc.append(", ");
+                }
+            }
+        } catch (IllegalArgumentException ex) {
+            System.err.println("stringifyArrayVal: " + ex);
+        } catch (ArrayIndexOutOfBoundsException ex) {
+            System.err.println("stringifyArrayVal: " + ex);
+        }
+        return rc.append(" ]").toString();
+    }
+
+    public static String stringifyList(List val, String name) {
+        StringBuffer rc = new StringBuffer("\n");
+        rc.append(name).append(": ");
+        if (null == val) {
+            rc.append("__null__");
+        } else if (val.isEmpty()) {
+            rc.append(" __empty__");
+        } else {
+            int size = val.size();
+            for (int i = 0; i < size; i++) {
+                rc.append("\n " + i + ": ");
+                Object obj = val.get(i);
+                if (obj.getClass().isArray()) {
+                    rc.append(stringifyArrayObj(obj));
+                } else if (obj instanceof Date) {
+                    rc.append(longFormatter.format((Date)obj));
+                } else if (obj instanceof Map) {
+                    rc.append(sortMap((Map)obj));
+                } else {
+                    rc.append(obj);
+                }
+            }
+        }
+        return rc.toString();
+    }
+
+    /**
+     * Returns a StringBuffer that contains the entries of the given map,
+     * sorted.
+     */
+    public static String stringifyMap(Map val, String name) {
+        StringBuffer rc = new StringBuffer("\n");
+        rc.append(name).append(": ");
+        if (null == val) {
+            rc.append("__null__");
+        } else if (val.isEmpty()) {
+            rc.append(" __empty__");
+        } else {
+            TreeSet ts = new TreeSet();
+            
+            Set entries = val.entrySet();
+            for (Iterator i = entries.iterator(); i.hasNext();) {
+                StringBuffer entryString = new StringBuffer();
+                Map.Entry entry = (Map.Entry)i.next();
+                entryString.append("\n  key: " + entry.getKey() + ", value: ");
+                Object obj = entry.getValue();
+                if (obj.getClass().isArray()) {
+                    entryString.append(stringifyArrayObj(obj));
+                } else if (obj instanceof Date) {
+                    entryString.append(longFormatter.format((Date)obj));
+                } else if (obj instanceof Map) {
+                    entryString.append(sortMap((Map)obj));
+                } else {
+                    entryString.append(obj);
+                }
+                ts.add(entryString.toString());
+            }
+
+            for (Iterator i = ts.iterator(); i.hasNext();) {
+                rc.append((String)i.next());
+            }
+        }
+        return rc.toString();
+    }
+
+    /**
+     * Returns a StringBuffer that contains the entries of the given set,
+     * sorted.
+     */
+    public static String stringifySet(Set val, String name) {
+        StringBuffer rc = new StringBuffer("\n");
+        rc.append(name).append(": ");
+        if (null == val) {
+            rc.append("__null__");
+        } else if (val.isEmpty()) {
+            rc.append(" __empty__");
+        } else {
+            TreeSet ts = new TreeSet();
+            
+            for (Iterator i = val.iterator(); i.hasNext();) {
+                StringBuffer entryString = new StringBuffer();
+                entryString.append("\n  elem: ");
+                Object obj = i.next();
+                if (obj instanceof Date) {
+                    entryString.append(longFormatter.format((Date)obj));
+                } else if (obj instanceof Map) {
+                    entryString.append(sortMap((Map)obj));
+                } else {
+                    entryString.append(obj);
+                }
+                ts.add(entryString.toString());
+            }
+
+            for (Iterator i = ts.iterator(); i.hasNext();) {
+                rc.append((String)i.next());
+            }
+        }
+        return rc.toString();
+    }
+
+    /** Returns the elements of Maps in order based on
+     * the toString() of the keys.
+     */
+    public static String sortMap(Map map) {
+        if (map.size() == 0) {
+            return "{ }";
+        }
+        StringBuffer rc = new StringBuffer();
+        TreeSet sorted =
+            new TreeSet(new Comparator () {
+                    public int compare(Object o1, Object o2) {
+                        return o1.toString().compareTo(o2.toString());
+                    }
+                    public boolean equals() {
+                        return true;
+                    }
+                });
+        rc.append("{");
+        sorted.addAll(map.keySet());
+        
+        Iterator j = sorted.iterator();
+        while (true) {
+            Object o = j.next();
+            rc.append(o.toString() + "="
+                      + map.get(o).toString());
+            if (j.hasNext()) {
+                rc.append(", ");
+            } else {
+                break;
+            }
+        }
+        rc.append("}");
+        return rc.toString();
+    }
+
+    public static String getInfo(String name, Object o) {
+        StringBuffer rc = new StringBuffer(name);
+        rc.append(" (");
+        if (o==null) {
+            rc.append("nullObject");
+        } else {
+            rc.append(o.getClass().getName());
+        }
+        if (o instanceof org.apache.jdo.sco.SCO) {
+            org.apache.jdo.sco.SCO _sco = (org.apache.jdo.sco.SCO)o;
+            rc.append(", owning field=" + _sco.getFieldName());
+        }
+        rc.append(")");
+        return rc.toString();
+    }        
+
+    /** @return Name of the class of the given object
+    */
+    public static String getClassName(Object obj) {
+        return obj.getClass().getName();
+    }
+    
+    /** 
+     * @return Name of the class of the given object without package prefix
+     */
+    public static String getClassBaseName(Object obj) {
+     	String className = getClassName(obj);
+        int index = className.lastIndexOf('.');
+        if (index != -1) {
+            className = className.substring(index + 1);
+        }
+        return className;
+    }
+}

Added: incubator/jdo/trunk/fostore20/test/jdo/org/apache/jdo/pc/appid/appid.jdoproperties
URL: http://svn.apache.org/viewcvs/incubator/jdo/trunk/fostore20/test/jdo/org/apache/jdo/pc/appid/appid.jdoproperties?rev=171355&view=auto
==============================================================================
--- incubator/jdo/trunk/fostore20/test/jdo/org/apache/jdo/pc/appid/appid.jdoproperties (added)
+++ incubator/jdo/trunk/fostore20/test/jdo/org/apache/jdo/pc/appid/appid.jdoproperties Sun May 22 11:40:13 2005
@@ -0,0 +1,58 @@
+# Classnames can have the following attributes: 
+#          jdo:{persistent|transactional} 
+#          super: <classname> 
+#          oid: <classname> 
+#          access: {public|protected|package|private} 
+# Fieldnames can have the following attributes: 
+#          type:<type> 
+#          access: {public|protected|package|private} 
+#          jdo:{persistent|transactional|transient} 
+#          annotation:{key|dfg|mediated} 
+
+org.apache.jdo.pc.appid.PCPoint=jdo:persistent,oid:org.apache.jdo.pc.appid.PCPoint$Oid
+org.apache.jdo.pc.appid.PCPoint#x=jdo:persistent,annotation:key
+org.apache.jdo.pc.appid.PCPoint#y=jdo:persistent,annotation:mediated
+
+
+org.apache.jdo.pc.appid.PCRect=jdo:persistent,oid:org.apache.jdo.pc.appid.PCRect$Oid
+org.apache.jdo.pc.appid.PCRect#zid=jdo:persistent,annotation:key
+org.apache.jdo.pc.appid.PCRect#lowerRight=jdo:persistent,annotation:mediated
+org.apache.jdo.pc.appid.PCRect#upperLeft=jdo:persistent,annotation:mediated
+
+org.apache.jdo.pc.appid.PCPerson=jdo:persistent
+org.apache.jdo.pc.appid.PCPerson#firstname=jdo:persistent,annotation:mediated
+org.apache.jdo.pc.appid.PCPerson#lastname=jdo:persistent,annotation:mediated
+org.apache.jdo.pc.appid.PCPerson#birthdate=jdo:persistent,annotation:mediated
+
+org.apache.jdo.pc.appid.PCEmployee=jdo:persistent,super:org.apache.jdo.pc.appid.PCPerson,oid:org.apache.jdo.pc.appid.PCEmployee$Oid
+org.apache.jdo.pc.appid.PCEmployee#empid=jdo:persistent,annotation:key
+org.apache.jdo.pc.appid.PCEmployee#hiredate=jdo:persistent,annotation:mediated
+org.apache.jdo.pc.appid.PCEmployee#department=jdo:persistent,annotation:mediated
+org.apache.jdo.pc.appid.PCEmployee#projects=jdo:persistent,annotation:mediated
+org.apache.jdo.pc.appid.PCEmployee#manager=jdo:persistent,annotation:mediated
+org.apache.jdo.pc.appid.PCEmployee#employees=jdo:persistent,annotation:mediated
+org.apache.jdo.pc.appid.PCEmployee#insurance=jdo:persistent,annotation:mediated
+
+org.apache.jdo.pc.appid.PCPartTimeEmployee=jdo:persistent,super:org.apache.jdo.pc.appid.PCEmployee
+org.apache.jdo.pc.appid.PCPartTimeEmployee#wage=jdo:persistent,annotation:mediated
+
+org.apache.jdo.pc.appid.PCFullTimeEmployee=jdo:persistent,super:org.apache.jdo.pc.appid.PCEmployee
+org.apache.jdo.pc.appid.PCFullTimeEmployee#salary=jdo:persistent,annotation:mediated
+
+org.apache.jdo.pc.appid.PCDepartment=jdo:persistent,oid:org.apache.jdo.pc.appid.PCDepartment$Oid
+org.apache.jdo.pc.appid.PCDepartment#deptid=jdo:persistent,annotation:key
+org.apache.jdo.pc.appid.PCDepartment#name=jdo:persistent,annotation:mediated
+org.apache.jdo.pc.appid.PCDepartment#employees=jdo:persistent,annotation:mediated
+
+org.apache.jdo.pc.appid.PCInsurance=jdo:persistent,oid:org.apache.jdo.pc.appid.PCInsurance$Oid
+org.apache.jdo.pc.appid.PCInsurance#insid=jdo:persistent,annotation:key
+org.apache.jdo.pc.appid.PCInsurance#carrier=jdo:persistent,annotation:mediated
+org.apache.jdo.pc.appid.PCInsurance#employee=jdo:persistent,annotation:mediated
+
+org.apache.jdo.pc.appid.PCProject=jdo:persistent,oid:org.apache.jdo.pc.appid.PCProject$Oid
+org.apache.jdo.pc.appid.PCProject#projid=jdo:persistent,annotation:key
+org.apache.jdo.pc.appid.PCProject#name=jdo:persistent,annotation:mediated
+org.apache.jdo.pc.appid.PCProject#employees=jdo:persistent,annotation:mediated
+
+org.apache.jdo.pc.appid.PCObjectKey=jdo:persistent,oid:org.apache.jdo.pc.appid.PCObjectKey$Oid
+org.apache.jdo.pc.appid.PCObjectKey#key=jdo:persistent,annotation:key

Added: incubator/jdo/trunk/fostore20/test/jdo/org/apache/jdo/pc/appid/package.jdo
URL: http://svn.apache.org/viewcvs/incubator/jdo/trunk/fostore20/test/jdo/org/apache/jdo/pc/appid/package.jdo?rev=171355&view=auto
==============================================================================
--- incubator/jdo/trunk/fostore20/test/jdo/org/apache/jdo/pc/appid/package.jdo (added)
+++ incubator/jdo/trunk/fostore20/test/jdo/org/apache/jdo/pc/appid/package.jdo Sun May 22 11:40:13 2005
@@ -0,0 +1,95 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE jdo PUBLIC "-//Sun Microsystems, Inc.//DTD Java Data Objects Metadata 1.0//EN" "http://java.sun.com/dtd/jdo_1_0.dtd">
+<jdo>
+  <package name="org.apache.jdo.pc.appid">
+
+    <!-- This will not be required once the JDOModel is fixed so that
+         the defaults defined in section 18.4 of the spec are working
+    -->
+    <class name="PCPoint"
+           identity-type="application" objectid-class="org.apache.jdo.pc.appid.PCPoint$Oid">
+      <field name="x" persistence-modifier="persistent" primary-key="true"/>
+      <field name="y" persistence-modifier="persistent"/>
+    </class>
+
+
+    <class name="PCRect"
+           identity-type="application" objectid-class="org.apache.jdo.pc.appid.PCRect$Oid">
+      <field name="zid" persistence-modifier="persistent" primary-key="true"/>
+      <field name="lowerRight" persistence-modifier="persistent"/>
+      <field name="upperLeft" persistence-modifier="persistent"/>
+    </class>
+
+    <class name="PCPerson" 
+           identity-type="application">
+      <field name="firstname"/>
+      <field name="lastname"/>
+      <field name="birthdate"/>
+    </class>
+
+    <class name="PCEmployee" 
+           identity-type="application" 
+           objectid-class="org.apache.jdo.pc.appid.PCEmployee$Oid"
+           persistence-capable-superclass="PCPerson">
+      <field name="empid" primary-key="true"/>
+      <field name="hiredate"/>
+      <field name="department" persistence-modifier="persistent"/>
+      <field name="projects">
+        <collection element-type="PCProject"/>
+      </field>	
+      <field name="manager" persistence-modifier="persistent"/>
+      <field name="employees">
+        <collection element-type="PCEmployee"/>
+      </field>	
+      <field name="insurance" persistence-modifier="persistent"/>
+    </class>
+
+    <class name="PCPartTimeEmployee" 
+           identity-type="application" 
+           persistence-capable-superclass="PCEmployee">
+      <field name="wage"/>
+    </class>
+
+    <class name="PCFullTimeEmployee" 
+           identity-type="application" 
+           persistence-capable-superclass="PCEmployee">
+      <field name="salary"/>
+    </class>
+
+    <class name="PCDepartment" 
+           identity-type="application"
+           objectid-class="org.apache.jdo.pc.appid.PCDepartment$Oid">
+      <field name="deptid" primary-key="true"/>
+      <field name="name"/>
+      <field name="employees">
+        <collection element-type="PCEmployee"/>
+      </field>
+    </class>
+
+    <class name="PCInsurance" 
+           identity-type="application"
+           objectid-class="org.apache.jdo.pc.appid.PCInsurance$Oid">
+      <field name="insid" primary-key="true"/>
+      <field name="carrier"/>
+      <field name="employee" persistence-modifier="persistent"/>
+    </class>
+
+    <class name="PCProject" 
+           identity-type="application"
+           objectid-class="org.apache.jdo.pc.appid.PCProject$Oid">
+      <field name="projid" primary-key="true"/>
+      <field name="name"/>
+      <field name="employees">
+        <collection element-type="PCEmployee"/>
+      </field>
+    </class>
+
+    <class name="PCObjectKey" 
+           identity-type="application"
+           objectid-class="org.apache.jdo.pc.appid.PCObjectKey$Oid">
+      <field name="key" primary-key="true"/>
+    </class>
+
+  </package>
+</jdo>
+

Added: incubator/jdo/trunk/fostore20/test/jdo/org/apache/jdo/pc/empdept/empdept.jdoproperties
URL: http://svn.apache.org/viewcvs/incubator/jdo/trunk/fostore20/test/jdo/org/apache/jdo/pc/empdept/empdept.jdoproperties?rev=171355&view=auto
==============================================================================
--- incubator/jdo/trunk/fostore20/test/jdo/org/apache/jdo/pc/empdept/empdept.jdoproperties (added)
+++ incubator/jdo/trunk/fostore20/test/jdo/org/apache/jdo/pc/empdept/empdept.jdoproperties Sun May 22 11:40:13 2005
@@ -0,0 +1,45 @@
+# Classnames can have the following attributes: 
+#          jdo:{persistent|transactional} 
+#          super: <classname> 
+#          oid: <classname> 
+#          access: {public|protected|package|private} 
+# Fieldnames can have the following attributes: 
+#          type:<type> 
+#          access: {public|protected|package|private} 
+#          jdo:{persistent|transactional|transient} 
+#          annotation:{key|dfg|mediated} 
+
+org.apache.jdo.pc.empdept.PCPerson=jdo:persistent
+org.apache.jdo.pc.empdept.PCPerson#firstname=jdo:persistent,annotation:mediated
+org.apache.jdo.pc.empdept.PCPerson#lastname=jdo:persistent,annotation:mediated
+org.apache.jdo.pc.empdept.PCPerson#birthdate=jdo:persistent,annotation:mediated
+
+org.apache.jdo.pc.empdept.PCEmployee=jdo:persistent,super:org.apache.jdo.pc.empdept.PCPerson
+org.apache.jdo.pc.empdept.PCEmployee#empid=jdo:persistent,annotation:mediated
+org.apache.jdo.pc.empdept.PCEmployee#hiredate=jdo:persistent,annotation:mediated
+org.apache.jdo.pc.empdept.PCEmployee#department=jdo:persistent,annotation:mediated
+org.apache.jdo.pc.empdept.PCEmployee#projects=jdo:persistent,annotation:mediated
+org.apache.jdo.pc.empdept.PCEmployee#manager=jdo:persistent,annotation:mediated
+org.apache.jdo.pc.empdept.PCEmployee#employees=jdo:persistent,annotation:mediated
+org.apache.jdo.pc.empdept.PCEmployee#insurance=jdo:persistent,annotation:mediated
+
+org.apache.jdo.pc.empdept.PCPartTimeEmployee=jdo:persistent,super:org.apache.jdo.pc.empdept.PCEmployee
+org.apache.jdo.pc.empdept.PCPartTimeEmployee#wage=jdo:persistent,annotation:mediated
+
+org.apache.jdo.pc.empdept.PCFullTimeEmployee=jdo:persistent,super:org.apache.jdo.pc.empdept.PCEmployee
+org.apache.jdo.pc.empdept.PCFullTimeEmployee#salary=jdo:persistent,annotation:mediated
+
+org.apache.jdo.pc.empdept.PCDepartment=jdo:persistent
+org.apache.jdo.pc.empdept.PCDepartment#deptid=jdo:persistent,annotation:mediated
+org.apache.jdo.pc.empdept.PCDepartment#name=jdo:persistent,annotation:mediated
+org.apache.jdo.pc.empdept.PCDepartment#employees=jdo:persistent,annotation:mediated
+
+org.apache.jdo.pc.empdept.PCInsurance=jdo:persistent
+org.apache.jdo.pc.empdept.PCInsurance#insid=jdo:persistent,annotation:mediated
+org.apache.jdo.pc.empdept.PCInsurance#carrier=jdo:persistent,annotation:mediated
+org.apache.jdo.pc.empdept.PCInsurance#employee=jdo:persistent,annotation:mediated
+
+org.apache.jdo.pc.empdept.PCProject=jdo:persistent
+org.apache.jdo.pc.empdept.PCProject#projid=jdo:persistent,annotation:mediated
+org.apache.jdo.pc.empdept.PCProject#name=jdo:persistent,annotation:mediated
+org.apache.jdo.pc.empdept.PCProject#employees=jdo:persistent,annotation:mediated

Added: incubator/jdo/trunk/fostore20/test/jdo/org/apache/jdo/pc/empdept/package.jdo
URL: http://svn.apache.org/viewcvs/incubator/jdo/trunk/fostore20/test/jdo/org/apache/jdo/pc/empdept/package.jdo?rev=171355&view=auto
==============================================================================
--- incubator/jdo/trunk/fostore20/test/jdo/org/apache/jdo/pc/empdept/package.jdo (added)
+++ incubator/jdo/trunk/fostore20/test/jdo/org/apache/jdo/pc/empdept/package.jdo Sun May 22 11:40:13 2005
@@ -0,0 +1,68 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE jdo PUBLIC "-//Sun Microsystems, Inc.//DTD Java Data Objects Metadata 1.0//EN" "http://java.sun.com/dtd/jdo_1_0.dtd">
+<jdo>
+  <package name="org.apache.jdo.pc.empdept">
+
+    <class name="PCPerson" 
+           identity-type="datastore">
+      <field name="firstname"/>
+      <field name="lastname"/>
+      <field name="birthdate"/>
+    </class>
+
+    <class name="PCEmployee" 
+           identity-type="datastore" 
+           persistence-capable-superclass="PCPerson">
+      <field name="empid"/>
+      <field name="hiredate"/>
+      <field name="department" persistence-modifier="persistent"/>
+      <field name="projects">
+        <collection element-type="PCProject"/>
+      </field>	
+      <field name="manager" persistence-modifier="persistent"/>
+      <field name="employees">
+        <collection element-type="PCEmployee"/>
+      </field>	
+      <field name="insurance" persistence-modifier="persistent"/>
+    </class>
+
+    <class name="PCPartTimeEmployee" 
+           identity-type="datastore" 
+           persistence-capable-superclass="PCEmployee">
+      <field name="wage"/>
+    </class>
+
+    <class name="PCFullTimeEmployee" 
+           identity-type="datastore" 
+           persistence-capable-superclass="PCEmployee">
+      <field name="salary"/>
+    </class>
+
+    <class name="PCDepartment" 
+           identity-type="datastore">
+      <field name="deptid"/>
+      <field name="name"/>
+      <field name="employees">
+        <collection element-type="PCEmployee"/>
+      </field>
+    </class>
+
+    <class name="PCInsurance" 
+           identity-type="datastore">
+      <field name="insid"/>
+      <field name="carrier"/>
+      <field name="employee" persistence-modifier="persistent"/>
+    </class>
+
+    <class name="PCProject" 
+           identity-type="datastore">
+      <field name="projid"/>
+      <field name="name"/>
+      <field name="employees">
+        <collection element-type="PCEmployee"/>
+      </field>
+    </class>
+
+  </package>
+</jdo>
+

Added: incubator/jdo/trunk/fostore20/test/jdo/org/apache/jdo/pc/package.jdo
URL: http://svn.apache.org/viewcvs/incubator/jdo/trunk/fostore20/test/jdo/org/apache/jdo/pc/package.jdo?rev=171355&view=auto
==============================================================================
--- incubator/jdo/trunk/fostore20/test/jdo/org/apache/jdo/pc/package.jdo (added)
+++ incubator/jdo/trunk/fostore20/test/jdo/org/apache/jdo/pc/package.jdo Sun May 22 11:40:13 2005
@@ -0,0 +1,441 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+   For testing purposes this .jdo file uses SYSTEM DOCTYPE, 
+   where most of the other .jdo files use a PUBLIC DOCTYPE.
+-->
+<!DOCTYPE jdo SYSTEM "file:/javax/jdo/jdo.dtd">
+<!--DOCTYPE jdo PUBLIC "-//Sun Microsystems, Inc.//DTD Java Data Objects Metadata 1.0//EN" "http://java.sun.com/dtd/jdo_1_0.dtd"-->
+<jdo>
+  <package name="org.apache.jdo.pc">
+
+    <!-- This will not be required once the JDOModel is fixed so that
+         the defaults defined in section 18.4 of the spec are working
+    -->
+    <class name="PCPoint"
+           identity-type="datastore">
+      <field name="x" persistence-modifier="persistent"/>
+      <field name="y" persistence-modifier="persistent"/>
+    </class>
+
+    <class name="PCPoint1"
+           identity-type="application" objectid-class="org.apache.jdo.pc.PCPoint1Key">
+      <field name="x" persistence-modifier="persistent" primary-key="true"/>
+      <field name="y" persistence-modifier="persistent"/>
+    </class>
+
+    <!-- This will not be required once the JDOModel is fixed so that
+         the defaults defined in section 18.4 of the spec are working
+    -->
+    <class name="PCPrimitive"
+           identity-type="datastore">
+      <field name="_boolean" persistence-modifier="persistent"/>
+      <field name="_char" persistence-modifier="persistent"/>
+      <field name="_byte" persistence-modifier="persistent"/>
+      <field name="_short" persistence-modifier="persistent"/>
+      <field name="_int" persistence-modifier="persistent"/>
+      <field name="_long" persistence-modifier="persistent"/>
+      <field name="_float" persistence-modifier="persistent"/>
+      <field name="_double" persistence-modifier="persistent"/>
+      <field name="_String" persistence-modifier="persistent"/>
+      <field name="_nullString" persistence-modifier="persistent"/>
+      <field name="_Boolean" persistence-modifier="persistent"/>
+      <field name="_nullBoolean" persistence-modifier="persistent"/>
+      <field name="_Char" persistence-modifier="persistent"/>
+      <field name="_nullChar" persistence-modifier="persistent"/>
+      <field name="_Byte" persistence-modifier="persistent"/>
+      <field name="_nullByte" persistence-modifier="persistent"/>
+      <field name="_Short" persistence-modifier="persistent"/>
+      <field name="_nullShort" persistence-modifier="persistent"/>
+      <field name="_Int" persistence-modifier="persistent"/>
+      <field name="_nullInt" persistence-modifier="persistent"/>
+      <field name="_Long" persistence-modifier="persistent"/>
+      <field name="_nullLong" persistence-modifier="persistent"/>
+      <field name="_Float" persistence-modifier="persistent"/>
+      <field name="_nullFloat" persistence-modifier="persistent"/>
+      <field name="_Double" persistence-modifier="persistent"/>
+      <field name="_nullDouble" persistence-modifier="persistent"/>
+      <field name="_Number" persistence-modifier="persistent"/>
+      <field name="_nullNumber" persistence-modifier="persistent"/>
+    </class>
+
+
+
+    <!-- This will not be required once the JDOModel is fixed so that
+         the defaults defined in section 18.4 of the spec are working
+    -->
+    <class name="PCCollections"
+           identity-type="datastore">
+
+      <field name="_arrayList" persistence-modifier="persistent"/>
+      <field name="_emptyArrayList" persistence-modifier="persistent"/>
+      <field name="_nullArrayList" persistence-modifier="persistent"/>
+
+      <field name="_sco_arrayList" persistence-modifier="persistent"/>
+      <field name="_sco_emptyArrayList" persistence-modifier="persistent"/>
+      <field name="_sco_nullArrayList" persistence-modifier="persistent"/>
+
+      <field name="_vector" persistence-modifier="persistent"/>
+      <field name="_emptyVector" persistence-modifier="persistent"/>
+      <field name="_nullVector" persistence-modifier="persistent"/>
+
+      <field name="_sco_vector" persistence-modifier="persistent"/>
+      <field name="_sco_emptyVector" persistence-modifier="persistent"/>
+      <field name="_sco_nullVector" persistence-modifier="persistent"/>
+
+      <field name="_hashMap" persistence-modifier="persistent"/>
+      <field name="_emptyHashMap" persistence-modifier="persistent"/>
+      <field name="_nullHashMap" persistence-modifier="persistent"/>
+    
+      <field name="_sco_hashMap" persistence-modifier="persistent"/>
+      <field name="_sco_emptyHashMap" persistence-modifier="persistent"/>
+      <field name="_sco_nullHashMap" persistence-modifier="persistent"/>
+    
+      <field name="_hashtable" persistence-modifier="persistent"/>
+      <field name="_emptyHashtable" persistence-modifier="persistent"/>
+      <field name="_nullHashtable" persistence-modifier="persistent"/>
+    
+      <field name="_sco_hashtable" persistence-modifier="persistent"/>
+      <field name="_sco_emptyHashtable" persistence-modifier="persistent"/>
+      <field name="_sco_nullHashtable" persistence-modifier="persistent"/>
+    
+      <field name="_hashSet" persistence-modifier="persistent"/>
+      <field name="_emptyHashSet" persistence-modifier="persistent"/>
+      <field name="_nullHashSet" persistence-modifier="persistent"/>
+
+      <field name="_sco_hashSet" persistence-modifier="persistent"/>
+      <field name="_sco_emptyHashSet" persistence-modifier="persistent"/>
+      <field name="_sco_nullHashSet" persistence-modifier="persistent"/>
+
+      <field name="_linkedList" persistence-modifier="persistent"/>
+      <field name="_emptyLinkedList" persistence-modifier="persistent"/>
+      <field name="_nullLinkedList" persistence-modifier="persistent"/>
+
+      <field name="_sco_linkedList" persistence-modifier="persistent"/>
+      <field name="_sco_emptyLinkedList" persistence-modifier="persistent"/>
+      <field name="_sco_nullLinkedList" persistence-modifier="persistent"/>
+
+      <field name="_treeMap" persistence-modifier="persistent"/>
+      <field name="_emptyTreeMap" persistence-modifier="persistent"/>
+      <field name="_nullTreeMap" persistence-modifier="persistent"/>
+
+      <field name="_sco_treeMap" persistence-modifier="persistent"/>
+      <field name="_sco_emptyTreeMap" persistence-modifier="persistent"/>
+      <field name="_sco_nullTreeMap" persistence-modifier="persistent"/>
+
+      <field name="_treeSet" persistence-modifier="persistent"/>
+      <field name="_emptyTreeSet" persistence-modifier="persistent"/>
+      <field name="_nullTreeSet" persistence-modifier="persistent"/>
+
+      <field name="_sco_treeSet" persistence-modifier="persistent"/>
+      <field name="_sco_emptyTreeSet" persistence-modifier="persistent"/>
+      <field name="_sco_nullTreeSet" persistence-modifier="persistent"/>
+    </class>
+
+
+    <class name="PCArrays"
+           identity-type="datastore">
+
+      <field name="_arrayListArray" persistence-modifier="persistent">
+        <array/>
+      </field>
+      <field name="_emptyArrayListArray" persistence-modifier="persistent">
+        <array/>
+      </field>
+      <field name="_nullArrayListArray" persistence-modifier="persistent">
+        <array/>
+      </field>
+
+      <field name="_hashMapArray" persistence-modifier="persistent">
+        <array/>
+      </field>
+      <field name="_emptyHashMapArray" persistence-modifier="persistent">
+        <array/>
+      </field>
+      <field name="_nullHashMapArray" persistence-modifier="persistent">
+        <array/>
+      </field>
+
+      <field name="_hashSetArray" persistence-modifier="persistent">
+        <array/>
+      </field>
+      <field name="_emptyHashSetArray" persistence-modifier="persistent">
+        <array/>
+      </field>
+      <field name="_nullHashSetArray" persistence-modifier="persistent">
+        <array/>
+      </field>
+
+      <field name="_hashtableArray" persistence-modifier="persistent">
+        <array/>
+      </field>
+      <field name="_emptyHashtableArray" persistence-modifier="persistent">
+        <array/>
+      </field>
+      <field name="_nullHashtableArray" persistence-modifier="persistent">
+        <array/>
+      </field>
+
+      <field name="_linkedListArray" persistence-modifier="persistent">
+        <array/>
+      </field>
+      <field name="_emptyLinkedListArray" persistence-modifier="persistent">
+        <array/>
+      </field>
+      <field name="_nullLinkedListArray" persistence-modifier="persistent">
+        <array/>
+      </field>
+
+      <field name="_treeMapArray" persistence-modifier="persistent">
+        <array/>
+      </field>
+      <field name="_emptyTreeMapArray" persistence-modifier="persistent">
+        <array/>
+      </field>
+      <field name="_nullTreeMapArray" persistence-modifier="persistent">
+        <array/>
+      </field>
+
+      <field name="_treeSetArray" persistence-modifier="persistent">
+        <array/>
+      </field>
+      <field name="_emptyTreeSetArray" persistence-modifier="persistent">
+        <array/>
+      </field>
+      <field name="_nullTreeSetArray" persistence-modifier="persistent">
+        <array/>
+      </field>
+
+      <field name="_vectorArray" persistence-modifier="persistent">
+        <array/>
+      </field>
+      <field name="_emptyVectorArray" persistence-modifier="persistent">
+        <array/>
+      </field>
+      <field name="_nullVectorArray" persistence-modifier="persistent">
+        <array/>
+      </field>
+    </class>
+
+
+    <!-- This will not be required once the JDOModel is fixed so that
+         the defaults defined in section 18.4 of the spec are working
+    -->
+    <class name="PCStroke"
+           identity-type="datastore">
+      <field name="points" persistence-modifier="persistent"/>
+    </class>
+
+
+    <!-- This will not be required once the JDOModel is fixed so that
+         the defaults defined in section 18.4 of the spec are working
+    -->
+    <class name="PCLargeObj"
+           identity-type="datastore">
+      <field name="x" persistence-modifier="persistent">
+        <array/>
+      </field>
+    </class>
+
+
+    <class name="PCRect"
+           identity-type="datastore">
+      <field name="lowerRight" persistence-modifier="persistent"/>
+      <field name="upperLeft" persistence-modifier="persistent"/>
+    </class>
+
+
+    <class name="PCRefArrays"
+           identity-type="datastore">
+      <field name="_pcpointArray" persistence-modifier="persistent">
+        <array/>
+      </field>
+    </class>
+
+
+    <class name="PCInterfaces"
+           identity-type="datastore">
+      <field name="_list" persistence-modifier="persistent"/>
+      <field name="_emptyList" persistence-modifier="persistent"/>
+      <field name="_nullList" persistence-modifier="persistent"/>
+    </class>
+
+
+    <!-- These two models go together -->
+
+    <class name="PCCycle"
+           identity-type="datastore">
+      <field name="name" persistence-modifier="persistent"/>
+      <field name="c2" persistence-modifier="persistent"/>
+    </class>
+
+
+    <class name="PCCycle2"
+           identity-type="datastore">
+      <field name="id" persistence-modifier="persistent"/>
+      <field name="c" persistence-modifier="persistent"/>
+    </class>
+
+
+    <!-- This is not required for the RI, which natively supports
+         java.sql.Date.  Implementations that do otherwise
+         will need to uncomment out this part of this model.
+
+         OK, so I'm a liar: there's a bug in the JDOModel implementation
+         which requires that we have XML for each and every field in each
+         and every PersistenceCapable class...in other words, we presently
+         cannot rely on the defaults specified in section 18.4 of the spec
+    -->
+
+    <class name="PCSCO" 
+           identity-type="datastore">
+	<field name="_date" persistence-modifier="persistent"/>
+	<field name="_nullDate" persistence-modifier="persistent"/>
+
+	<field name="_scoDate" persistence-modifier="persistent"/>
+	<field name="_nullSCODate" persistence-modifier="persistent"/>
+
+	<field name="_sqlDate" persistence-modifier="persistent"/>
+	<field name="_nullSqlDate" persistence-modifier="persistent"/>
+
+	<field name="_bigDecimal" persistence-modifier="persistent"/>
+	<field name="_nullBigDecimal" persistence-modifier="persistent"/>
+
+	<field name="_bigInteger" persistence-modifier="persistent"/>
+	<field name="_nullBigInteger" persistence-modifier="persistent"/>
+
+	<field name="_bitSet" persistence-modifier="persistent"/>
+	<field name="_nullBitSet" persistence-modifier="persistent"/>
+
+	<field name="_locale" persistence-modifier="persistent"/>
+	<field name="_nullLocale" persistence-modifier="persistent"/>
+    </class>
+
+<!--    end of PCSCO -->
+
+
+    <!-- These four models go together -->
+
+    <class name="PCDepartment" 
+           identity-type="datastore">
+	  <field name="deptid" persistence-modifier="persistent"/>
+	  <field name="name" persistence-modifier="persistent"/>
+      <field name="employees">
+        <collection element-type="PCEmployee"/>
+      </field>
+    </class>
+
+    <class name="PCEmployee" 
+           identity-type="datastore">
+	  <field name="empid" persistence-modifier="persistent"/>
+	  <field name="lastname" persistence-modifier="persistent"/>
+	  <field name="firstname" persistence-modifier="persistent"/>
+	  <field name="hiredate" persistence-modifier="persistent"/>
+	  <field name="birthdate" persistence-modifier="persistent"/>
+	  <field name="salary" persistence-modifier="persistent"/>
+      <field name="projects">
+        <collection element-type="PCProject"/>
+      </field>
+	  <field name="department" persistence-modifier="persistent"/>
+	  <field name="manager" persistence-modifier="persistent"/>
+      <field name="employees">
+        <collection element-type="PCEmployee"/>
+      </field>
+	  <field name="insurance" persistence-modifier="persistent"/>
+    </class>
+
+
+    <class name="PCInsurance" 
+           identity-type="datastore">
+	  <field name="insid" persistence-modifier="persistent"/>
+	  <field name="carrier" persistence-modifier="persistent"/>
+	  <field name="employee" persistence-modifier="persistent"/>
+    </class>
+
+
+    <class name="PCProject" 
+           identity-type="datastore">
+	  <field name="projid" persistence-modifier="persistent"/>
+	  <field name="name" persistence-modifier="persistent"/>
+      <field name="employees">
+        <collection element-type="PCEmployee"/>
+      </field>
+    </class>
+
+    <!-- These four models go together also -->
+
+    <class name="PCDepartment1" 
+           identity-type="datastore">
+	  <field name="deptid" persistence-modifier="persistent"/>
+	  <field name="name" persistence-modifier="persistent"/>
+      <field name="employees">
+        <collection element-type="PCEmployee1"/>
+      </field>
+    </class>
+
+    <class name="PCEmployee1" 
+           identity-type="datastore">
+	  <field name="empid" persistence-modifier="persistent"/>
+	  <field name="lastname" persistence-modifier="persistent"/>
+	  <field name="firstname" persistence-modifier="persistent"/>
+	  <field name="hiredate" persistence-modifier="persistent"/>
+	  <field name="birthdate" persistence-modifier="persistent"/>
+	  <field name="salary" persistence-modifier="persistent"/>
+      <field name="projects">
+        <collection element-type="PCProject1"/>
+      </field>
+	  <field name="department" persistence-modifier="persistent"/>
+	  <field name="manager" persistence-modifier="persistent"/>
+      <field name="employees" persistence-modifier="persistent">
+        <array/>
+      </field>
+	  <field name="insurance" persistence-modifier="persistent"/>
+    </class>
+
+    <class name="PCFullTimeEmployee1"
+           identity-type="datastore"
+           persistence-capable-superclass="PCEmployee1">
+      <field name="range"/>
+    </class>
+
+    <class name="PCInsurance1" 
+           identity-type="datastore">
+	  <field name="insid" persistence-modifier="persistent"/>
+	  <field name="carrier" persistence-modifier="persistent"/>
+	  <field name="employee" persistence-modifier="persistent"/>
+    </class>
+
+
+    <class name="PCProject1" 
+           identity-type="datastore">
+	  <field name="projid" persistence-modifier="persistent"/>
+	  <field name="name" persistence-modifier="persistent"/>
+      <field name="employees">
+        <collection element-type="PCEmployee1"/>
+      </field>
+    </class>
+
+    <class name="PCBase"
+           identity-type="datastore">
+      <field name="s" persistence-modifier="persistent"/>
+    </class>
+
+    <class name="PCDerived"
+           identity-type="datastore"
+           persistence-capable-superclass="PCBase">
+    </class>
+
+    <!-- PCId, PCCollection are Introduced
+         for regression testing bugid 4833532 -->
+    <class name="PCId"
+           identity-type="datastore">
+      <field name="id" persistence-modifier="persistent"/>
+    </class>
+
+    <class name="PCCollection"
+           identity-type="datastore">
+      <field name="set" persistence-modifier="persistent"/>
+    </class>
+
+  </package>
+</jdo>
+

Added: incubator/jdo/trunk/fostore20/test/jdo/org/apache/jdo/pc/pc.jdoproperties
URL: http://svn.apache.org/viewcvs/incubator/jdo/trunk/fostore20/test/jdo/org/apache/jdo/pc/pc.jdoproperties?rev=171355&view=auto
==============================================================================
--- incubator/jdo/trunk/fostore20/test/jdo/org/apache/jdo/pc/pc.jdoproperties (added)
+++ incubator/jdo/trunk/fostore20/test/jdo/org/apache/jdo/pc/pc.jdoproperties Sun May 22 11:40:13 2005
@@ -0,0 +1,401 @@
+# Classnames can have the following attributes: 
+#          jdo:{persistent|transactional} 
+#          super: <classname> 
+#          oid: <classname> 
+#          access: {public|protected|package|private} 
+# Fieldnames can have the following attributes: 
+#          type:<type> 
+#          access: {public|protected|package|private} 
+#          jdo:{persistent|transactional|transient} 
+#          annotation:{key|dfg|mediated} 
+
+org.apache.jdo.pc.PCPoint=jdo:persistent
+org.apache.jdo.pc.PCPoint#x=jdo:persistent,annotation:mediated
+org.apache.jdo.pc.PCPoint#y=jdo:persistent,annotation:mediated
+
+org.apache.jdo.pc.PCPoint1=jdo:persistent,oid:org.apache.jdo.pc.PCPoint1Key
+org.apache.jdo.pc.PCPoint1#x=jdo:persistent,annotation:key
+org.apache.jdo.pc.PCPoint1#y=jdo:persistent,annotation:mediated
+
+
+org.apache.jdo.pc.PCPrimitive=jdo:persistent
+org.apache.jdo.pc.PCPrimitive#_boolean=jdo:persistent,annotation:mediated
+org.apache.jdo.pc.PCPrimitive#_char=jdo:persistent,annotation:mediated
+org.apache.jdo.pc.PCPrimitive#_byte=jdo:persistent,annotation:mediated
+org.apache.jdo.pc.PCPrimitive#_short=jdo:persistent,annotation:mediated
+org.apache.jdo.pc.PCPrimitive#_int=jdo:persistent,annotation:mediated
+org.apache.jdo.pc.PCPrimitive#_long=jdo:persistent,annotation:mediated
+org.apache.jdo.pc.PCPrimitive#_float=jdo:persistent,annotation:mediated
+org.apache.jdo.pc.PCPrimitive#_double=jdo:persistent,annotation:mediated
+org.apache.jdo.pc.PCPrimitive#_String=jdo:persistent,annotation:mediated
+org.apache.jdo.pc.PCPrimitive#_nullString=jdo:persistent,annotation:mediated
+org.apache.jdo.pc.PCPrimitive#_Boolean=jdo:persistent,annotation:mediated
+org.apache.jdo.pc.PCPrimitive#_nullBoolean=jdo:persistent,annotation:mediated
+org.apache.jdo.pc.PCPrimitive#_Char=jdo:persistent,annotation:mediated
+org.apache.jdo.pc.PCPrimitive#_nullChar=jdo:persistent,annotation:mediated
+org.apache.jdo.pc.PCPrimitive#_Byte=jdo:persistent,annotation:mediated
+org.apache.jdo.pc.PCPrimitive#_nullByte=jdo:persistent,annotation:mediated
+org.apache.jdo.pc.PCPrimitive#_Short=jdo:persistent,annotation:mediated
+org.apache.jdo.pc.PCPrimitive#_nullShort=jdo:persistent,annotation:mediated
+org.apache.jdo.pc.PCPrimitive#_Int=jdo:persistent,annotation:mediated
+org.apache.jdo.pc.PCPrimitive#_nullInt=jdo:persistent,annotation:mediated
+org.apache.jdo.pc.PCPrimitive#_Long=jdo:persistent,annotation:mediated
+org.apache.jdo.pc.PCPrimitive#_nullLong=jdo:persistent,annotation:mediated
+org.apache.jdo.pc.PCPrimitive#_Float=jdo:persistent,annotation:mediated
+org.apache.jdo.pc.PCPrimitive#_nullFloat=jdo:persistent,annotation:mediated
+org.apache.jdo.pc.PCPrimitive#_Double=jdo:persistent,annotation:mediated
+org.apache.jdo.pc.PCPrimitive#_nullDouble=jdo:persistent,annotation:mediated
+org.apache.jdo.pc.PCPrimitive#_Number=jdo:persistent,annotation:mediated
+org.apache.jdo.pc.PCPrimitive#_nullNumber=jdo:persistent,annotation:mediated
+
+
+org.apache.jdo.pc.PCCollections=jdo:persistent
+org.apache.jdo.pc.PCCollections#_arrayList=jdo:persistent,annotation:mediated
+org.apache.jdo.pc.PCCollections#_emptyArrayList=jdo:persistent,annotation:mediated
+org.apache.jdo.pc.PCCollections#_nullArrayList=jdo:persistent,annotation:mediated
+
+org.apache.jdo.pc.PCCollections#_sco_arrayList=jdo:persistent,annotation:mediated
+org.apache.jdo.pc.PCCollections#_sco_emptyArrayList=jdo:persistent,annotation:mediated
+org.apache.jdo.pc.PCCollections#_sco_nullArrayList=jdo:persistent,annotation:mediated
+
+org.apache.jdo.pc.PCCollections#_vector=jdo:persistent,annotation:mediated
+org.apache.jdo.pc.PCCollections#_emptyVector=jdo:persistent,annotation:mediated
+org.apache.jdo.pc.PCCollections#_nullVector=jdo:persistent,annotation:mediated
+
+org.apache.jdo.pc.PCCollections#_sco_vector=jdo:persistent,annotation:mediated
+org.apache.jdo.pc.PCCollections#_sco_emptyVector=jdo:persistent,annotation:mediated
+org.apache.jdo.pc.PCCollections#_sco_nullVector=jdo:persistent,annotation:mediated
+
+org.apache.jdo.pc.PCCollections#_hashMap=jdo:persistent,annotation:mediated
+org.apache.jdo.pc.PCCollections#_emptyHashMap=jdo:persistent,annotation:mediated
+org.apache.jdo.pc.PCCollections#_nullHashMap=jdo:persistent,annotation:mediated
+    
+org.apache.jdo.pc.PCCollections#_sco_hashMap=jdo:persistent,annotation:mediated
+org.apache.jdo.pc.PCCollections#_sco_emptyHashMap=jdo:persistent,annotation:mediated
+org.apache.jdo.pc.PCCollections#_sco_nullHashMap=jdo:persistent,annotation:mediated
+    
+org.apache.jdo.pc.PCCollections#_hashtable=jdo:persistent,annotation:mediated
+org.apache.jdo.pc.PCCollections#_emptyHashtable=jdo:persistent,annotation:mediated
+org.apache.jdo.pc.PCCollections#_nullHashtable=jdo:persistent,annotation:mediated
+    
+org.apache.jdo.pc.PCCollections#_sco_hashtable=jdo:persistent,annotation:mediated
+org.apache.jdo.pc.PCCollections#_sco_emptyHashtable=jdo:persistent,annotation:mediated
+org.apache.jdo.pc.PCCollections#_sco_nullHashtable=jdo:persistent,annotation:mediated
+    
+org.apache.jdo.pc.PCCollections#_hashSet=jdo:persistent,annotation:mediated
+org.apache.jdo.pc.PCCollections#_emptyHashSet=jdo:persistent,annotation:mediated
+org.apache.jdo.pc.PCCollections#_nullHashSet=jdo:persistent,annotation:mediated
+
+org.apache.jdo.pc.PCCollections#_sco_hashSet=jdo:persistent,annotation:mediated
+org.apache.jdo.pc.PCCollections#_sco_emptyHashSet=jdo:persistent,annotation:mediated
+org.apache.jdo.pc.PCCollections#_sco_nullHashSet=jdo:persistent,annotation:mediated
+
+org.apache.jdo.pc.PCCollections#_linkedList=jdo:persistent,annotation:mediated
+org.apache.jdo.pc.PCCollections#_emptyLinkedList=jdo:persistent,annotation:mediated
+org.apache.jdo.pc.PCCollections#_nullLinkedList=jdo:persistent,annotation:mediated
+
+org.apache.jdo.pc.PCCollections#_sco_linkedList=jdo:persistent,annotation:mediated
+org.apache.jdo.pc.PCCollections#_sco_emptyLinkedList=jdo:persistent,annotation:mediated
+org.apache.jdo.pc.PCCollections#_sco_nullLinkedList=jdo:persistent,annotation:mediated
+
+org.apache.jdo.pc.PCCollections#_treeMap=jdo:persistent,annotation:mediated
+org.apache.jdo.pc.PCCollections#_emptyTreeMap=jdo:persistent,annotation:mediated
+org.apache.jdo.pc.PCCollections#_nullTreeMap=jdo:persistent,annotation:mediated
+
+org.apache.jdo.pc.PCCollections#_sco_treeMap=jdo:persistent,annotation:mediated
+org.apache.jdo.pc.PCCollections#_sco_emptyTreeMap=jdo:persistent,annotation:mediated
+org.apache.jdo.pc.PCCollections#_sco_nullTreeMap=jdo:persistent,annotation:mediated
+
+org.apache.jdo.pc.PCCollections#_treeSet=jdo:persistent,annotation:mediated
+org.apache.jdo.pc.PCCollections#_emptyTreeSet=jdo:persistent,annotation:mediated
+org.apache.jdo.pc.PCCollections#_nullTreeSet=jdo:persistent,annotation:mediated
+
+org.apache.jdo.pc.PCCollections#_sco_treeSet=jdo:persistent,annotation:mediated
+org.apache.jdo.pc.PCCollections#_sco_emptyTreeSet=jdo:persistent,annotation:mediated
+org.apache.jdo.pc.PCCollections#_sco_nullTreeSet=jdo:persistent,annotation:mediated
+
+org.apache.jdo.pc.PCCollections#date=jdo:persistent,annotation:mediated
+#
+# End of PCCollection
+
+org.apache.jdo.pc.PCArrays=jdo:persistent
+# boolean
+org.apache.jdo.pc.PCArrays#_booleanArray=jdo:persistent,annotation:mediated
+org.apache.jdo.pc.PCArrays#_emptyBooleanArray=jdo:persistent,annotation:mediated
+org.apache.jdo.pc.PCArrays#_nullBooleanArray=jdo:persistent,annotation:mediated
+
+org.apache.jdo.pc.PCArrays#_lang_BooleanArray=jdo:persistent,annotation:mediated
+org.apache.jdo.pc.PCArrays#_empty_lang_BooleanArray=jdo:persistent,annotation:mediated
+org.apache.jdo.pc.PCArrays#_null_lang_BooleanArray=jdo:persistent,annotation:mediated
+
+# char
+org.apache.jdo.pc.PCArrays#_charArray=jdo:persistent,annotation:mediated
+org.apache.jdo.pc.PCArrays#_emptyCharArray=jdo:persistent,annotation:mediated
+org.apache.jdo.pc.PCArrays#_nullCharArray=jdo:persistent,annotation:mediated
+
+org.apache.jdo.pc.PCArrays#_lang_CharacterArray=jdo:persistent,annotation:mediated
+org.apache.jdo.pc.PCArrays#_empty_lang_CharacterArray=jdo:persistent,annotation:mediated
+org.apache.jdo.pc.PCArrays#_null_lang_CharacterArray=jdo:persistent,annotation:mediated
+
+# byte
+org.apache.jdo.pc.PCArrays#_byteArray=jdo:persistent,annotation:mediated
+org.apache.jdo.pc.PCArrays#_emptyByteArray=jdo:persistent,annotation:mediated
+org.apache.jdo.pc.PCArrays#_nullByteArray=jdo:persistent,annotation:mediated
+
+org.apache.jdo.pc.PCArrays#_lang_ByteArray=jdo:persistent,annotation:mediated
+org.apache.jdo.pc.PCArrays#_empty_lang_ByteArray=jdo:persistent,annotation:mediated
+org.apache.jdo.pc.PCArrays#_null_lang_ByteArray=jdo:persistent,annotation:mediated
+
+# short
+org.apache.jdo.pc.PCArrays#_shortArray=jdo:persistent,annotation:mediated
+org.apache.jdo.pc.PCArrays#_emptyShortArray=jdo:persistent,annotation:mediated
+org.apache.jdo.pc.PCArrays#_nullShortArray=jdo:persistent,annotation:mediated
+    
+org.apache.jdo.pc.PCArrays#_lang_ShortArray=jdo:persistent,annotation:mediated
+org.apache.jdo.pc.PCArrays#_empty_lang_ShortArray=jdo:persistent,annotation:mediated
+org.apache.jdo.pc.PCArrays#_null_lang_ShortArray=jdo:persistent,annotation:mediated
+
+# int
+org.apache.jdo.pc.PCArrays#_intArray=jdo:persistent,annotation:mediated
+org.apache.jdo.pc.PCArrays#_emptyIntArray=jdo:persistent,annotation:mediated
+org.apache.jdo.pc.PCArrays#_nullIntArray=jdo:persistent,annotation:mediated
+
+org.apache.jdo.pc.PCArrays#_lang_IntegerArray=jdo:persistent,annotation:mediated
+org.apache.jdo.pc.PCArrays#_empty_lang_IntegerArray=jdo:persistent,annotation:mediated
+org.apache.jdo.pc.PCArrays#_null_lang_IntegerArray=jdo:persistent,annotation:mediated
+
+# long
+org.apache.jdo.pc.PCArrays#_longArray=jdo:persistent,annotation:mediated
+org.apache.jdo.pc.PCArrays#_emptyLongArray=jdo:persistent,annotation:mediated
+org.apache.jdo.pc.PCArrays#_nullLongArray=jdo:persistent,annotation:mediated
+
+org.apache.jdo.pc.PCArrays#_lang_LongArray=jdo:persistent,annotation:mediated
+org.apache.jdo.pc.PCArrays#_empty_lang_LongArray=jdo:persistent,annotation:mediated
+org.apache.jdo.pc.PCArrays#_null_lang_LongArray=jdo:persistent,annotation:mediated
+
+# float
+org.apache.jdo.pc.PCArrays#_floatArray=jdo:persistent,annotation:mediated
+org.apache.jdo.pc.PCArrays#_emptyFloatArray=jdo:persistent,annotation:mediated
+org.apache.jdo.pc.PCArrays#_nullFloatArray=jdo:persistent,annotation:mediated
+
+org.apache.jdo.pc.PCArrays#_lang_FloatArray=jdo:persistent,annotation:mediated
+org.apache.jdo.pc.PCArrays#_empty_lang_FloatArray=jdo:persistent,annotation:mediated
+org.apache.jdo.pc.PCArrays#_null_lang_FloatArray=jdo:persistent,annotation:mediated
+
+# double
+org.apache.jdo.pc.PCArrays#_doubleArray=jdo:persistent,annotation:mediated
+org.apache.jdo.pc.PCArrays#_emptyDoubleArray=jdo:persistent,annotation:mediated
+org.apache.jdo.pc.PCArrays#_nullDoubleArray=jdo:persistent,annotation:mediated
+
+org.apache.jdo.pc.PCArrays#_lang_DoubleArray=jdo:persistent,annotation:mediated
+org.apache.jdo.pc.PCArrays#_empty_lang_DoubleArray=jdo:persistent,annotation:mediated
+org.apache.jdo.pc.PCArrays#_null_lang_DoubleArray=jdo:persistent,annotation:mediated
+
+# String
+org.apache.jdo.pc.PCArrays#_stringArray=jdo:persistent,annotation:mediated
+org.apache.jdo.pc.PCArrays#_emptyStringArray=jdo:persistent,annotation:mediated
+org.apache.jdo.pc.PCArrays#_nullStringArray=jdo:persistent,annotation:mediated
+
+# Date
+org.apache.jdo.pc.PCArrays#_dateArray=jdo:persistent,annotation:mediated
+org.apache.jdo.pc.PCArrays#_emptyDateArray=jdo:persistent,annotation:mediated
+org.apache.jdo.pc.PCArrays#_nullDateArray=jdo:persistent,annotation:mediated
+
+# BigDecimal
+org.apache.jdo.pc.PCArrays#_bigDecimalArray=jdo:persistent,annotation:mediated
+org.apache.jdo.pc.PCArrays#_emptyBigDecimalArray=jdo:persistent,annotation:mediated
+org.apache.jdo.pc.PCArrays#_nullBigDecimalArray=jdo:persistent,annotation:mediated
+    
+# BigInteger
+org.apache.jdo.pc.PCArrays#_bigIntegerArray=jdo:persistent,annotation:mediated
+org.apache.jdo.pc.PCArrays#_emptyBigIntegerArray=jdo:persistent,annotation:mediated
+org.apache.jdo.pc.PCArrays#_nullBigIntegerArray=jdo:persistent,annotation:mediated
+
+# Locale
+org.apache.jdo.pc.PCArrays#_localeArray=jdo:persistent,annotation:mediated
+org.apache.jdo.pc.PCArrays#_emptyLocaleArray=jdo:persistent,annotation:mediated
+org.apache.jdo.pc.PCArrays#_nullLocaleArray=jdo:persistent,annotation:mediated
+
+# ArrayList
+org.apache.jdo.pc.PCArrays#_arrayListArray=jdo:persistent,annotation:mediated
+org.apache.jdo.pc.PCArrays#_emptyArrayListArray=jdo:persistent,annotation:mediated
+org.apache.jdo.pc.PCArrays#_nullArrayListArray=jdo:persistent,annotation:mediated
+
+# HashMap
+org.apache.jdo.pc.PCArrays#_hashMapArray=jdo:persistent,annotation:mediated
+org.apache.jdo.pc.PCArrays#_emptyHashMapArray=jdo:persistent,annotation:mediated
+org.apache.jdo.pc.PCArrays#_nullHashMapArray=jdo:persistent,annotation:mediated
+
+# HashSet
+org.apache.jdo.pc.PCArrays#_hashSetArray=jdo:persistent,annotation:mediated
+org.apache.jdo.pc.PCArrays#_emptyHashSetArray=jdo:persistent,annotation:mediated
+org.apache.jdo.pc.PCArrays#_nullHashSetArray=jdo:persistent,annotation:mediated
+
+# Hashtable
+org.apache.jdo.pc.PCArrays#_hashtableArray=jdo:persistent,annotation:mediated
+org.apache.jdo.pc.PCArrays#_emptyHashtableArray=jdo:persistent,annotation:mediated
+org.apache.jdo.pc.PCArrays#_nullHashtableArray=jdo:persistent,annotation:mediated
+
+# LinkedList 
+org.apache.jdo.pc.PCArrays#_linkedListArray=jdo:persistent,annotation:mediated
+org.apache.jdo.pc.PCArrays#_emptyLinkedListArray=jdo:persistent,annotation:mediated
+org.apache.jdo.pc.PCArrays#_nullLinkedListArray=jdo:persistent,annotation:mediated
+
+# TreeMap
+org.apache.jdo.pc.PCArrays#_treeMapArray=jdo:persistent,annotation:mediated
+org.apache.jdo.pc.PCArrays#_emptyTreeMapArray=jdo:persistent,annotation:mediated
+org.apache.jdo.pc.PCArrays#_nullTreeMapArray=jdo:persistent,annotation:mediated
+
+# TreeSet
+org.apache.jdo.pc.PCArrays#_treeSetArray=jdo:persistent,annotation:mediated
+org.apache.jdo.pc.PCArrays#_emptyTreeSetArray=jdo:persistent,annotation:mediated
+org.apache.jdo.pc.PCArrays#_nullTreeSetArray=jdo:persistent,annotation:mediated
+
+# Vector
+org.apache.jdo.pc.PCArrays#_vectorArray=jdo:persistent,annotation:mediated
+org.apache.jdo.pc.PCArrays#_emptyVectorArray=jdo:persistent,annotation:mediated
+org.apache.jdo.pc.PCArrays#_nullVectorArray=jdo:persistent,annotation:mediated
+
+org.apache.jdo.pc.PCArrays#date=jdo:persistent,annotation:mediated
+#
+# End of PCArrays
+
+
+# PCStroke
+org.apache.jdo.pc.PCStroke=jdo:persistent
+org.apache.jdo.pc.PCStroke#points=jdo:persistent,annotation:mediated
+
+
+org.apache.jdo.pc.PCLargeObj=jdo:persistent
+org.apache.jdo.pc.PCLargeObj#x=jdo:persistent,annotation:mediated
+
+
+org.apache.jdo.pc.PCRect=jdo:persistent
+org.apache.jdo.pc.PCRect#lowerRight=jdo:persistent,annotation:mediated
+org.apache.jdo.pc.PCRect#upperLeft=jdo:persistent,annotation:mediated
+
+
+org.apache.jdo.pc.PCRefArrays=jdo:persistent
+org.apache.jdo.pc.PCRefArrays#_pcpointArray=jdo:persistent,annotation:mediated
+
+
+org.apache.jdo.pc.PCInterfaces=jdo:persistent
+org.apache.jdo.pc.PCInterfaces#_list=jdo:persistent,annotation:mediated
+org.apache.jdo.pc.PCInterfaces#_emptyList=jdo:persistent,annotation:mediated
+org.apache.jdo.pc.PCInterfaces#_nullList=jdo:persistent,annotation:mediated
+
+
+org.apache.jdo.pc.PCCycle=jdo:persistent
+org.apache.jdo.pc.PCCycle#name=jdo:persistent,annotation:mediated
+org.apache.jdo.pc.PCCycle#c2=jdo:persistent,annotation:mediated
+
+
+org.apache.jdo.pc.PCCycle2=jdo:persistent
+org.apache.jdo.pc.PCCycle2#id=jdo:persistent,annotation:mediated
+org.apache.jdo.pc.PCCycle2#c=jdo:persistent,annotation:mediated
+
+
+org.apache.jdo.pc.PCSCO=jdo:persistent
+org.apache.jdo.pc.PCSCO#_date=jdo:persistent,annotation:mediated
+org.apache.jdo.pc.PCSCO#_nullDate=jdo:persistent,annotation:mediated
+
+org.apache.jdo.pc.PCSCO#_scoDate=jdo:persistent,annotation:mediated
+org.apache.jdo.pc.PCSCO#_nullSCODate=jdo:persistent,annotation:mediated
+
+org.apache.jdo.pc.PCSCO#_sqlDate=jdo:persistent,annotation:mediated
+org.apache.jdo.pc.PCSCO#_nullSqlDate=jdo:persistent,annotation:mediated
+
+org.apache.jdo.pc.PCSCO#_bigDecimal=jdo:persistent,annotation:mediated
+org.apache.jdo.pc.PCSCO#_nullBigDecimal=jdo:persistent,annotation:mediated
+
+org.apache.jdo.pc.PCSCO#_bigInteger=jdo:persistent,annotation:mediated
+org.apache.jdo.pc.PCSCO#_nullBigInteger=jdo:persistent,annotation:mediated
+
+org.apache.jdo.pc.PCSCO#_bitSet=jdo:persistent,annotation:mediated
+org.apache.jdo.pc.PCSCO#_nullBitSet=jdo:persistent,annotation:mediated
+
+org.apache.jdo.pc.PCSCO#_locale=jdo:persistent,annotation:mediated
+org.apache.jdo.pc.PCSCO#_nullLocale=jdo:persistent,annotation:mediated
+
+
+org.apache.jdo.pc.PCDepartment=jdo:persistent
+org.apache.jdo.pc.PCDepartment#deptid=jdo:persistent,annotation:mediated
+org.apache.jdo.pc.PCDepartment#name=jdo:persistent,annotation:mediated
+org.apache.jdo.pc.PCDepartment#employees=jdo:persistent,annotation:mediated
+
+
+org.apache.jdo.pc.PCEmployee=jdo:persistent
+org.apache.jdo.pc.PCEmployee#empid=jdo:persistent,annotation:mediated
+org.apache.jdo.pc.PCEmployee#lastname=jdo:persistent,annotation:mediated
+org.apache.jdo.pc.PCEmployee#firstname=jdo:persistent,annotation:mediated
+org.apache.jdo.pc.PCEmployee#hiredate=jdo:persistent,annotation:mediated
+org.apache.jdo.pc.PCEmployee#birthdate=jdo:persistent,annotation:mediated
+org.apache.jdo.pc.PCEmployee#salary=jdo:persistent,annotation:mediated
+org.apache.jdo.pc.PCEmployee#projects=jdo:persistent,annotation:mediated
+org.apache.jdo.pc.PCEmployee#department=jdo:persistent,annotation:mediated
+org.apache.jdo.pc.PCEmployee#manager=jdo:persistent,annotation:mediated
+org.apache.jdo.pc.PCEmployee#employees=jdo:persistent,annotation:mediated
+org.apache.jdo.pc.PCEmployee#insurance=jdo:persistent,annotation:mediated
+
+
+org.apache.jdo.pc.PCInsurance=jdo:persistent
+org.apache.jdo.pc.PCInsurance#insid=jdo:persistent,annotation:mediated
+org.apache.jdo.pc.PCInsurance#carrier=jdo:persistent,annotation:mediated
+org.apache.jdo.pc.PCInsurance#employee=jdo:persistent,annotation:mediated
+
+
+org.apache.jdo.pc.PCProject=jdo:persistent
+org.apache.jdo.pc.PCProject#projid=jdo:persistent,annotation:mediated
+org.apache.jdo.pc.PCProject#name=jdo:persistent,annotation:mediated
+org.apache.jdo.pc.PCProject#employees=jdo:persistent,annotation:mediated
+
+
+org.apache.jdo.pc.PCDepartment1=jdo:persistent
+org.apache.jdo.pc.PCDepartment1#deptid=jdo:persistent,annotation:mediated
+org.apache.jdo.pc.PCDepartment1#name=jdo:persistent,annotation:mediated
+org.apache.jdo.pc.PCDepartment1#employees=jdo:persistent,annotation:mediated
+
+org.apache.jdo.pc.PCEmployee1=jdo:persistent
+org.apache.jdo.pc.PCEmployee1#empid=jdo:persistent,annotation:mediated
+org.apache.jdo.pc.PCEmployee1#lastname=jdo:persistent,annotation:mediated
+org.apache.jdo.pc.PCEmployee1#firstname=jdo:persistent,annotation:mediated
+org.apache.jdo.pc.PCEmployee1#hiredate=jdo:persistent,annotation:mediated
+org.apache.jdo.pc.PCEmployee1#birthdate=jdo:persistent,annotation:mediated
+org.apache.jdo.pc.PCEmployee1#salary=jdo:persistent,annotation:mediated
+org.apache.jdo.pc.PCEmployee1#projects=jdo:persistent,annotation:mediated
+org.apache.jdo.pc.PCEmployee1#department=jdo:persistent,annotation:mediated
+org.apache.jdo.pc.PCEmployee1#manager=jdo:persistent,annotation:mediated
+org.apache.jdo.pc.PCEmployee1#employees=jdo:persistent,annotation:mediated
+org.apache.jdo.pc.PCEmployee1#insurance=jdo:persistent,annotation:mediated
+
+org.apache.jdo.pc.PCFullTimeEmployee1=jdo:persistent,super:org.apache.jdo.pc.PCEmployee1
+org.apache.jdo.pc.PCFullTimeEmployee1#range=jdo:persistent,annotation:mediated
+
+org.apache.jdo.pc.PCInsurance1=jdo:persistent
+org.apache.jdo.pc.PCInsurance1#insid=jdo:persistent,annotation:mediated
+org.apache.jdo.pc.PCInsurance1#carrier=jdo:persistent,annotation:mediated
+org.apache.jdo.pc.PCInsurance1#employee=jdo:persistent,annotation:mediated
+
+
+org.apache.jdo.pc.PCProject1=jdo:persistent
+org.apache.jdo.pc.PCProject1#projid=jdo:persistent,annotation:mediated
+org.apache.jdo.pc.PCProject1#name=jdo:persistent,annotation:mediated
+org.apache.jdo.pc.PCProject1#employees=jdo:persistent,annotation:mediated
+
+
+org.apache.jdo.pc.PCBase=jdo:persistent
+org.apache.jdo.pc.PCBase#s=jdo:persistent,annotation:mediated
+
+org.apache.jdo.pc.PCDerived=jdo:persistent,super:org.apache.jdo.pc.PCBase
+
+#
+# PCId, PCCollection are Introduced
+# for regression testing bugid 4833532
+#
+org.apache.jdo.pc.PCId=jdo:persistent
+org.apache.jdo.pc.PCId#id=jdo:persistent,annotation:mediated
+
+org.apache.jdo.pc.PCCollection=jdo:persistent
+org.apache.jdo.pc.PCCollection#id=jdo:persistent,annotation:mediated
+org.apache.jdo.pc.PCCollection#set=jdo:persistent,annotation:mediated
+org.apache.jdo.pc.PCCollection#map=jdo:persistent,annotation:mediated

Added: incubator/jdo/trunk/fostore20/test/jdo/org/apache/jdo/pc/serializable/package.jdo
URL: http://svn.apache.org/viewcvs/incubator/jdo/trunk/fostore20/test/jdo/org/apache/jdo/pc/serializable/package.jdo?rev=171355&view=auto
==============================================================================
--- incubator/jdo/trunk/fostore20/test/jdo/org/apache/jdo/pc/serializable/package.jdo (added)
+++ incubator/jdo/trunk/fostore20/test/jdo/org/apache/jdo/pc/serializable/package.jdo Sun May 22 11:40:13 2005
@@ -0,0 +1,60 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE jdo PUBLIC "-//Sun Microsystems, Inc.//DTD Java Data Objects Metadata 1.0//EN" "http://java.sun.com/dtd/jdo_1_0.dtd">
+<jdo>
+  <package name="org.apache.jdo.pc.serializable">
+
+    <class name="PCClass1"
+           identity-type="datastore">
+      <field name="s01" persistence-modifier="persistent"
+	                default-fetch-group="false" />
+      <field name="t02" persistence-modifier="persistent"/> 
+    </class>
+
+    <class name="PCClass2A"
+           identity-type="datastore">
+      <field name="s01" persistence-modifier="persistent"
+	                default-fetch-group="false" />
+      <field name="t02" persistence-modifier="persistent"/> 
+    </class>
+
+    <class name="PCClass2B"
+           identity-type="datastore">
+      <field name="s01" persistence-modifier="persistent"
+	                default-fetch-group="false" />
+      <field name="t02" persistence-modifier="persistent"/> 
+    </class>
+
+    <class name="PCSuper"
+           identity-type="datastore">
+      <field name="s01" persistence-modifier="persistent"
+	                default-fetch-group="false" />
+      <field name="t02" persistence-modifier="persistent"/> 
+    </class>
+
+    <class name="PCSub3"
+	   identity-type="datastore"
+	   persistence-capable-superclass="PCSuper">
+      <field name="s03" persistence-modifier="persistent"
+	                default-fetch-group="false" />
+      <field name="t04" persistence-modifier="persistent"/> 
+    </class>
+
+    <class name="PCSub4A"
+	   identity-type="datastore"
+	   persistence-capable-superclass="PCSuper">
+      <field name="s03" persistence-modifier="persistent"
+	                default-fetch-group="false" />
+      <field name="t04" persistence-modifier="persistent"/> 
+    </class>
+
+    <class name="PCSub4B"
+	   identity-type="datastore"
+	   persistence-capable-superclass="PCSuper">
+      <field name="s03" persistence-modifier="persistent"
+	                default-fetch-group="false" />
+      <field name="t04" persistence-modifier="persistent"/> 
+    </class>
+
+  </package>
+</jdo>
+

Added: incubator/jdo/trunk/fostore20/test/jdo/org/apache/jdo/pc/serializable/serializable.jdoproperties
URL: http://svn.apache.org/viewcvs/incubator/jdo/trunk/fostore20/test/jdo/org/apache/jdo/pc/serializable/serializable.jdoproperties?rev=171355&view=auto
==============================================================================
--- incubator/jdo/trunk/fostore20/test/jdo/org/apache/jdo/pc/serializable/serializable.jdoproperties (added)
+++ incubator/jdo/trunk/fostore20/test/jdo/org/apache/jdo/pc/serializable/serializable.jdoproperties Sun May 22 11:40:13 2005
@@ -0,0 +1,40 @@
+# Classnames can have the following attributes: 
+#          jdo:{persistent|transient} 
+#          super: <classname> 
+#          oid: <classname> 
+#          access: {public|protected|package|private} 
+# Fieldnames can have the following attributes: 
+#          type:<type> 
+#          access: {public|protected|package|private} 
+#          jdo:{persistent|transactional|transient} 
+#          annotation:{key|dfg|mediated} 
+
+org.apache.jdo.pc.serializable.PCClass1=jdo:persistent
+org.apache.jdo.pc.serializable.PCClass1#s01=jdo:persistent,annotation:mediated
+org.apache.jdo.pc.serializable.PCClass1#t02=jdo:persistent,annotation:dfg
+
+org.apache.jdo.pc.serializable.PCClass2A=jdo:persistent
+org.apache.jdo.pc.serializable.PCClass2A#s01=jdo:persistent,annotation:mediated
+org.apache.jdo.pc.serializable.PCClass2A#t02=jdo:persistent,annotation:dfg
+
+org.apache.jdo.pc.serializable.PCClass2B=jdo:persistent
+org.apache.jdo.pc.serializable.PCClass2B#s01=jdo:persistent,annotation:mediated
+org.apache.jdo.pc.serializable.PCClass2B#t02=jdo:persistent,annotation:dfg
+
+org.apache.jdo.pc.serializable.PCSuper=jdo:persistent
+org.apache.jdo.pc.serializable.PCSuper#s01=jdo:persistent,annotation:mediated
+org.apache.jdo.pc.serializable.PCSuper#t02=jdo:persistent,annotation:dfg
+
+org.apache.jdo.pc.serializable.Transient=jdo:transient,super:org.apache.jdo.pc.serializable.PCSuper
+
+org.apache.jdo.pc.serializable.PCSub3=jdo:persistent,super:org.apache.jdo.pc.serializable.Transient
+org.apache.jdo.pc.serializable.PCSub3#s03=jdo:persistent,annotation:mediated
+org.apache.jdo.pc.serializable.PCSub3#t04=jdo:persistent,annotation:dfg
+
+org.apache.jdo.pc.serializable.PCSub4A=jdo:persistent,super:org.apache.jdo.pc.serializable.Transient
+org.apache.jdo.pc.serializable.PCSub4A#s03=jdo:persistent,annotation:mediated
+org.apache.jdo.pc.serializable.PCSub4A#t04=jdo:persistent,annotation:dfg
+
+org.apache.jdo.pc.serializable.PCSub4B=jdo:persistent,super:org.apache.jdo.pc.serializable.Transient
+org.apache.jdo.pc.serializable.PCSub4B#s03=jdo:persistent,annotation:mediated
+org.apache.jdo.pc.serializable.PCSub4B#t04=jdo:persistent,annotation:dfg

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

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

Added: incubator/jdo/trunk/fostore20/test/jdo/org/apache/jdo/pc/xempdept/Employee.jdo
URL: http://svn.apache.org/viewcvs/incubator/jdo/trunk/fostore20/test/jdo/org/apache/jdo/pc/xempdept/Employee.jdo?rev=171355&view=auto
==============================================================================
--- incubator/jdo/trunk/fostore20/test/jdo/org/apache/jdo/pc/xempdept/Employee.jdo (added)
+++ incubator/jdo/trunk/fostore20/test/jdo/org/apache/jdo/pc/xempdept/Employee.jdo Sun May 22 11:40:13 2005
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE jdo PUBLIC "-//Sun Microsystems, Inc.//DTD Java Data Objects Metadata 1.0//EN" "http://java.sun.com/dtd/jdo_1_0.dtd">
+<jdo>
+  <package name="org.apache.jdo.pc.xempdept">
+    <class name="Employee" 
+           identity-type="datastore"
+	   persistence-capable-superclass="Person">
+      <field name="empid"/>
+      <field name="hiredate"/>
+      <field name="weeklyhours"/>
+      <field name="discriminator"/>
+      <field name="reviewedProjects">
+        <collection element-type="Project"/>
+      </field>
+      <field name="projects">
+        <collection element-type="Project"/>
+      </field>
+      <field name="insurance" persistence-modifier="persistent"/>
+      <field name="department" persistence-modifier="persistent"/>
+      <field name="manager" persistence-modifier="persistent"/>
+      <field name="team">
+        <collection element-type="Employee"/>
+      </field>
+      <field name="mentor" persistence-modifier="persistent"/>
+      <field name="protege" persistence-modifier="persistent"/>
+      <field name="hradvisor" persistence-modifier="persistent"/>
+      <field name="hradvisees" persistence-modifier="persistent"/>
+    </class>
+  </package>
+</jdo>

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