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>