Author: aadamchik
Date: Tue Aug  1 20:48:10 2006
New Revision: 427878

URL: http://svn.apache.org/viewvc?rev=427878&view=rev
Log:
a number of fixes to the annotations loader

Modified:
    
incubator/cayenne/main/trunk/core/cayenne-jpa/src/main/java/org/apache/cayenne/jpa/conf/ClassAnnotationProcessorFactory.java
    
incubator/cayenne/main/trunk/core/cayenne-jpa/src/main/java/org/apache/cayenne/jpa/conf/MemberAnnotationProcessorFactory.java
    
incubator/cayenne/main/trunk/core/cayenne-jpa/src/main/java/org/apache/cayenne/jpa/map/JpaClassDescriptor.java
    
incubator/cayenne/main/trunk/core/cayenne-jpa/src/test/java/org/apache/cayenne/jpa/conf/EntityMapAnnotationLoaderTest.java
    
incubator/cayenne/main/trunk/core/cayenne-jpa/src/test/java/org/apache/cayenne/jpa/entity/MockMappedSuperclass1.java
    
incubator/cayenne/main/trunk/core/cayenne-jpa/src/test/resources/xml-samples/orm-schema-headers-full.xml

Modified: 
incubator/cayenne/main/trunk/core/cayenne-jpa/src/main/java/org/apache/cayenne/jpa/conf/ClassAnnotationProcessorFactory.java
URL: 
http://svn.apache.org/viewvc/incubator/cayenne/main/trunk/core/cayenne-jpa/src/main/java/org/apache/cayenne/jpa/conf/ClassAnnotationProcessorFactory.java?rev=427878&r1=427877&r2=427878&view=diff
==============================================================================
--- 
incubator/cayenne/main/trunk/core/cayenne-jpa/src/main/java/org/apache/cayenne/jpa/conf/ClassAnnotationProcessorFactory.java
 (original)
+++ 
incubator/cayenne/main/trunk/core/cayenne-jpa/src/main/java/org/apache/cayenne/jpa/conf/ClassAnnotationProcessorFactory.java
 Tue Aug  1 20:48:10 2006
@@ -17,7 +17,6 @@
  *  under the License.
  ****************************************************************/
 
-
 package org.apache.cayenne.jpa.conf;
 
 import java.lang.reflect.AnnotatedElement;
@@ -313,8 +312,11 @@
                     listenerLoader = new EntityListenerAnnotationLoader();
                 }
 
-                // superclass takes care of creating a non-null instance lazily
                 JpaEntityListeners listenerHolder = 
