You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cayenne.apache.org by aa...@apache.org on 2006/07/26 05:19:38 UTC

svn commit: r425592 - in /incubator/cayenne/main/trunk/cayenne-jpa/src: main/java/org/apache/cayenne/jpa/conf/ main/java/org/apache/cayenne/jpa/map/ main/resources/META-INF/cayenne/ main/resources/META-INF/schemas/ test/java/org/apache/cayenne/jpa/conf...

Author: aadamchik
Date: Tue Jul 25 20:19:37 2006
New Revision: 425592

URL: http://svn.apache.org/viewvc?rev=425592&view=rev
Log:
updating JPA code to match the latest spec. [still unfinished]

Added:
    incubator/cayenne/main/trunk/cayenne-jpa/src/main/java/org/apache/cayenne/jpa/map/JpaAssociationOverride.java
    incubator/cayenne/main/trunk/cayenne-jpa/src/main/java/org/apache/cayenne/jpa/map/JpaIdClass.java
    incubator/cayenne/main/trunk/cayenne-jpa/src/main/java/org/apache/cayenne/jpa/map/JpaPersistenceUnitDefaults.java
    incubator/cayenne/main/trunk/cayenne-jpa/src/main/java/org/apache/cayenne/jpa/map/JpaPersistenceUnitMetadata.java
Modified:
    incubator/cayenne/main/trunk/cayenne-jpa/src/main/java/org/apache/cayenne/jpa/conf/ClassAnnotationProcessorFactory.java
    incubator/cayenne/main/trunk/cayenne-jpa/src/main/java/org/apache/cayenne/jpa/conf/MemberAnnotationProcessorFactory.java
    incubator/cayenne/main/trunk/cayenne-jpa/src/main/java/org/apache/cayenne/jpa/map/JpaAbstractEntity.java
    incubator/cayenne/main/trunk/cayenne-jpa/src/main/java/org/apache/cayenne/jpa/map/JpaEntity.java
    incubator/cayenne/main/trunk/cayenne-jpa/src/main/java/org/apache/cayenne/jpa/map/JpaEntityMap.java
    incubator/cayenne/main/trunk/cayenne-jpa/src/main/java/org/apache/cayenne/jpa/map/JpaManagedClass.java
    incubator/cayenne/main/trunk/cayenne-jpa/src/main/resources/META-INF/cayenne/orm-coder.xml
    incubator/cayenne/main/trunk/cayenne-jpa/src/main/resources/META-INF/schemas/orm_1_0.xsd
    incubator/cayenne/main/trunk/cayenne-jpa/src/test/java/org/apache/cayenne/jpa/conf/MappingAssertion.java
    incubator/cayenne/main/trunk/cayenne-jpa/src/test/java/org/apache/cayenne/jpa/conf/XMLMappingAssertion.java
    incubator/cayenne/main/trunk/cayenne-jpa/src/test/java/org/apache/cayenne/jpa/entity/MockEntityMap1.java
    incubator/cayenne/main/trunk/cayenne-jpa/src/test/resources/xml-samples/orm-schema-headers-full.xml
    incubator/cayenne/main/trunk/cayenne-jpa/src/test/resources/xml-samples/orm-schema-headers-invalid1.xml
    incubator/cayenne/main/trunk/cayenne-jpa/src/test/resources/xml-samples/orm-schema-headers.xml

Modified: incubator/cayenne/main/trunk/cayenne-jpa/src/main/java/org/apache/cayenne/jpa/conf/ClassAnnotationProcessorFactory.java
URL: http://svn.apache.org/viewvc/incubator/cayenne/main/trunk/cayenne-jpa/src/main/java/org/apache/cayenne/jpa/conf/ClassAnnotationProcessorFactory.java?rev=425592&r1=425591&r2=425592&view=diff
==============================================================================
--- incubator/cayenne/main/trunk/cayenne-jpa/src/main/java/org/apache/cayenne/jpa/conf/ClassAnnotationProcessorFactory.java (original)
+++ incubator/cayenne/main/trunk/cayenne-jpa/src/main/java/org/apache/cayenne/jpa/conf/ClassAnnotationProcessorFactory.java Tue Jul 25 20:19:37 2006
@@ -50,6 +50,7 @@
 import org.apache.cayenne.jpa.map.JpaEntityListener;
 import org.apache.cayenne.jpa.map.JpaEntityListeners;
 import org.apache.cayenne.jpa.map.JpaEntityMap;
+import org.apache.cayenne.jpa.map.JpaIdClass;
 import org.apache.cayenne.jpa.map.JpaInheritance;
 import org.apache.cayenne.jpa.map.JpaMappedSuperclass;
 import org.apache.cayenne.jpa.map.JpaNamedNativeQuery;
@@ -271,35 +272,6 @@
         private EntityListenerAnnotationLoader listenerLoader;
 
         @Override
-        void onEntityMap(
-                JpaEntityMap entityMap,
-                AnnotatedElement element,
-                AnnotationProcessorStack context) {
-
-            EntityListeners annotation = element.getAnnotation(EntityListeners.class);
-
-            if (annotation.value().length > 0) {
-                if (listenerLoader == null) {
-                    listenerLoader = new EntityListenerAnnotationLoader();
-                }
-
-                JpaEntityListeners listenerHolder = entityMap.getDefaultEntityListeners();
-                if (listenerHolder == null) {
-                    listenerHolder = new JpaEntityListeners();
-                    entityMap.setDefaultEntityListeners(listenerHolder);
-                }
-
-                for (int i = 0; i < annotation.value().length; i++) {
-                    JpaEntityListener listener = listenerLoader
-                            .getEntityListener(annotation.value()[i]);
-                    if (listener != null) {
-                        listenerHolder.getEntityListeners().add(listener);
-                    }
-                }
-            }
-        }
-
-        @Override
         void onEntity(
                 JpaEntity entity,
                 AnnotatedElement element,
@@ -404,7 +376,9 @@
                 AnnotationProcessorStack context) {
 
             IdClass annotation = element.getAnnotation(IdClass.class);
-            entity.setIdClassName(annotation.value().getName());
+            JpaIdClass idClass = new JpaIdClass();
+            idClass.setClassName(annotation.value().getName());
+            entity.setIdClass(idClass);
         }
 
         @Override
@@ -413,7 +387,9 @@
                 AnnotatedElement element,
                 AnnotationProcessorStack context) {
             IdClass annotation = element.getAnnotation(IdClass.class);
-            superclass.setIdClassName(annotation.value().getName());
+            JpaIdClass idClass = new JpaIdClass();
+            idClass.setClassName(annotation.value().getName());
+            superclass.setIdClass(idClass);
         }
     }
 

