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/11/30 12:40:58 UTC
svn commit: r480896 - in /incubator/cayenne/main/trunk/core/cayenne-jpa: ./
src/main/java/org/apache/cayenne/jpa/bridge/
src/main/java/org/apache/cayenne/jpa/conf/
src/main/java/org/apache/cayenne/jpa/cspi/
src/main/java/org/apache/cayenne/jpa/map/ src...
Author: aadamchik
Date: Thu Nov 30 03:40:56 2006
New Revision: 480896
URL: http://svn.apache.org/viewvc?view=rev&rev=480896
Log:
CAY-713: Improved Meaningful PK support
(CAY-713 accomplished
+ switching JPA enhancer to the new generic pojo enhancement code
+ uncommenting a number of JPA relationship itests that work now with the new enhancer)
Removed:
incubator/cayenne/main/trunk/core/cayenne-jpa/src/test/java/org/apache/cayenne/jpa/conf/AnnotationMappingAssertion.java
Modified:
incubator/cayenne/main/trunk/core/cayenne-jpa/.classpath
incubator/cayenne/main/trunk/core/cayenne-jpa/src/main/java/org/apache/cayenne/jpa/bridge/DataMapConverter.java
incubator/cayenne/main/trunk/core/cayenne-jpa/src/main/java/org/apache/cayenne/jpa/conf/EntityMapAnnotationLoader.java
incubator/cayenne/main/trunk/core/cayenne-jpa/src/main/java/org/apache/cayenne/jpa/conf/EntityMapDefaultsProcessor.java
incubator/cayenne/main/trunk/core/cayenne-jpa/src/main/java/org/apache/cayenne/jpa/cspi/CjpaAccessorVisitor.java
incubator/cayenne/main/trunk/core/cayenne-jpa/src/main/java/org/apache/cayenne/jpa/cspi/CjpaEnhancerVisitorFactory.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/main/java/org/apache/cayenne/jpa/reflect/CjpaClassDescriptorFactory.java
incubator/cayenne/main/trunk/core/cayenne-jpa/src/main/java/org/apache/cayenne/jpa/reflect/CjpaToManyProperty.java
incubator/cayenne/main/trunk/core/cayenne-jpa/src/test/java/org/apache/cayenne/jpa/bridge/DataMapMappingAssertion.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/map/JpaClassDescriptorTest.java
Modified: incubator/cayenne/main/trunk/core/cayenne-jpa/.classpath
URL: http://svn.apache.org/viewvc/incubator/cayenne/main/trunk/core/cayenne-jpa/.classpath?view=diff&rev=480896&r1=480895&r2=480896
==============================================================================
--- incubator/cayenne/main/trunk/core/cayenne-jpa/.classpath (original)
+++ incubator/cayenne/main/trunk/core/cayenne-jpa/.classpath Thu Nov 30 03:40:56 2006
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="src" path="src/main/java"/>
- <classpathentry output="target/test-classes" kind="src" path="src/test/java"/>
+ <classpathentry kind="src" path="src/test/java"/>
<classpathentry excluding="**" output="src/main/resources" kind="src" path="src/main/resources"/>
<classpathentry excluding="**" output="src/test/resources" kind="src" path="src/test/resources"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
Modified: incubator/cayenne/main/trunk/core/cayenne-jpa/src/main/java/org/apache/cayenne/jpa/bridge/DataMapConverter.java
URL: http://svn.apache.org/viewvc/incubator/cayenne/main/trunk/core/cayenne-jpa/src/main/java/org/apache/cayenne/jpa/bridge/DataMapConverter.java?view=diff&rev=480896&r1=480895&r2=480896
==============================================================================
--- incubator/cayenne/main/trunk/core/cayenne-jpa/src/main/java/org/apache/cayenne/jpa/bridge/DataMapConverter.java (original)
+++ incubator/cayenne/main/trunk/core/cayenne-jpa/src/main/java/org/apache/cayenne/jpa/bridge/DataMapConverter.java Thu Nov 30 03:40:56 2006
@@ -33,6 +33,7 @@
import org.apache.cayenne.jpa.map.JpaEntityMap;
import org.apache.cayenne.jpa.map.JpaId;
import org.apache.cayenne.jpa.map.JpaJoinColumn;
+import org.apache.cayenne.jpa.map.JpaManagedClass;
import org.apache.cayenne.jpa.map.JpaManyToMany;
import org.apache.cayenne.jpa.map.JpaManyToOne;
import org.apache.cayenne.jpa.map.JpaNamedQuery;
@@ -107,10 +108,6 @@
class JpaBasicVisitor extends NestedVisitor {
- JpaBasicVisitor() {
- addChildVisitor(JpaColumn.class, new JpaColumnVisitor());
- }
-
@Override
Object createObject(ProjectPath path) {
@@ -125,11 +122,20 @@
parentCayenneEntity.addAttribute(cayenneAttribute);
return cayenneAttribute;
-
}
Class getAttributeType(ProjectPath path, String name) {
- AccessType access = ((JpaEntityMap) path.getRoot()).getAccess();
+ AccessType access = null;
+
+ JpaManagedClass entity = (JpaManagedClass) path
+ .firstInstanceOf(JpaManagedClass.class);
+ access = entity.getAccess();
+
+ if (access == null) {
+ JpaEntityMap map = (JpaEntityMap) path
+ .firstInstanceOf(JpaEntityMap.class);
+ access = map.getAccess();
+ }
Class objectClass = ((ObjEntity) targetPath.firstInstanceOf(ObjEntity.class))
.getJavaClass();
@@ -146,7 +152,9 @@
throw new JpaProviderException("Error resolving attribute '"
+ name
+ "', access type:"
- + access, e);
+ + access
+ + ", class: "
+ + objectClass.getName(), e);
}
}
@@ -237,6 +245,24 @@
}
}
+ class JpaIdVisitor extends JpaBasicVisitor {
+
+ @Override
+ Object createObject(ProjectPath path) {
+
+ JpaId id = (JpaId) path.getObject();
+
+ ObjEntity parentCayenneEntity = (ObjEntity) targetPath.getObject();
+
+ ObjAttribute cayenneAttribute = new ObjAttribute(id.getName());
+ cayenneAttribute.setType(getAttributeType(path, id.getName()).getName());
+ cayenneAttribute.setDbAttributeName(id.getColumn().getName());
+
+ parentCayenneEntity.addAttribute(cayenneAttribute);
+ return cayenneAttribute;
+ }
+ }
+
class JpaIdColumnVisitor extends BaseTreeVisitor {
@Override
@@ -349,10 +375,16 @@
attributeVisitor.addChildVisitor(
JpaManyToMany.class,
new JpaRelationshipVisitor());
- attributeVisitor.addChildVisitor(JpaBasic.class, new JpaBasicVisitor());
- attributeVisitor.addChildVisitor(JpaVersion.class, new JpaVersionVisitor());
- BaseTreeVisitor idVisitor = new BaseTreeVisitor();
+ JpaBasicVisitor basicVisitor = new JpaBasicVisitor();
+ basicVisitor.addChildVisitor(JpaColumn.class, new JpaColumnVisitor());
+ attributeVisitor.addChildVisitor(JpaBasic.class, basicVisitor);
+
+ JpaVersionVisitor versionVisitor = new JpaVersionVisitor();
+ versionVisitor.addChildVisitor(JpaColumn.class, new JpaColumnVisitor());
+ attributeVisitor.addChildVisitor(JpaVersion.class, versionVisitor);
+
+ JpaIdVisitor idVisitor = new JpaIdVisitor();
idVisitor.addChildVisitor(JpaColumn.class, new JpaIdColumnVisitor());
attributeVisitor.addChildVisitor(JpaId.class, idVisitor);
Modified: incubator/cayenne/main/trunk/core/cayenne-jpa/src/main/java/org/apache/cayenne/jpa/conf/EntityMapAnnotationLoader.java
URL: http://svn.apache.org/viewvc/incubator/cayenne/main/trunk/core/cayenne-jpa/src/main/java/org/apache/cayenne/jpa/conf/EntityMapAnnotationLoader.java?view=diff&rev=480896&r1=480895&r2=480896
==============================================================================
--- incubator/cayenne/main/trunk/core/cayenne-jpa/src/main/java/org/apache/cayenne/jpa/conf/EntityMapAnnotationLoader.java (original)
+++ incubator/cayenne/main/trunk/core/cayenne-jpa/src/main/java/org/apache/cayenne/jpa/conf/EntityMapAnnotationLoader.java Thu Nov 30 03:40:56 2006
@@ -65,6 +65,7 @@
import javax.persistence.Version;
import org.apache.cayenne.jpa.JpaProviderException;
+import org.apache.cayenne.jpa.map.AccessType;
import org.apache.cayenne.jpa.map.JpaAbstractEntity;
import org.apache.cayenne.jpa.map.JpaAttribute;
import org.apache.cayenne.jpa.map.JpaClassDescriptor;
@@ -177,9 +178,11 @@
// per 'getAnnotations' docs, array is returned by copy, so we can modify it...
Arrays.sort(classAnnotations, typeAnnotationsSorter);
- JpaClassDescriptor descriptor = new JpaClassDescriptor(
- context.getEntityMap(),
- managedClass);
+ JpaClassDescriptor descriptor = new JpaClassDescriptor(managedClass);
+
+ // initially set access to the map level access - may be overriden below
+ descriptor.setAccess(context.getEntityMap().getAccess());
+
AnnotationContext stack = new AnnotationContext(descriptor);
stack.push(context.getEntityMap());
@@ -214,14 +217,43 @@
// we still must determine the access type to apply default mappping rules. How?
// (using FIELD access for now).
+ boolean fieldAccess = false;
+
for (JpaPropertyDescriptor property : descriptor.getFieldDescriptors()) {
stack.setPropertyDescriptor(property);
- applyMemberAnnotations(property, stack);
+ if (applyMemberAnnotations(property, stack)) {
+ fieldAccess = true;
+ }
}
+ boolean propertyAccess = false;
+
for (JpaPropertyDescriptor property : descriptor.getPropertyDescriptors()) {
stack.setPropertyDescriptor(property);
- applyMemberAnnotations(property, stack);
+ if (applyMemberAnnotations(property, stack)) {
+ propertyAccess = true;
+ }
+ }
+
+ if (stack.peek() instanceof JpaManagedClass) {
+ JpaManagedClass entity = (JpaManagedClass) stack.peek();
+ // sanity check
+ if (fieldAccess && propertyAccess) {
+ throw new JpaProviderException("Entity '"
+ + entity.getClassName()
+ + "' has both property and field annotations.");
+ }
+
+ // TODO: andrus - 11/29/2006 - clean this redundancy - access field should be
+ // stored either in the entity or the descriptor.
+ if (fieldAccess) {
+ descriptor.setAccess(AccessType.FIELD);
+ entity.setAccess(AccessType.FIELD);
+ }
+ else if (propertyAccess) {
+ descriptor.setAccess(AccessType.PROPERTY);
+ entity.setAccess(AccessType.PROPERTY);
+ }
}
// === pop class-level stuff
@@ -234,7 +266,11 @@
}
}
- protected void applyMemberAnnotations(
+ /**
+ * Processes member annotations, returning true if at least one JPA annotation was
+ * found.
+ */
+ protected boolean applyMemberAnnotations(
JpaPropertyDescriptor property,
AnnotationProcessorStack stack) {
@@ -263,6 +299,8 @@
memberProcessor.onFinishElement(member, stack);
}
}
+
+ return annotations.length > 0;
}
protected void applyEntityCallbackAnnotations(
Modified: incubator/cayenne/main/trunk/core/cayenne-jpa/src/main/java/org/apache/cayenne/jpa/conf/EntityMapDefaultsProcessor.java
URL: http://svn.apache.org/viewvc/incubator/cayenne/main/trunk/core/cayenne-jpa/src/main/java/org/apache/cayenne/jpa/conf/EntityMapDefaultsProcessor.java?view=diff&rev=480896&r1=480895&r2=480896
==============================================================================
--- incubator/cayenne/main/trunk/core/cayenne-jpa/src/main/java/org/apache/cayenne/jpa/conf/EntityMapDefaultsProcessor.java (original)
+++ incubator/cayenne/main/trunk/core/cayenne-jpa/src/main/java/org/apache/cayenne/jpa/conf/EntityMapDefaultsProcessor.java Thu Nov 30 03:40:56 2006
@@ -126,8 +126,12 @@
// * default persistent fields
JpaClassDescriptor descriptor = entity.getClassDescriptor();
- JpaEntityMap root = (JpaEntityMap) path.getRoot();
- if (root.getAccess() == AccessType.PROPERTY) {
+ AccessType access = entity.getAccess();
+ if (access == null) {
+ access = ((JpaEntityMap) path.getRoot()).getAccess();
+ }
+
+ if (access == AccessType.PROPERTY) {
for (JpaPropertyDescriptor candidate : descriptor
.getPropertyDescriptors()) {
processProperty(entity, descriptor, candidate);
Modified: incubator/cayenne/main/trunk/core/cayenne-jpa/src/main/java/org/apache/cayenne/jpa/cspi/CjpaAccessorVisitor.java
URL: http://svn.apache.org/viewvc/incubator/cayenne/main/trunk/core/cayenne-jpa/src/main/java/org/apache/cayenne/jpa/cspi/CjpaAccessorVisitor.java?view=diff&rev=480896&r1=480895&r2=480896
==============================================================================
--- incubator/cayenne/main/trunk/core/cayenne-jpa/src/main/java/org/apache/cayenne/jpa/cspi/CjpaAccessorVisitor.java (original)
+++ incubator/cayenne/main/trunk/core/cayenne-jpa/src/main/java/org/apache/cayenne/jpa/cspi/CjpaAccessorVisitor.java Thu Nov 30 03:40:56 2006
@@ -19,14 +19,9 @@
package org.apache.cayenne.jpa.cspi;
import org.apache.cayenne.enhancer.AccessorVisitor;
-import org.apache.cayenne.enhancer.EnhancementHelper;
-import org.apache.cayenne.enhancer.GetterVisitor;
-import org.apache.cayenne.enhancer.SetterVisitor;
import org.apache.cayenne.jpa.map.JpaClassDescriptor;
import org.apache.cayenne.jpa.map.JpaPropertyDescriptor;
import org.objectweb.asm.ClassVisitor;
-import org.objectweb.asm.MethodVisitor;
-import org.objectweb.asm.Type;
/**
* @author Andrus Adamchik
@@ -34,55 +29,24 @@
class CjpaAccessorVisitor extends AccessorVisitor {
private JpaClassDescriptor descriptor;
- private EnhancementHelper helper;
public CjpaAccessorVisitor(ClassVisitor visitor, JpaClassDescriptor descriptor) {
super(visitor);
this.descriptor = descriptor;
- this.helper = new EnhancementHelper(this);
}
@Override
- public void visit(
- int version,
- int access,
- String name,
- String signature,
- String superName,
- String[] interfaces) {
-
- helper.reset(name);
- super.visit(version, access, name, signature, superName, interfaces);
+ protected boolean isEnhancedProperty(String property) {
+ return descriptor.getProperty(property) != null;
}
@Override
- protected MethodVisitor visitGetter(
- MethodVisitor mv,
- String property,
- Type propertyType) {
-
+ protected boolean isLazyFaulted(String property) {
JpaPropertyDescriptor propertyDescriptor = descriptor.getProperty(property);
- if (propertyDescriptor != null) {
- // TODO: andrus, 10/14/2006 - this should access Jpa LAZY vs. EAGER falg
- // instead of using Cayenne default logic of lazy relationships
- boolean faulted = propertyDescriptor.getTargetEntityType() != null;
-
- return new GetterVisitor(mv, helper, property, faulted);
- }
-
- return mv;
- }
-
- @Override
- protected MethodVisitor visitSetter(
- MethodVisitor mv,
- String property,
- Type propertyType) {
- return (descriptor.getProperty(property) != null) ? new SetterVisitor(
- mv,
- helper,
- property,
- propertyType) : mv;
+ // TODO: andrus, 10/14/2006 - this should access Jpa LAZY vs. EAGER flag
+ // instead of using Cayenne default logic of lazy relationships
+ return propertyDescriptor != null
+ && propertyDescriptor.getTargetEntityType() != null;
}
}
Modified: incubator/cayenne/main/trunk/core/cayenne-jpa/src/main/java/org/apache/cayenne/jpa/cspi/CjpaEnhancerVisitorFactory.java
URL: http://svn.apache.org/viewvc/incubator/cayenne/main/trunk/core/cayenne-jpa/src/main/java/org/apache/cayenne/jpa/cspi/CjpaEnhancerVisitorFactory.java?view=diff&rev=480896&r1=480895&r2=480896
==============================================================================
--- incubator/cayenne/main/trunk/core/cayenne-jpa/src/main/java/org/apache/cayenne/jpa/cspi/CjpaEnhancerVisitorFactory.java (original)
+++ incubator/cayenne/main/trunk/core/cayenne-jpa/src/main/java/org/apache/cayenne/jpa/cspi/CjpaEnhancerVisitorFactory.java Thu Nov 30 03:40:56 2006
@@ -24,6 +24,7 @@
import org.apache.cayenne.enhancer.PersistentInterfaceVisitor;
import org.apache.cayenne.jpa.map.JpaClassDescriptor;
import org.objectweb.asm.ClassVisitor;
+import org.objectweb.asm.commons.SerialVersionUIDAdder;
/**
* Class enhancer used for JPA.
@@ -44,9 +45,17 @@
return null;
}
+ // from here the code is copied essentially verbatim
+ // from CayenneEnhancerVisitorFactory.
+
// create enhancer chain
PersistentInterfaceVisitor e1 = new PersistentInterfaceVisitor(out);
CjpaAccessorVisitor e2 = new CjpaAccessorVisitor(e1, descriptor);
- return e2;
+
+ // this ensures that both enhanced and original classes have compatible serialized
+ // format even if no serialVersionUID is defined by the user
+ SerialVersionUIDAdder e3 = new SerialVersionUIDAdder(e2);
+
+ return e3;
}
}
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?view=diff&rev=480896&r1=480895&r2=480896
==============================================================================
--- 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 Thu Nov 30 03:40:56 2006
@@ -45,7 +45,7 @@
protected Collection<JpaPropertyDescriptor> fieldDescriptors;
protected Collection<JpaPropertyDescriptor> propertyDescriptors;
protected Class managedClass;
- protected JpaEntityMap entityMap;
+ protected AccessType access;
public static String propertyNameForGetter(String getterName) {
Matcher getMatch = GETTER_PATTERN.matcher(getterName);
@@ -66,21 +66,20 @@
return null;
}
- public JpaClassDescriptor(JpaEntityMap entityMap, Class managedClass) {
+ public JpaClassDescriptor(Class managedClass) {
this.managedClass = managedClass;
- this.entityMap = entityMap;
}
public Class getManagedClass() {
return managedClass;
}
- public boolean isFieldAccess() {
- return entityMap.getAccess() == AccessType.FIELD;
+ public AccessType getAccess() {
+ return access;
}
-
- public boolean isPropertyAccess() {
- return entityMap.getAccess() == AccessType.PROPERTY;
+
+ public void setAccess(AccessType access) {
+ this.access = access;
}
/**
@@ -89,14 +88,14 @@
* PROPERTY access - descriptor is looked up in the list of class properties.
*/
public JpaPropertyDescriptor getProperty(String name) {
- if (isFieldAccess()) {
+ if (getAccess() == AccessType.FIELD) {
for (JpaPropertyDescriptor d : getFieldDescriptors()) {
if (name.equals(d.getName())) {
return d;
}
}
}
- else if (isPropertyAccess()) {
+ else if (getAccess() == AccessType.PROPERTY) {
for (JpaPropertyDescriptor d : getPropertyDescriptors()) {
if (name.equals(d.getName())) {
return d;
Modified: incubator/cayenne/main/trunk/core/cayenne-jpa/src/main/java/org/apache/cayenne/jpa/reflect/CjpaClassDescriptorFactory.java
URL: http://svn.apache.org/viewvc/incubator/cayenne/main/trunk/core/cayenne-jpa/src/main/java/org/apache/cayenne/jpa/reflect/CjpaClassDescriptorFactory.java?view=diff&rev=480896&r1=480895&r2=480896
==============================================================================
--- incubator/cayenne/main/trunk/core/cayenne-jpa/src/main/java/org/apache/cayenne/jpa/reflect/CjpaClassDescriptorFactory.java (original)
+++ incubator/cayenne/main/trunk/core/cayenne-jpa/src/main/java/org/apache/cayenne/jpa/reflect/CjpaClassDescriptorFactory.java Thu Nov 30 03:40:56 2006
@@ -24,21 +24,12 @@
import org.apache.cayenne.reflect.ClassDescriptor;
import org.apache.cayenne.reflect.ClassDescriptorMap;
import org.apache.cayenne.reflect.PersistentDescriptor;
-import org.apache.cayenne.reflect.PersistentDescriptorFactory;
+import org.apache.cayenne.reflect.pojo.EnhancedPojoDescriptorFactory;
-public class CjpaClassDescriptorFactory extends PersistentDescriptorFactory {
+public class CjpaClassDescriptorFactory extends EnhancedPojoDescriptorFactory {
public CjpaClassDescriptorFactory(ClassDescriptorMap descriptorMap) {
super(descriptorMap);
- }
-
- // TODO: andrus, 11/25/2006 - sniff enhanced objects, and skip the rest in
- // 'getDescriptor'
-
- @Override
- protected void createToOneProperty(
- PersistentDescriptor descriptor,
- ObjRelationship relationship) {
}
@Override
Modified: incubator/cayenne/main/trunk/core/cayenne-jpa/src/main/java/org/apache/cayenne/jpa/reflect/CjpaToManyProperty.java
URL: http://svn.apache.org/viewvc/incubator/cayenne/main/trunk/core/cayenne-jpa/src/main/java/org/apache/cayenne/jpa/reflect/CjpaToManyProperty.java?view=diff&rev=480896&r1=480895&r2=480896
==============================================================================
--- incubator/cayenne/main/trunk/core/cayenne-jpa/src/main/java/org/apache/cayenne/jpa/reflect/CjpaToManyProperty.java (original)
+++ incubator/cayenne/main/trunk/core/cayenne-jpa/src/main/java/org/apache/cayenne/jpa/reflect/CjpaToManyProperty.java Thu Nov 30 03:40:56 2006
@@ -19,9 +19,6 @@
package org.apache.cayenne.jpa.reflect;
-import org.apache.cayenne.Fault;
-import org.apache.cayenne.Persistent;
-import org.apache.cayenne.ValueHolder;
import org.apache.cayenne.reflect.Accessor;
import org.apache.cayenne.reflect.ClassDescriptor;
import org.apache.cayenne.reflect.ListProperty;
@@ -40,26 +37,5 @@
public void writePropertyDirectly(Object object, Object oldValue, Object newValue)
throws PropertyException {
accessor.setValue(object, newValue);
- }
-
- @Override
- protected ValueHolder createCollectionValueHolder(Object object)
- throws PropertyException {
- if (!(object instanceof Persistent)) {
-
- throw new PropertyException(
- "ValueHolders for non-persistent objects are not supported.",
- this,
- object);
- }
-
- return (ValueHolder) Fault.getToManyFault().resolveFault(
- (Persistent) object,
- getName());
- }
-
- @Override
- public void invalidate(Object object) {
- writePropertyDirectly(object, null, Fault.getToManyFault());
}
}
Modified: incubator/cayenne/main/trunk/core/cayenne-jpa/src/test/java/org/apache/cayenne/jpa/bridge/DataMapMappingAssertion.java
URL: http://svn.apache.org/viewvc/incubator/cayenne/main/trunk/core/cayenne-jpa/src/test/java/org/apache/cayenne/jpa/bridge/DataMapMappingAssertion.java?view=diff&rev=480896&r1=480895&r2=480896
==============================================================================
--- incubator/cayenne/main/trunk/core/cayenne-jpa/src/test/java/org/apache/cayenne/jpa/bridge/DataMapMappingAssertion.java (original)
+++ incubator/cayenne/main/trunk/core/cayenne-jpa/src/test/java/org/apache/cayenne/jpa/bridge/DataMapMappingAssertion.java Thu Nov 30 03:40:56 2006
@@ -98,7 +98,7 @@
}
protected void assertObjAttributes(ObjEntity entity1) {
- assertEquals(3, entity1.getAttributeMap().size());
+ assertEquals(4, entity1.getAttributeMap().size());
ObjAttribute a1 = (ObjAttribute) entity1.getAttribute("attribute1");
assertNotNull(a1);
@@ -117,6 +117,10 @@
assertEquals("attribute9", a3.getName());
assertEquals("column9", a3.getDbAttributeName());
assertEquals(Date.class.getName(), a3.getType());
+
+ // PK must also be mapped
+ ObjAttribute id = (ObjAttribute) entity1.getAttribute("id");
+ assertNotNull(id);
}
protected void assertObjRelationships(ObjEntity entity1) {
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?view=diff&rev=480896&r1=480895&r2=480896
==============================================================================
--- 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 Thu Nov 30 03:40:56 2006
@@ -140,6 +140,6 @@
.getConflicts()
.hasFailures());
- new AnnotationMappingAssertion().testEntityMap(context.getEntityMap());
+ new MappingAssertion().testEntityMap(context.getEntityMap());
}
}
Modified: incubator/cayenne/main/trunk/core/cayenne-jpa/src/test/java/org/apache/cayenne/jpa/map/JpaClassDescriptorTest.java
URL: http://svn.apache.org/viewvc/incubator/cayenne/main/trunk/core/cayenne-jpa/src/test/java/org/apache/cayenne/jpa/map/JpaClassDescriptorTest.java?view=diff&rev=480896&r1=480895&r2=480896
==============================================================================
--- incubator/cayenne/main/trunk/core/cayenne-jpa/src/test/java/org/apache/cayenne/jpa/map/JpaClassDescriptorTest.java (original)
+++ incubator/cayenne/main/trunk/core/cayenne-jpa/src/test/java/org/apache/cayenne/jpa/map/JpaClassDescriptorTest.java Thu Nov 30 03:40:56 2006
@@ -17,7 +17,6 @@
* under the License.
****************************************************************/
-
package org.apache.cayenne.jpa.map;
import junit.framework.TestCase;
@@ -41,11 +40,9 @@
public void testGetMemberDescriptors() throws Exception {
- JpaEntityMap map = new JpaEntityMap();
- map.setAccess(AccessType.PROPERTY);
JpaClassDescriptor descriptor = new JpaClassDescriptor(
- map,
MockPropertyRegressionBean.class);
+ descriptor.setAccess(AccessType.PROPERTY);
assertEquals(2, descriptor.getPropertyDescriptors().size());