superclass.getEntityListeners();
+                if(listenerHolder  == null) {
+                    listenerHolder = new JpaEntityListeners();
+                    superclass.setEntityListeners(listenerHolder);
+                }
 
                 for (int i = 0; i < annotation.value().length; i++) {
                     JpaEntityListener listener = listenerLoader

Modified: 
incubator/cayenne/main/trunk/core/cayenne-jpa/src/main/java/org/apache/cayenne/jpa/conf/MemberAnnotationProcessorFactory.java
URL: 
http://svn.apache.org/viewvc/incubator/cayenne/main/trunk/core/cayenne-jpa/src/main/java/org/apache/cayenne/jpa/conf/MemberAnnotationProcessorFactory.java?rev=427878&r1=427877&r2=427878&view=diff
==============================================================================
--- 
incubator/cayenne/main/trunk/core/cayenne-jpa/src/main/java/org/apache/cayenne/jpa/conf/MemberAnnotationProcessorFactory.java
 (original)
+++ 
incubator/cayenne/main/trunk/core/cayenne-jpa/src/main/java/org/apache/cayenne/jpa/conf/MemberAnnotationProcessorFactory.java
 Tue Aug  1 20:48:10 2006
@@ -28,6 +28,7 @@
 import javax.persistence.GeneratedValue;
 import javax.persistence.Temporal;
 
+import org.apache.cayenne.jpa.map.JpaAbstractEntity;
 import org.apache.cayenne.jpa.map.JpaAttributeOverride;
 import org.apache.cayenne.jpa.map.JpaAttributes;
 import org.apache.cayenne.jpa.map.JpaColumn;
@@ -72,8 +73,9 @@
             JpaEmbeddedId id = new JpaEmbeddedId();
 
             Object parent = context.peek();
-            if (parent instanceof JpaEntity) {
-                ((JpaEntity) parent).getAttributes().setEmbeddedId(id);
+            // only JpaEntity and JpaMappedSuperclass can have it
+            if (parent instanceof JpaAbstractEntity) {
+                ((JpaAbstractEntity) parent).getAttributes().setEmbeddedId(id);
             }
             else {
                 context.recordConflict(element, AnnotationProcessorFactory

Modified: 
incubator/cayenne/main/trunk/core/cayenne-jpa/src/main/java/org/apache/cayenne/jpa/map/JpaClassDescriptor.java
URL: 
http://svn.apache.org/viewvc/incubator/cayenne/main/trunk/core/cayenne-jpa/src/main/java/org/apache/cayenne/jpa/map/JpaClassDescriptor.java?rev=427878&r1=427877&r2=427878&view=diff
==============================================================================
--- 
incubator/cayenne/main/trunk/core/cayenne-jpa/src/main/java/org/apache/cayenne/jpa/map/JpaClassDescriptor.java
 (original)
+++ 
incubator/cayenne/main/trunk/core/cayenne-jpa/src/main/java/org/apache/cayenne/jpa/map/JpaClassDescriptor.java
 Tue Aug  1 20:48:10 2006
@@ -17,7 +17,6 @@
  *  under the License.
  ****************************************************************/
 
-
 package org.apache.cayenne.jpa.map;
 
 import java.lang.reflect.Field;
@@ -32,7 +31,8 @@
 import java.util.regex.Pattern;
 
 /**
- * Provides the JPA information about a class, such potential persistence 
fields, etc.
+ * Provides information about a class relevant to JPA, such potential 
persistence fields,
+ * etc.
  * 
  * @author Andrus Adamchik
  */

Modified: 
incubator/cayenne/main/trunk/core/cayenne-jpa/src/test/java/org/apache/cayenne/jpa/conf/EntityMapAnnotationLoaderTest.java
URL: 
http://svn.apache.org/viewvc/incubator/cayenne/main/trunk/core/cayenne-jpa/src/test/java/org/apache/cayenne/jpa/conf/EntityMapAnnotationLoaderTest.java?rev=427878&r1=427877&r2=427878&view=diff
==============================================================================
--- 
incubator/cayenne/main/trunk/core/cayenne-jpa/src/test/java/org/apache/cayenne/jpa/conf/EntityMapAnnotationLoaderTest.java
 (original)
+++ 
incubator/cayenne/main/trunk/core/cayenne-jpa/src/test/java/org/apache/cayenne/jpa/conf/EntityMapAnnotationLoaderTest.java
 Tue Aug  1 20:48:10 2006
@@ -41,7 +41,6 @@
 import org.apache.cayenne.jpa.entity.MockMappedSuperclass2;
 import org.apache.cayenne.jpa.entity.MockMappedSuperclass3;
 import org.apache.cayenne.jpa.map.JpaAttributeOverride;
-import org.apache.cayenne.jpa.map.JpaAttributes;
 import org.apache.cayenne.jpa.map.JpaEntity;
 import org.apache.cayenne.jpa.map.JpaEntityMap;
 import org.apache.cayenne.jpa.spi.MockPersistenceUnitInfo;
@@ -85,15 +84,6 @@
                 .iterator()
                 .next();
         assertEquals("entityAttribute", entityOverride.getName());
-
-        JpaAttributes attributes = entity.getAttributes();
-        assertEquals(1, attributes.getBasicAttributes().size());
-        assertEquals(1, entity.getAttributeOverrides().size());
-        JpaAttributeOverride attributeOverride = entity
-                .getAttributeOverrides()
-                .iterator()
-                .next();
-        assertEquals("embdeddedAttribute", attributeOverride.getName());
     }
 
     /**

Modified: 
incubator/cayenne/main/trunk/core/cayenne-jpa/src/test/java/org/apache/cayenne/jpa/entity/MockMappedSuperclass1.java
URL: 
http://svn.apache.org/viewvc/incubator/cayenne/main/trunk/core/cayenne-jpa/src/test/java/org/apache/cayenne/jpa/entity/MockMappedSuperclass1.java?rev=427878&r1=427877&r2=427878&view=diff
==============================================================================
--- 
incubator/cayenne/main/trunk/core/cayenne-jpa/src/test/java/org/apache/cayenne/jpa/entity/MockMappedSuperclass1.java
 (original)
+++ 
incubator/cayenne/main/trunk/core/cayenne-jpa/src/test/java/org/apache/cayenne/jpa/entity/MockMappedSuperclass1.java
 Tue Aug  1 20:48:10 2006
@@ -20,13 +20,9 @@
 
 package org.apache.cayenne.jpa.entity;
 
-import javax.persistence.Column;
 import javax.persistence.EntityListeners;
 import javax.persistence.ExcludeDefaultListeners;
 import javax.persistence.ExcludeSuperclassListeners;
-import javax.persistence.GeneratedValue;
-import javax.persistence.GenerationType;
-import javax.persistence.Id;
 import javax.persistence.IdClass;
 import javax.persistence.MappedSuperclass;
 import javax.persistence.PostLoad;
@@ -36,8 +32,6 @@
 import javax.persistence.PrePersist;
 import javax.persistence.PreRemove;
 import javax.persistence.PreUpdate;
-import javax.persistence.Temporal;
-import javax.persistence.TemporalType;
 
 @MappedSuperclass
 @IdClass(MockIdClass.class)
@@ -47,11 +41,6 @@
     MockEntityListener1.class
 })
 public class MockMappedSuperclass1 {
-    @Id
-    @Temporal(TemporalType.TIME)
-    @Column(name = "id_column", unique = true, nullable = true, insertable = 
true, updatable = true, table = "id_table", length = 3, precision = 4, scale = 
5)
-    @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = 
"id-generator")
-    protected int id1;
 
     @PrePersist
     protected void eprePersist() {

Modified: 
incubator/cayenne/main/trunk/core/cayenne-jpa/src/test/resources/xml-samples/orm-schema-headers-full.xml
URL: 
http://svn.apache.org/viewvc/incubator/cayenne/main/trunk/core/cayenne-jpa/src/test/resources/xml-samples/orm-schema-headers-full.xml?rev=427878&r1=427877&r2=427878&view=diff
==============================================================================
--- 
incubator/cayenne/main/trunk/core/cayenne-jpa/src/test/resources/xml-samples/orm-schema-headers-full.xml
 (original)
+++ 
incubator/cayenne/main/trunk/core/cayenne-jpa/src/test/resources/xml-samples/orm-schema-headers-full.xml
 Tue Aug  1 20:48:10 2006
@@ -137,14 +137,14 @@
        <!-- MAPPED SUPERCLASS WITH EMBEDDED Id -->
        <mapped-superclass 
class="org.apache.cayenne.jpa.entity.MockMappedSuperclass2">
                <attributes>
-               <embedded-id name="embeddedId">
-                       <attribute-override name="attribute1">
-                               <column name="ao_column1"/>
-                       </attribute-override>
-                       <attribute-override name="attribute2">
-                               <column name="ao_column2"/>
-                       </attribute-override>
-               </embedded-id>
+                       <embedded-id name="embeddedId">
+                               <attribute-override name="attribute1">
+                                       <column name="ao_column1"/>
+                               </attribute-override>
+                               <attribute-override name="attribute2">
+                                       <column name="ao_column2"/>
+                               </attribute-override>
+                       </embedded-id>
                </attributes>
        </mapped-superclass>
        


Reply via email to