Modified: incubator/cayenne/main/trunk/cayenne-jpa/src/main/java/org/apache/cayenne/jpa/conf/MemberAnnotationProcessorFactory.java
URL: http://svn.apache.org/viewvc/incubator/cayenne/main/trunk/cayenne-jpa/src/main/java/org/apache/cayenne/jpa/conf/MemberAnnotationProcessorFactory.java?rev=425592&r1=425591&r2=425592&view=diff
==============================================================================
--- incubator/cayenne/main/trunk/cayenne-jpa/src/main/java/org/apache/cayenne/jpa/conf/MemberAnnotationProcessorFactory.java (original)
+++ incubator/cayenne/main/trunk/cayenne-jpa/src/main/java/org/apache/cayenne/jpa/conf/MemberAnnotationProcessorFactory.java Tue Jul 25 20:19:37 2006
@@ -48,6 +48,7 @@
 import org.apache.cayenne.jpa.map.JpaEmbeddable;
 import org.apache.cayenne.jpa.map.JpaEmbeddableAttribute;
 import org.apache.cayenne.jpa.map.JpaEmbeddedId;
+import org.apache.cayenne.jpa.map.JpaEntity;
 import org.apache.cayenne.jpa.map.JpaGeneratedValue;
 import org.apache.cayenne.jpa.map.JpaId;
 import org.apache.cayenne.jpa.map.JpaJoinColumn;
@@ -93,8 +94,8 @@
             JpaEmbeddedId id = new JpaEmbeddedId();
 
             Object parent = context.peek();
-            if (parent instanceof JpaAbstractEntity) {
-                ((JpaAbstractEntity) parent).setEmbeddedId(id);
+            if (parent instanceof JpaEntity) {
+                ((JpaEntity) parent).setEmbeddedId(id);
             }
             else {
                 context.recordConflict(element, AnnotationProcessorFactory
@@ -121,8 +122,8 @@
             JpaId id = new JpaId();
 
             Object parent = context.peek();
-            if (parent instanceof JpaAbstractEntity) {
-                ((JpaAbstractEntity) parent).getIds().add(id);
+            if (parent instanceof JpaEntity) {
+                ((JpaEntity) parent).getIds().add(id);
             }
             else {
                 context.recordConflict(element, AnnotationProcessorFactory

Modified: incubator/cayenne/main/trunk/cayenne-jpa/src/main/java/org/apache/cayenne/jpa/map/JpaAbstractEntity.java
URL: http://svn.apache.org/viewvc/incubator/cayenne/main/trunk/cayenne-jpa/src/main/java/org/apache/cayenne/jpa/map/JpaAbstractEntity.java?rev=425592&r1=425591&r2=425592&view=diff
==============================================================================
--- incubator/cayenne/main/trunk/cayenne-jpa/src/main/java/org/apache/cayenne/jpa/map/JpaAbstractEntity.java (original)
+++ incubator/cayenne/main/trunk/cayenne-jpa/src/main/java/org/apache/cayenne/jpa/map/JpaAbstractEntity.java Tue Jul 25 20:19:37 2006
@@ -17,7 +17,6 @@
  *  under the License.
  ****************************************************************/
 
-
 package org.apache.cayenne.jpa.map;
 
 import java.util.ArrayList;
@@ -27,7 +26,7 @@
 
 public abstract class JpaAbstractEntity extends JpaManagedClass {
 
-    protected String idClassName;
+    protected JpaIdClass idClass;
     protected boolean excludeDefaultListeners;
     protected boolean excludeSuperclassListeners;
     protected JpaEntityListeners entityListeners;
@@ -38,25 +37,8 @@
     protected JpaLifecycleCallback preUpdate;
     protected JpaLifecycleCallback postUpdate;
     protected JpaLifecycleCallback postLoad;
-    protected JpaEmbeddedId embeddedId;
-    protected Collection<JpaId> ids;
-    protected Collection<JpaAttribute> attributes;
-
-    public JpaId idForName(String idName) {
-        if (idName == null) {
-            throw new IllegalArgumentException("Null id name");
-        }
-
-        if (ids != null) {
-            for (JpaId id : ids) {
-                if (idName.equals(id.getName())) {
-                    return id;
-                }
-            }
-        }
 
-        return null;
-    }
+    protected Collection<JpaAttribute> attributes;
 
     /**
      * Returns a JpaAttribute for a given property name
@@ -78,15 +60,6 @@
     }
 
     @TreeNodeChild
-    public JpaEmbeddedId getEmbeddedId() {
-        return embeddedId;
-    }
-
-    public void setEmbeddedId(JpaEmbeddedId embeddedId) {
-        this.embeddedId = embeddedId;
-    }
-
-    @TreeNodeChild
     public JpaEntityListeners getEntityListeners() {
         return entityListeners;
     }
@@ -111,12 +84,12 @@
         this.excludeSuperclassListeners = excludeSuperclassListeners;
     }
 
-    public String getIdClassName() {
-        return idClassName;
+    public JpaIdClass getIdClass() {
+        return idClass;
     }
 
-    public void setIdClassName(String idClassName) {
-        this.idClassName = idClassName;
+    public void setIdClass(JpaIdClass idClass) {
+        this.idClass = idClass;
     }
 
     public JpaLifecycleCallback getPostLoad() {
@@ -173,15 +146,6 @@
 
     public void setPreUpdate(JpaLifecycleCallback preUpdate) {
         this.preUpdate = preUpdate;
-    }
-
-    @TreeNodeChild(type = JpaId.class)
-    public Collection<JpaId> getIds() {
-        if (ids == null) {
-            ids = new ArrayList<JpaId>();
-        }
-
-        return ids;
     }
 
     @TreeNodeChild(type = JpaAttribute.class)

Added: incubator/cayenne/main/trunk/cayenne-jpa/src/main/java/org/apache/cayenne/jpa/map/JpaAssociationOverride.java
URL: http://svn.apache.org/viewvc/incubator/cayenne/main/trunk/cayenne-jpa/src/main/java/org/apache/cayenne/jpa/map/JpaAssociationOverride.java?rev=425592&view=auto
==============================================================================
--- incubator/cayenne/main/trunk/cayenne-jpa/src/main/java/org/apache/cayenne/jpa/map/JpaAssociationOverride.java (added)
+++ incubator/cayenne/main/trunk/cayenne-jpa/src/main/java/org/apache/cayenne/jpa/map/JpaAssociationOverride.java Tue Jul 25 20:19:37 2006
@@ -0,0 +1,43 @@
+/*****************************************************************
+ *   Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you 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.cayenne.jpa.map;
+
+import java.util.ArrayList;
+import java.util.Collection;
+
+public class JpaAssociationOverride {
+
+    protected String name;
+    protected Collection<JpaJoinColumn> joinColumns;
+
+    public Collection<JpaJoinColumn> getJoinColumns() {
+        if (joinColumns == null) {
+            joinColumns = new ArrayList<JpaJoinColumn>();
+        }
+        return joinColumns;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+}

Modified: incubator/cayenne/main/trunk/cayenne-jpa/src/main/java/org/apache/cayenne/jpa/map/JpaEntity.java
URL: http://svn.apache.org/viewvc/incubator/cayenne/main/trunk/cayenne-jpa/src/main/java/org/apache/cayenne/jpa/map/JpaEntity.java?rev=425592&r1=425591&r2=425592&view=diff
==============================================================================
--- incubator/cayenne/main/trunk/cayenne-jpa/src/main/java/org/apache/cayenne/jpa/map/JpaEntity.java (original)
+++ incubator/cayenne/main/trunk/cayenne-jpa/src/main/java/org/apache/cayenne/jpa/map/JpaEntity.java Tue Jul 25 20:19:37 2006
@@ -17,7 +17,6 @@
  *  under the License.
  ****************************************************************/
 
-
 package org.apache.cayenne.jpa.map;
 
 import java.util.ArrayList;
@@ -40,12 +39,54 @@
     protected JpaSequenceGenerator sequenceGenerator;
     protected JpaTableGenerator tableGenerator;
     protected JpaSqlResultSetMapping sqlResultSetMapping;
+    protected JpaEmbeddedId embeddedId;
+    protected Collection<JpaId> ids;
     protected Collection<JpaAttributeOverride> attributeOverrides;
+    protected Collection<JpaAssociationOverride> associationOverrides;
+
+    // TODO: andrus, 7/25/2006 - according to the notes in the JPA spec FR, these
+    // annotations can be specified on a mapped superclass as well as entity. Check the
+    // spec test to verify that and move these to superclass.
     protected Collection<JpaNamedQuery> namedQueries;
     protected Collection<JpaNamedNativeQuery> namedNativeQueries;
+
     protected Collection<JpaSecondaryTable> secondaryTables;
     protected Collection<JpaPrimaryKeyJoinColumn> primaryKeyJoinColumns;
 
+    public JpaId idForName(String idName) {
+        if (idName == null) {
+            throw new IllegalArgumentException("Null id name");
+        }
+
+        if (ids != null) {
+            for (JpaId id : ids) {
+                if (idName.equals(id.getName())) {
+                    return id;
+                }
+            }
+        }
+
+        return null;
+    }
+    
+    @TreeNodeChild
+    public JpaEmbeddedId getEmbeddedId() {
+        return embeddedId;
+    }
+
+    public void setEmbeddedId(JpaEmbeddedId embeddedId) {
+        this.embeddedId = embeddedId;
+    }
+
+    @TreeNodeChild(type = JpaId.class)
+    public Collection<JpaId> getIds() {
+        if (ids == null) {
+            ids = new ArrayList<JpaId>();
+        }
+
+        return ids;
+    }
+    
     public String getName() {
         return name;
     }
@@ -141,6 +182,15 @@
         }
 
         return attributeOverrides;
+    }
+
+    @TreeNodeChild(type = JpaAssociationOverride.class)
+    public Collection<JpaAssociationOverride> getAssociationOverrides() {
+        if (associationOverrides == null) {
+            associationOverrides = new ArrayList<JpaAssociationOverride>();
+        }
+
+        return associationOverrides;
     }
 
     @TreeNodeChild(type = JpaNamedNativeQuery.class)

Modified: incubator/cayenne/main/trunk/cayenne-jpa/src/main/java/org/apache/cayenne/jpa/map/JpaEntityMap.java
URL: http://svn.apache.org/viewvc/incubator/cayenne/main/trunk/cayenne-jpa/src/main/java/org/apache/cayenne/jpa/map/JpaEntityMap.java?rev=425592&r1=425591&r2=425592&view=diff
==============================================================================
--- incubator/cayenne/main/trunk/cayenne-jpa/src/main/java/org/apache/cayenne/jpa/map/JpaEntityMap.java (original)
+++ incubator/cayenne/main/trunk/cayenne-jpa/src/main/java/org/apache/cayenne/jpa/map/JpaEntityMap.java Tue Jul 25 20:19:37 2006
@@ -17,7 +17,6 @@
  *  under the License.
  ****************************************************************/
 
-
 package org.apache.cayenne.jpa.map;
 
 import java.util.ArrayList;
@@ -25,9 +24,6 @@
 import java.util.HashMap;
 import java.util.Map;
 
-import javax.persistence.CascadeType;
-import javax.persistence.FlushModeType;
-
 import org.apache.cayenne.util.TreeNodeChild;
 
 /**
@@ -39,11 +35,12 @@
 public class JpaEntityMap {
 
     // mapped properties
+    protected String version;
+    protected String description;
     protected String packageName;
     protected String catalog;
     protected String schema;
     protected AccessType access;
-    protected FlushModeType flushMode;
 
     protected Collection<JpaEntity> entities;
     protected Collection<JpaEmbeddable> embeddables;
@@ -53,8 +50,6 @@
     protected Collection<JpaSqlResultSetMapping> sqlResultSetMappings;
     protected Collection<JpaSequenceGenerator> sequenceGenerators;
     protected Collection<JpaTableGenerator> tableGenerators;
-    protected JpaEntityListeners defaultEntityListeners;
-    protected Collection<CascadeType> cascades;
 
     /**
      * Compiles and returns a map of managed class descriptors that includes descriptors
@@ -118,15 +113,6 @@
         return null;
     }
 
-    @TreeNodeChild
-    public JpaEntityListeners getDefaultEntityListeners() {
-        return defaultEntityListeners;
-    }
-
-    public void setDefaultEntityListeners(JpaEntityListeners defaultEntityListeners) {
-        this.defaultEntityListeners = defaultEntityListeners;
-    }
-
     public AccessType getAccess() {
         return access;
     }
@@ -143,14 +129,6 @@
         this.catalog = catalog;
     }
 
-    public FlushModeType getFlushMode() {
-        return flushMode;
-    }
-
-    public void setFlushMode(FlushModeType flushMode) {
-        this.flushMode = flushMode;
-    }
-
     public String getPackageName() {
         return packageName;
     }
@@ -167,16 +145,6 @@
         this.schema = schema;
     }
 
-    public Collection<CascadeType> getCascades() {
-        if (cascades == null) {
-            // TODO: andrus, 4/20/2006 - replace with
-            // ArrayList<CascadeType>() once CAY-520 gets implemented in Cayenne > 1.2
-            cascades = new EnumList(CascadeType.class, CascadeType.values().length);
-        }
-
-        return cascades;
-    }
-
     @TreeNodeChild(type = JpaEmbeddable.class)
     public Collection<JpaEmbeddable> getEmbeddables() {
         if (embeddables == null) {
@@ -247,5 +215,21 @@
         }
 
         return tableGenerators;
+    }
+
+    public String getDescription() {
+        return description;
+    }
+
+    public void setDescription(String description) {
+        this.description = description;
+    }
+
+    public String getVersion() {
+        return version;
+    }
+
+    public void setVersion(String version) {
+        this.version = version;
     }
 }

Added: incubator/cayenne/main/trunk/cayenne-jpa/src/main/java/org/apache/cayenne/jpa/map/JpaIdClass.java
URL: http://svn.apache.org/viewvc/incubator/cayenne/main/trunk/cayenne-jpa/src/main/java/org/apache/cayenne/jpa/map/JpaIdClass.java?rev=425592&view=auto
==============================================================================
--- incubator/cayenne/main/trunk/cayenne-jpa/src/main/java/org/apache/cayenne/jpa/map/JpaIdClass.java (added)
+++ incubator/cayenne/main/trunk/cayenne-jpa/src/main/java/org/apache/cayenne/jpa/map/JpaIdClass.java Tue Jul 25 20:19:37 2006
@@ -0,0 +1,32 @@
+/*****************************************************************
+ *   Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you 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.cayenne.jpa.map;
+
+public class JpaIdClass {
+
+    protected String className;
+
+    public String getClassName() {
+        return className;
+    }
+
+    public void setClassName(String className) {
+        this.className = className;
+    }
+}

Modified: incubator/cayenne/main/trunk/cayenne-jpa/src/main/java/org/apache/cayenne/jpa/map/JpaManagedClass.java
URL: http://svn.apache.org/viewvc/incubator/cayenne/main/trunk/cayenne-jpa/src/main/java/org/apache/cayenne/jpa/map/JpaManagedClass.java?rev=425592&r1=425591&r2=425592&view=diff
==============================================================================
--- incubator/cayenne/main/trunk/cayenne-jpa/src/main/java/org/apache/cayenne/jpa/map/JpaManagedClass.java (original)
+++ incubator/cayenne/main/trunk/cayenne-jpa/src/main/java/org/apache/cayenne/jpa/map/JpaManagedClass.java Tue Jul 25 20:19:37 2006
@@ -17,7 +17,6 @@
  *  under the License.
  ****************************************************************/
 
-
 package org.apache.cayenne.jpa.map;
 
 public abstract class JpaManagedClass {
@@ -26,6 +25,8 @@
 
     protected String className;
     protected AccessType access;
+    protected boolean metadataComplete;
+    protected String description;
 
     public JpaClassDescriptor getClassDescriptor() {
         return classDescriptor;
@@ -49,5 +50,21 @@
 
     public void setClassName(String className) {
         this.className = className;
+    }
+
+    public boolean isMetadataComplete() {
+        return metadataComplete;
+    }
+
+    public void setMetadataComplete(boolean metadataComplete) {
+        this.metadataComplete = metadataComplete;
+    }
+
+    public String getDescription() {
+        return description;
+    }
+
+    public void setDescription(String description) {
+        this.description = description;
     }
 }

Added: incubator/cayenne/main/trunk/cayenne-jpa/src/main/java/org/apache/cayenne/jpa/map/JpaPersistenceUnitDefaults.java
URL: http://svn.apache.org/viewvc/incubator/cayenne/main/trunk/cayenne-jpa/src/main/java/org/apache/cayenne/jpa/map/JpaPersistenceUnitDefaults.java?rev=425592&view=auto
==============================================================================
--- incubator/cayenne/main/trunk/cayenne-jpa/src/main/java/org/apache/cayenne/jpa/map/JpaPersistenceUnitDefaults.java (added)
+++ incubator/cayenne/main/trunk/cayenne-jpa/src/main/java/org/apache/cayenne/jpa/map/JpaPersistenceUnitDefaults.java Tue Jul 25 20:19:37 2006
@@ -0,0 +1,74 @@
+/*****************************************************************
+ *   Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you 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.cayenne.jpa.map;
+
+import org.apache.cayenne.util.TreeNodeChild;
+
+/**
+ * @author Andrus Adamchik
+ */
+public class JpaPersistenceUnitDefaults {
+
+    protected String schema;
+    protected String catalog;
+    protected AccessType access;
+    protected boolean cascadePersist;
+    protected JpaEntityListeners entityListeners;
+
+    @TreeNodeChild
+    public JpaEntityListeners getEntityListeners() {
+        return entityListeners;
+    }
+
+    public void setEntityListeners(JpaEntityListeners entityListeners) {
+        this.entityListeners = entityListeners;
+    }
+
+    public AccessType getAccess() {
+        return access;
+    }
+
+    public void setAccess(AccessType access) {
+        this.access = access;
+    }
+
+    public boolean isCascadePersist() {
+        return cascadePersist;
+    }
+
+    public void setCascadePersist(boolean cascadePersist) {
+        this.cascadePersist = cascadePersist;
+    }
+
+    public String getCatalog() {
+        return catalog;
+    }
+
+    public void setCatalog(String catalog) {
+        this.catalog = catalog;
+    }
+
+    public String getSchema() {
+        return schema;
+    }
+
+    public void setSchema(String schema) {
+        this.schema = schema;
+    }
+}

Added: incubator/cayenne/main/trunk/cayenne-jpa/src/main/java/org/apache/cayenne/jpa/map/JpaPersistenceUnitMetadata.java
URL: http://svn.apache.org/viewvc/incubator/cayenne/main/trunk/cayenne-jpa/src/main/java/org/apache/cayenne/jpa/map/JpaPersistenceUnitMetadata.java?rev=425592&view=auto
==============================================================================
--- incubator/cayenne/main/trunk/cayenne-jpa/src/main/java/org/apache/cayenne/jpa/map/JpaPersistenceUnitMetadata.java (added)
+++ incubator/cayenne/main/trunk/cayenne-jpa/src/main/java/org/apache/cayenne/jpa/map/JpaPersistenceUnitMetadata.java Tue Jul 25 20:19:37 2006
@@ -0,0 +1,45 @@
+/*****************************************************************
+ *   Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you 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.cayenne.jpa.map;
+
+/**
+ * @author Andrus Adamchik
+ */
+public class JpaPersistenceUnitMetadata {
+
+    protected boolean xmlMappingMetadataComplete;
+    protected JpaPersistenceUnitDefaults persistenceUnitDefaults;
+
+    public boolean isXmlMappingMetadataComplete() {
+        return xmlMappingMetadataComplete;
+    }
+
+    public void setXmlMappingMetadataComplete(boolean xmlMappingMetadataComplete) {
+        this.xmlMappingMetadataComplete = xmlMappingMetadataComplete;
+    }
+
+    public JpaPersistenceUnitDefaults getPersistenceUnitDefaults() {
+        return persistenceUnitDefaults;
+    }
+
+    public void setPersistenceUnitDefaults(
+            JpaPersistenceUnitDefaults persistenceUnitDefaults) {
+        this.persistenceUnitDefaults = persistenceUnitDefaults;
+    }
+}

Modified: incubator/cayenne/main/trunk/cayenne-jpa/src/main/resources/META-INF/cayenne/orm-coder.xml
URL: http://svn.apache.org/viewvc/incubator/cayenne/main/trunk/cayenne-jpa/src/main/resources/META-INF/cayenne/orm-coder.xml?rev=425592&r1=425591&r2=425592&view=diff
==============================================================================
--- incubator/cayenne/main/trunk/cayenne-jpa/src/main/resources/META-INF/cayenne/orm-coder.xml (original)
+++ incubator/cayenne/main/trunk/cayenne-jpa/src/main/resources/META-INF/cayenne/orm-coder.xml Tue Jul 25 20:19:37 2006
@@ -23,23 +23,23 @@
 	
 	<!-- ROOT Element - must be listed first in the mapping per mapping descriptor spec. -->
 	<entity name="org.apache.cayenne.jpa.map.JpaEntityMap" xmlTag="entity-mappings">
-		
-		<property name="entities" xmlTag="entity"/>
-		<property name="embeddables" xmlTag="embeddable"/>
-		<property name="mappedSuperclasses" xmlTag="mapped-superclass"/>
+	
+		<property name="description" xmlTag="description"/>
+		<property name="persistenceUnitMetadata" xmlTag="persistence-unit-metadata"/>
+		<property name="packageName" xmlTag="package"/>
+		<property name="schema" xmlTag="schema"/>
+		<property name="catalog" xmlTag="catalog"/>
+		<property name="access" xmlTag="access"/>
+		<property name="sequenceGenerators" xmlTag="sequence-generator"/>
+		<property name="tableGenerators" xmlTag="table-generator"/>
 		<property name="namedQueries" xmlTag="named-query"/>
 		<property name="namedNativeQueries" xmlTag="named-native-query"/>
 		<property name="sqlResultSetMappings" xmlTag="sql-result-set-mapping"/>
-		<property name="sequenceGenerators" xmlTag="sequence-generator"/>
-		<property name="tableGenerators" xmlTag="table-generator"/>
-		<property name="defaultEntityListeners" xmlTag="default-entity-listeners"/>
-		<property name="cascades" xmlTag="cascade"/>
+		<property name="mappedSuperclasses" xmlTag="mapped-superclass"/>
+		<property name="entities" xmlTag="entity"/>
+		<property name="embeddables" xmlTag="embeddable"/>
 		
-		<property name="packageName" xmlTag="package" attribute="YES"/>
-		<property name="catalog" xmlTag="catalog" attribute="YES"/>
-		<property name="schema" xmlTag="schema" attribute="YES"/>
-		<property name="access" xmlTag="access" attribute="YES"/>
-		<property name="flushMode" xmlTag="flush-mode" attribute="YES"/>
+		<property name="version" xmlTag="version" attribute="YES"/>
 	</entity>
 	
 	<entity name="org.apache.cayenne.jpa.map.JpaAttribute" xmlTag="attribute">
@@ -70,6 +70,11 @@
 		<property name="name" xmlTag="name" attribute="YES"/>
 	</entity>
 	
+	<entity name="org.apache.cayenne.jpa.map.JpaAssociationOverride" xmlTag="association-override">
+		<property name="name" xmlTag="name" attribute="YES"/>
+		<property name="joinColumns" xmlTag="join-column"/>
+	</entity>
+	
 	<entity name="org.apache.cayenne.jpa.map.JpaBasic" xmlTag="basic">
 		<property name="fetch" xmlTag="fetch" attribute="YES"/>
 		<property name="optional" xmlTag="optional" attribute="YES"/>
@@ -106,8 +111,10 @@
 	</entity>
 	
 	<entity name="org.apache.cayenne.jpa.map.JpaEmbeddable" xmlTag="embeddable">
+		<property name="description" xmlTag="description"/>
 		<property name="className" xmlTag="class" attribute="YES"/>
 		<property name="access" xmlTag="access" attribute="YES"/>
+		<property name="metadataComplete" xmlTag="metadata-complete" attribute="YES"/>
 		
 		<property name="embeddableAttributes" xmlTag="embeddable-attribute"/>
 	</entity>
@@ -123,16 +130,16 @@
 	</entity>
 	
 	<entity name="org.apache.cayenne.jpa.map.JpaEntity" xmlTag="entity">
+		<property name="description" xmlTag="description"/>
 		<property name="table" xmlTag="table"/>
 		<property name="secondaryTables" xmlTag="secondary-table"/>
 		<property name="primaryKeyJoinColumns" xmlTag="primary-key-join-column"/>
-		<property name="idClassName" xmlTag="id-class"/>
+		<property name="idClass" xmlTag="id-class"/>
 		<property name="inheritance" xmlTag="inheritance"/>
 		<property name="discriminatorValue" xmlTag="discriminator-value"/>
 		<property name="discriminatorColumn" xmlTag="discriminator-column"/>
 		<property name="sequenceGenerator" xmlTag="sequence-generator"/>
 		<property name="tableGenerator" xmlTag="table-generator"/>
-		<property name="attributeOverrides" xmlTag="attribute-override"/>
 		<property name="namedQueries" xmlTag="named-query"/>
 		<property name="namedNativeQueries" xmlTag="named-native-query"/>
 		<property name="sqlResultSetMapping" xmlTag="sql-result-set-mapping"/>
@@ -148,11 +155,14 @@
 		<property name="postLoad" xmlTag="post-load"/>
 		<property name="ids" xmlTag="id"/>
 		<property name="embeddedId" xmlTag="embedded-id"/>
+		<property name="associationOverrides" xmlTag="association-override"/>
+		<property name="attributeOverrides" xmlTag="attribute-override"/>
 		<property name="attributes" xmlTag="attribute"/>
 		
 		<property name="name" xmlTag="name" attribute="YES"/>
 		<property name="className" xmlTag="class" attribute="YES"/>
 		<property name="access" xmlTag="access" attribute="YES"/>
+		<property name="metadataComplete" xmlTag="metadata-complete" attribute="YES"/>
 	</entity>
 
 	<entity name="org.apache.cayenne.jpa.map.JpaEntityListener" xmlTag="entity-listener">
@@ -171,10 +181,6 @@
 		<property name="entityListeners" xmlTag="entity-listener"/>
 	</entity>
 	
-	<entity name="org.apache.cayenne.jpa.map.JpaEntityListeners" xmlTag="default-entity-listeners">
-		<property name="entityListeners" xmlTag="entity-listener"/>
-	</entity>
-	
 	<entity name="org.apache.cayenne.jpa.map.JpaEntityResult" xmlTag="entity-result">
 		<property name="fieldResults" xmlTag="field-result"/>
 		
@@ -192,6 +198,10 @@
 		<property name="generator" xmlTag="generator" attribute="YES"/>
 	</entity>
 	
+	<entity name="org.apache.cayenne.jpa.map.JpaIdClass" xmlTag="id-class">
+		<property name="className" xmlTag="class" attribute="YES"/>
+	</entity>
+	
 	<entity name="org.apache.cayenne.jpa.map.JpaId" xmlTag="id">
 		<property name="column" xmlTag="column"/>
 		<property name="generatedValue" xmlTag="generated-value"/>
@@ -268,7 +278,8 @@
 	</entity>
 	
 	<entity name="org.apache.cayenne.jpa.map.JpaMappedSuperclass" xmlTag="mapped-superclass">
-		<property name="idClassName" xmlTag="id-class"/>
+		<property name="description" xmlTag="description"/>
+		<property name="idClass" xmlTag="id-class"/>
 		<property name="excludeDefaultListeners" xmlTag="exclude-default-listeners"/>
 		<property name="excludeSuperclassListeners" xmlTag="exclude-superclass-listeners"/>
 		<property name="entityListeners.entityListeners" xmlTag="entity-listener"/>
@@ -279,28 +290,27 @@
 		<property name="preUpdate" xmlTag="pre-update"/>
 		<property name="postUpdate" xmlTag="post-update"/>
 		<property name="postLoad" xmlTag="post-load"/>
-		<property name="ids" xmlTag="id"/>
-		<property name="embeddedId" xmlTag="embedded-id"/>
 		<property name="attributes" xmlTag="attribute"/>
 		
 		<property name="className" xmlTag="class" attribute="YES"/>
 		<property name="access" xmlTag="access" attribute="YES"/>
+		<property name="metadataComplete" xmlTag="metadata-complete" attribute="YES"/>
 	</entity>
 	
 	<entity name="org.apache.cayenne.jpa.map.JpaNamedNativeQuery" xmlTag="named-native-query">
+		<property name="query" xmlTag="query"/>
 		<property name="hints" xmlTag="hint"/>
 		
 		<property name="name" xmlTag="name" attribute="YES"/>
-		<property name="query" xmlTag="query" attribute="YES"/>
 		<property name="resultClassName" xmlTag="result-class" attribute="YES"/>
 		<property name="resultSetMapping" xmlTag="result-set-mapping" attribute="YES"/>
 	</entity>
 	
 	<entity name="org.apache.cayenne.jpa.map.JpaNamedQuery" xmlTag="named-query">
 		<property name="hints" xmlTag="hint"/>
+		<property name="query" xmlTag="query"/>
 		
 		<property name="name" xmlTag="name" attribute="YES"/>
-		<property name="query" xmlTag="query" attribute="YES"/>
 	</entity>
 	
 	<entity name="org.apache.cayenne.jpa.map.JpaOneToMany" xmlTag="one-to-many">
@@ -318,6 +328,20 @@
 		<property name="fetch" xmlTag="fetch" attribute="YES"/>
 		<property name="optional" xmlTag="optional" attribute="YES"/>
 		<property name="mappedBy" xmlTag="mapped-by" attribute="YES"/>
+	</entity>
+	
+	<entity name="org.apache.cayenne.jpa.map.JpaPersistenceUnitDefaults" xmlTag="persistence-unit-defaults">
+	    <property name="schema" xmlTag="schema"/>
+		<property name="catalog" xmlTag="catalog"/>
+		<property name="access" xmlTag="access"/>
+		<property name="cascadePersist" xmlTag="cascade-persist"/>
+		<property name="entityListeners" xmlTag="entity-listeners"/>
+	</entity>
+	
+		<entity name="org.apache.cayenne.jpa.map.JpaPersistenceUnitMetadata" xmlTag="persistence-unit-metadata">
+		<property name="xmlMappingMetadataComplete" xmlTag="xml-mapping-metadata-complete"/>
+		
+		<property name="persistenceUnitDefaults" xmlTag="persistence-unit-defaults"/>
 	</entity>
 	
 	<entity name="org.apache.cayenne.jpa.map.JpaPrimaryKeyJoinColumn" xmlTag="primary-key-join-column">

Modified: incubator/cayenne/main/trunk/cayenne-jpa/src/main/resources/META-INF/schemas/orm_1_0.xsd
URL: http://svn.apache.org/viewvc/incubator/cayenne/main/trunk/cayenne-jpa/src/main/resources/META-INF/schemas/orm_1_0.xsd?rev=425592&r1=425591&r2=425592&view=diff
==============================================================================
--- incubator/cayenne/main/trunk/cayenne-jpa/src/main/resources/META-INF/schemas/orm_1_0.xsd (original)
+++ incubator/cayenne/main/trunk/cayenne-jpa/src/main/resources/META-INF/schemas/orm_1_0.xsd Tue Jul 25 20:19:37 2006
@@ -730,9 +730,6 @@
 <xsd:annotation>
 <xsd:documentation>
 @Target({METHOD, FIELD}) @Retention(RUNTIME)
-XML Schema Enterprise JavaBeans 3.0, Final Release XML Descriptor
-233 5/2/06
-Sun Microsystems, Inc.
 public @interface Transient {}
 </xsd:documentation>
 </xsd:annotation>

Modified: incubator/cayenne/main/trunk/cayenne-jpa/src/test/java/org/apache/cayenne/jpa/conf/MappingAssertion.java
URL: http://svn.apache.org/viewvc/incubator/cayenne/main/trunk/cayenne-jpa/src/test/java/org/apache/cayenne/jpa/conf/MappingAssertion.java?rev=425592&r1=425591&r2=425592&view=diff
==============================================================================
--- incubator/cayenne/main/trunk/cayenne-jpa/src/test/java/org/apache/cayenne/jpa/conf/MappingAssertion.java (original)
+++ incubator/cayenne/main/trunk/cayenne-jpa/src/test/java/org/apache/cayenne/jpa/conf/MappingAssertion.java Tue Jul 25 20:19:37 2006
@@ -17,7 +17,6 @@
  *  under the License.
  ****************************************************************/
 
-
 package org.apache.cayenne.jpa.conf;
 
 import java.util.ArrayList;
@@ -95,8 +94,6 @@
         assertMappedSuperclass2(mappedSuperclassIt.next());
         assertMappedSuperclass3(mappedSuperclassIt.next());
 
-        assertEntityListeners(entityMap.getDefaultEntityListeners());
-
         assertEquals(2, entityMap.getNamedQueries().size());
         Iterator<JpaNamedQuery> namedQueryIt = entityMap.getNamedQueries().iterator();
         assertNamedQuery1(namedQueryIt.next());
@@ -161,8 +158,10 @@
         JpaSecondaryTable secondaryTable2 = secondaryTableIt.next();
         assertEquals("secondary2", secondaryTable2.getName());
 
+        assertNotNull(entity1.getIdClass());
         assertEquals("org.apache.cayenne.jpa.entity.MockIdClass", entity1
-                .getIdClassName());
+                .getIdClass()
+                .getClassName());
 
         assertSequenceGenerator1(entity1.getSequenceGenerator());
 
@@ -522,8 +521,10 @@
                 "org.apache.cayenne.jpa.entity.MockMappedSuperclass1",
                 mappedSuperclass1.getClassName());
 
+        assertNotNull(mappedSuperclass1.getIdClass());
         assertEquals("org.apache.cayenne.jpa.entity.MockIdClass", mappedSuperclass1
-                .getIdClassName());
+                .getIdClass()
+                .getClassName());
 
         assertTrue(mappedSuperclass1.isExcludeDefaultListeners());
         assertTrue(mappedSuperclass1.isExcludeSuperclassListeners());
@@ -536,9 +537,6 @@
                 .next()
                 .getClassName());
 
-        assertEquals(1, mappedSuperclass1.getIds().size());
-        assertId(mappedSuperclass1.getIds().iterator().next());
-
         assertNotNull(mappedSuperclass1.getPrePersist());
         assertEquals("eprePersist", mappedSuperclass1.getPrePersist().getMethodName());
         assertNotNull(mappedSuperclass1.getPostPersist());
@@ -560,8 +558,6 @@
         assertEquals(
                 "org.apache.cayenne.jpa.entity.MockMappedSuperclass2",
                 mappedSuperclass2.getClassName());
-
-        assertEmbeddedId(mappedSuperclass2.getEmbeddedId());
     }
 
     protected void assertMappedSuperclass3(JpaMappedSuperclass mappedSuperclass3) {

Modified: incubator/cayenne/main/trunk/cayenne-jpa/src/test/java/org/apache/cayenne/jpa/conf/XMLMappingAssertion.java
URL: http://svn.apache.org/viewvc/incubator/cayenne/main/trunk/cayenne-jpa/src/test/java/org/apache/cayenne/jpa/conf/XMLMappingAssertion.java?rev=425592&r1=425591&r2=425592&view=diff
==============================================================================
--- incubator/cayenne/main/trunk/cayenne-jpa/src/test/java/org/apache/cayenne/jpa/conf/XMLMappingAssertion.java (original)
+++ incubator/cayenne/main/trunk/cayenne-jpa/src/test/java/org/apache/cayenne/jpa/conf/XMLMappingAssertion.java Tue Jul 25 20:19:37 2006
@@ -17,15 +17,8 @@
  *  under the License.
  ****************************************************************/
 
-
 package org.apache.cayenne.jpa.conf;
 
-import java.util.Collection;
-import java.util.Iterator;
-
-import javax.persistence.CascadeType;
-import javax.persistence.FlushModeType;
-
 import org.apache.cayenne.jpa.map.AccessType;
 import org.apache.cayenne.jpa.map.JpaEmbeddable;
 import org.apache.cayenne.jpa.map.JpaEntity;
@@ -37,21 +30,12 @@
     public void testEntityMap(JpaEntityMap entityMap) throws Exception {
 
         assertNotNull(entityMap);
+        assertEquals("Test Description", entityMap.getDescription());
         assertEquals("default_package", entityMap.getPackageName());
         assertEquals("default_catalog", entityMap.getCatalog());
         assertEquals(AccessType.FIELD, entityMap.getAccess());
-        assertEquals(FlushModeType.COMMIT, entityMap.getFlushMode());
 
         super.testEntityMap(entityMap);
-
-        // common annotations that are not per-entity
-        Collection<CascadeType> cascades = entityMap.getCascades();
-        assertNotNull(cascades);
-        assertEquals(3, cascades.size());
-        Iterator cascadesIt = cascades.iterator();
-        assertEquals(CascadeType.MERGE, cascadesIt.next());
-        assertEquals(CascadeType.PERSIST, cascadesIt.next());
-        assertEquals(CascadeType.REFRESH, cascadesIt.next());
     }
 
     @Override

Modified: incubator/cayenne/main/trunk/cayenne-jpa/src/test/java/org/apache/cayenne/jpa/entity/MockEntityMap1.java
URL: http://svn.apache.org/viewvc/incubator/cayenne/main/trunk/cayenne-jpa/src/test/java/org/apache/cayenne/jpa/entity/MockEntityMap1.java?rev=425592&r1=425591&r2=425592&view=diff
==============================================================================
--- incubator/cayenne/main/trunk/cayenne-jpa/src/test/java/org/apache/cayenne/jpa/entity/MockEntityMap1.java (original)
+++ incubator/cayenne/main/trunk/cayenne-jpa/src/test/java/org/apache/cayenne/jpa/entity/MockEntityMap1.java Tue Jul 25 20:19:37 2006
@@ -21,7 +21,6 @@
 package org.apache.cayenne.jpa.entity;
 
 import javax.persistence.ColumnResult;
-import javax.persistence.EntityListeners;
 import javax.persistence.EntityResult;
 import javax.persistence.FieldResult;
 import javax.persistence.NamedNativeQueries;
@@ -39,12 +38,6 @@
  * 
  * @author Andrus Adamchik
  */
-// TODO: andrus, 4/24/2006 - not sure if this is spec-compatible??? Spec seems to only
-// require processing of annotations on Entities, MappedSuperclasses and Embeddables,
-// however the schema supports globals - probably makes sense for us to support it too..
-@EntityListeners(value = {
-        MockEntityListener1.class, MockEntityListener2.class
-})
 @SequenceGenerator(name = "sg-name", sequenceName = "seq-name", initialValue = 5, allocationSize = 10)
 @NamedQueries( {
         @NamedQuery(name = "query1", query = "select x", hints = {

Modified: incubator/cayenne/main/trunk/cayenne-jpa/src/test/resources/xml-samples/orm-schema-headers-full.xml
URL: http://svn.apache.org/viewvc/incubator/cayenne/main/trunk/cayenne-jpa/src/test/resources/xml-samples/orm-schema-headers-full.xml?rev=425592&r1=425591&r2=425592&view=diff
==============================================================================
--- incubator/cayenne/main/trunk/cayenne-jpa/src/test/resources/xml-samples/orm-schema-headers-full.xml (original)
+++ incubator/cayenne/main/trunk/cayenne-jpa/src/test/resources/xml-samples/orm-schema-headers-full.xml Tue Jul 25 20:19:37 2006
@@ -24,8 +24,13 @@
 <entity-mappings xmlns="http://java.sun.com/xml/ns/persistence/orm"
 	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 	xsi:schemaLocation="http://java.sun.com/xml/ns/persistence/orm 
-       http://java.sun.com/xml/ns/persistence/orm/orm_1_0.xsd" 
-	package="default_package" catalog="default_catalog" schema="default_schema" access="FIELD" flush-mode="COMMIT">
+       http://java.sun.com/xml/ns/persistence/orm/orm_1_0.xsd" version="1.0">
+	
+	<description>Test Description</description>
+	<package>default_package</package>
+	<schema>default_schema</schema>
+	<catalog>default_catalog</catalog>
+	<access>FIELD</access>
 	
 	<!-- ENTITIES -->
 	
@@ -53,7 +58,7 @@
 		
 		<secondary-table name="secondary2"/>
 
-		<id-class>org.apache.cayenne.jpa.entity.MockIdClass</id-class>
+		<id-class class="org.apache.cayenne.jpa.entity.MockIdClass"/>
 		
 		<sequence-generator name="sg-name" sequence-name="seq-name" initial-value="5" allocation-size="10"/>
 		
@@ -64,19 +69,25 @@
 			</unique-constraint>
 		</table-generator>
 		
-		<named-query name="query1" query="select x">
+		<named-query name="query1">
+			<query>select x</query>
 			<hint name="hint1" value="value1"/>
 			<hint name="hint2" value="value2"/>
 		</named-query>
 		
-		<named-query name="query2" query="select y"/>
+		<named-query name="query2">
+			<query>select y</query>
+		</named-query>
 		
-		<named-native-query name="query3" query="select z" result-class="org.apache.cayenne.jpa.entity.MockResultClass" result-set-mapping="rs-mapping1">
+		<named-native-query name="query3" result-class="org.apache.cayenne.jpa.entity.MockResultClass" result-set-mapping="rs-mapping1">
+			<query>select z</query>
 			<hint name="hint3" value="value3"/>
 			<hint name="hint4" value="value4"/>
 		</named-native-query>
 		
-		<named-native-query name="query4" query="select a"/>
+		<named-native-query name="query4">
+			<query>select a</query>
+		</named-native-query>
 		
 		<sql-result-set-mapping name="result-map1">
 			<entity-result entity-class="org.apache.cayenne.jpa.entity.MockEntityX" discriminator-column="column1">
@@ -91,8 +102,8 @@
 			<column-result name="column-result2"/>
 		</sql-result-set-mapping>
 		
-		<exclude-default-listeners>true</exclude-default-listeners>
-		<exclude-superclass-listeners>true</exclude-superclass-listeners>
+		<exclude-default-listeners/>
+		<exclude-superclass-listeners/>
 		
 		<entity-listeners>
 			<entity-listener class="org.apache.cayenne.jpa.entity.MockEntityListener1">
@@ -296,7 +307,7 @@
 
 	<!-- MAPPED SUPERCLASSES -->
 	<mapped-superclass class="org.apache.cayenne.jpa.entity.MockMappedSuperclass1" access="FIELD">
-		<id-class>org.apache.cayenne.jpa.entity.MockIdClass</id-class>
+		<id-class class="org.apache.cayenne.jpa.entity.MockIdClass"/>
 	
 		<exclude-default-listeners>true</exclude-default-listeners>
 		<exclude-superclass-listeners>true</exclude-superclass-listeners>
@@ -318,13 +329,6 @@
 		<pre-update method-name="epreUpdate"/>
 		<post-update method-name="epostUpdate"/>
 		<post-load method-name="epostLoad"/>
-		
-		<id name="id1">
-			<column name="id_column" unique="true" nullable="true" insertable="true" updatable="true" 
-				 table="id_table" length="3" precision="4" scale="5"/>
-			<generated-value strategy="SEQUENCE" generator="id-generator"/>
-			<temporal>TIME</temporal>
-		</id>
 	</mapped-superclass>
 	
 	<!-- EMBEDDED Id -->
@@ -515,10 +519,5 @@
 			<post-persist method-name="postPersist"/>
 		</entity-listener>
 	</default-entity-listeners>
-	
-	<!-- CASCADES -->
-	<cascade>MERGE</cascade>
-	<cascade>PERSIST</cascade>
-	<cascade>REFRESH</cascade>
 	
 </entity-mappings>

Modified: incubator/cayenne/main/trunk/cayenne-jpa/src/test/resources/xml-samples/orm-schema-headers-invalid1.xml
URL: http://svn.apache.org/viewvc/incubator/cayenne/main/trunk/cayenne-jpa/src/test/resources/xml-samples/orm-schema-headers-invalid1.xml?rev=425592&r1=425591&r2=425592&view=diff
==============================================================================
--- incubator/cayenne/main/trunk/cayenne-jpa/src/test/resources/xml-samples/orm-schema-headers-invalid1.xml (original)
+++ incubator/cayenne/main/trunk/cayenne-jpa/src/test/resources/xml-samples/orm-schema-headers-invalid1.xml Tue Jul 25 20:19:37 2006
@@ -21,7 +21,7 @@
 <entity-mappings xmlns="http://java.sun.com/xml/ns/persistence/orm" 
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
        xsi:schemaLocation="http://java.sun.com/xml/ns/persistence/orm 
-       http://java.sun.com/xml/ns/persistence/orm/orm_1_0.xsd">
+       http://java.sun.com/xml/ns/persistence/orm/orm_1_0.xsd" version="1.0">
 
 	<bad-tag/>
 </entity-mappings>

Modified: incubator/cayenne/main/trunk/cayenne-jpa/src/test/resources/xml-samples/orm-schema-headers.xml
URL: http://svn.apache.org/viewvc/incubator/cayenne/main/trunk/cayenne-jpa/src/test/resources/xml-samples/orm-schema-headers.xml?rev=425592&r1=425591&r2=425592&view=diff
==============================================================================
--- incubator/cayenne/main/trunk/cayenne-jpa/src/test/resources/xml-samples/orm-schema-headers.xml (original)
+++ incubator/cayenne/main/trunk/cayenne-jpa/src/test/resources/xml-samples/orm-schema-headers.xml Tue Jul 25 20:19:37 2006
@@ -21,7 +21,7 @@
 <entity-mappings xmlns="http://java.sun.com/xml/ns/persistence/orm"
 	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 	xsi:schemaLocation="http://java.sun.com/xml/ns/persistence/orm 
-       http://java.sun.com/xml/ns/persistence/orm/orm_1_0.xsd">
+       http://java.sun.com/xml/ns/persistence/orm/orm_1_0.xsd" version="1.0">
 
 	<entity class="org.apache.cayenne.jpa.persistent.MockPersistent2"/>
 </entity-mappings>