|
From: <hib...@li...> - 2006-06-27 21:21:28
|
Author: ste...@jb...
Date: 2006-06-27 17:20:52 -0400 (Tue, 27 Jun 2006)
New Revision: 10056
Added:
trunk/Hibernate3/test/org/hibernate/test/jpa/cascade/ChildInfo.java
trunk/Hibernate3/test/org/hibernate/test/jpa/cascade/ChildInfoAssigned.java
trunk/Hibernate3/test/org/hibernate/test/jpa/cascade/ParentInfo.java
Modified:
trunk/Hibernate3/test/org/hibernate/test/jpa/AbstractJPATest.java
trunk/Hibernate3/test/org/hibernate/test/jpa/cascade/CascadeTest.java
Log:
full tests for HHH-1822 (missed some)
Modified: trunk/Hibernate3/test/org/hibernate/test/jpa/AbstractJPATest.java
===================================================================
--- trunk/Hibernate3/test/org/hibernate/test/jpa/AbstractJPATest.java 2006-06-27 21:17:04 UTC (rev 10055)
+++ trunk/Hibernate3/test/org/hibernate/test/jpa/AbstractJPATest.java 2006-06-27 21:20:52 UTC (rev 10056)
@@ -4,6 +4,16 @@
import org.hibernate.cfg.Configuration;
import org.hibernate.cfg.Environment;
import org.hibernate.proxy.EntityNotFoundDelegate;
+import org.hibernate.event.def.DefaultPersistEventListener;
+import org.hibernate.event.def.DefaultAutoFlushEventListener;
+import org.hibernate.event.def.DefaultFlushEventListener;
+import org.hibernate.event.def.DefaultFlushEntityEventListener;
+import org.hibernate.event.AutoFlushEventListener;
+import org.hibernate.event.FlushEventListener;
+import org.hibernate.event.PersistEventListener;
+import org.hibernate.event.FlushEntityEventListener;
+import org.hibernate.engine.CascadingAction;
+import org.hibernate.util.IdentityMap;
import java.io.Serializable;
@@ -26,6 +36,11 @@
cfg.setProperty( Environment.JPAQL_STRICT_COMPLIANCE, "true" );
cfg.setProperty( Environment.USE_SECOND_LEVEL_CACHE, "false" );
cfg.setEntityNotFoundDelegate( new JPAEntityNotFoundDelegate() );
+ cfg.getEventListeners().setPersistEventListeners( buildPersistEventListeners() );
+ cfg.getEventListeners().setPersistOnFlushEventListeners( buildPersisOnFlushEventListeners() );
+ cfg.getEventListeners().setAutoFlushEventListeners( buildAutoFlushEventListeners() );
+ cfg.getEventListeners().setFlushEventListeners( buildFlushEventListeners() );
+ cfg.getEventListeners().setFlushEntityEventListeners( buildFlushEntityEventListeners() );
}
public String getCacheConcurrencyStrategy() {
@@ -33,6 +48,9 @@
return null;
}
+
+ // mimic specific exception aspects of the JPA environment ~~~~~~~~~~~~~~~~
+
private static class JPAEntityNotFoundDelegate implements EntityNotFoundDelegate {
public void handleEntityNotFound(String entityName, Serializable id) {
throw new EntityNotFoundException( entityName, id );
@@ -64,4 +82,67 @@
return id;
}
}
+
+
+ // mimic specific event aspects of the JPA environment ~~~~~~~~~~~~~~~~~~~~
+
+ protected PersistEventListener[] buildPersistEventListeners() {
+ return new PersistEventListener[] { new JPAPersistEventListener() };
+ }
+
+ protected PersistEventListener[] buildPersisOnFlushEventListeners() {
+ return new PersistEventListener[] { new JPAPersistOnFlushEventListener() };
+ }
+
+ protected AutoFlushEventListener[] buildAutoFlushEventListeners() {
+ return new AutoFlushEventListener[] { JPAAutoFlushEventListener.INSTANCE };
+ }
+
+ protected FlushEventListener[] buildFlushEventListeners() {
+ return new FlushEventListener[] { JPAFlushEventListener.INSTANCE };
+ }
+
+ protected FlushEntityEventListener[] buildFlushEntityEventListeners() {
+ return new FlushEntityEventListener[] { new JPAFlushEntityEventListener() };
+ }
+
+ public static class JPAPersistEventListener extends DefaultPersistEventListener {
+ // overridden in JPA impl for entity callbacks...
+ }
+
+ public static class JPAPersistOnFlushEventListener extends JPAPersistEventListener {
+ protected CascadingAction getCascadeAction() {
+ return CascadingAction.PERSIST_ON_FLUSH;
+ }
+ }
+
+ public static class JPAAutoFlushEventListener extends DefaultAutoFlushEventListener {
+ // not sure why EM code has this ...
+ public static final AutoFlushEventListener INSTANCE = new JPAAutoFlushEventListener();
+
+ protected CascadingAction getCascadingAction() {
+ return CascadingAction.PERSIST_ON_FLUSH;
+ }
+
+ protected Object getAnything() {
+ return IdentityMap.instantiate( 10 );
+ }
+ }
+
+ public static class JPAFlushEventListener extends DefaultFlushEventListener {
+ // not sure why EM code has this ...
+ public static final FlushEventListener INSTANCE = new JPAFlushEventListener();
+
+ protected CascadingAction getCascadingAction() {
+ return CascadingAction.PERSIST_ON_FLUSH;
+ }
+
+ protected Object getAnything() {
+ return IdentityMap.instantiate( 10 );
+ }
+ }
+
+ public static class JPAFlushEntityEventListener extends DefaultFlushEntityEventListener {
+ // in JPA, used mainly for preUpdate callbacks...
+ }
}
Modified: trunk/Hibernate3/test/org/hibernate/test/jpa/cascade/CascadeTest.java
===================================================================
--- trunk/Hibernate3/test/org/hibernate/test/jpa/cascade/CascadeTest.java 2006-06-27 21:17:04 UTC (rev 10055)
+++ trunk/Hibernate3/test/org/hibernate/test/jpa/cascade/CascadeTest.java 2006-06-27 21:20:52 UTC (rev 10056)
@@ -317,24 +317,4 @@
}
}
}
-
- protected FlushEntityEventListener[] buildFlushEntityEventListeners() {
- return new FlushEntityEventListener[] { new JPACheckingFlushEntityEventListener() };
- }
-
- public static class JPACheckingFlushEntityEventListener extends JPAFlushEntityEventListener {
- public void onFlushEntity(FlushEntityEvent event) throws HibernateException {
- super.onFlushEntity( event ); //To change body of overridden methods use File | Settings | File Templates.
- }
-
- protected void validate(Object entity, EntityPersister persister, Status status, EntityMode entityMode) {
- super.validate( entity, persister, status, entityMode );
- }
- }
-
- public static class JPAPersistTransientAssociationChecker {
- // implements the checks required by the JPA spec regarding entities with
- // non-cacaded associations to transient entities.
-
- }
}
Added: trunk/Hibernate3/test/org/hibernate/test/jpa/cascade/ChildInfo.java
===================================================================
--- trunk/Hibernate3/test/org/hibernate/test/jpa/cascade/ChildInfo.java 2006-06-27 21:17:04 UTC (rev 10055)
+++ trunk/Hibernate3/test/org/hibernate/test/jpa/cascade/ChildInfo.java 2006-06-27 21:20:52 UTC (rev 10056)
@@ -0,0 +1,39 @@
+package org.hibernate.test.jpa.cascade;
+
+/**
+ * todo: describe ChildInfo
+ *
+ * @author Steve Ebersole
+ */
+public class ChildInfo {
+ private Long id;
+ private Child owner;
+ private String info;
+
+ public ChildInfo() {
+ }
+
+ public ChildInfo(String info) {
+ this.info = info;
+ }
+
+ public Long getId() {
+ return id;
+ }
+
+ public Child getOwner() {
+ return owner;
+ }
+
+ public void setOwner(Child owner) {
+ this.owner = owner;
+ }
+
+ public String getInfo() {
+ return info;
+ }
+
+ public void setInfo(String info) {
+ this.info = info;
+ }
+}
Added: trunk/Hibernate3/test/org/hibernate/test/jpa/cascade/ChildInfoAssigned.java
===================================================================
--- trunk/Hibernate3/test/org/hibernate/test/jpa/cascade/ChildInfoAssigned.java 2006-06-27 21:17:04 UTC (rev 10055)
+++ trunk/Hibernate3/test/org/hibernate/test/jpa/cascade/ChildInfoAssigned.java 2006-06-27 21:20:52 UTC (rev 10056)
@@ -0,0 +1,40 @@
+package org.hibernate.test.jpa.cascade;
+
+/**
+ * todo: describe ChildInfo
+ *
+ * @author Steve Ebersole
+ */
+public class ChildInfoAssigned {
+ private Long id;
+ private ChildAssigned owner;
+ private String info;
+
+ public ChildInfoAssigned() {
+ }
+
+ public ChildInfoAssigned(Long id, String info) {
+ this.id = id;
+ this.info = info;
+ }
+
+ public Long getId() {
+ return id;
+ }
+
+ public ChildAssigned getOwner() {
+ return owner;
+ }
+
+ public void setOwner(ChildAssigned owner) {
+ this.owner = owner;
+ }
+
+ public String getInfo() {
+ return info;
+ }
+
+ public void setInfo(String info) {
+ this.info = info;
+ }
+}
Added: trunk/Hibernate3/test/org/hibernate/test/jpa/cascade/ParentInfo.java
===================================================================
--- trunk/Hibernate3/test/org/hibernate/test/jpa/cascade/ParentInfo.java 2006-06-27 21:17:04 UTC (rev 10055)
+++ trunk/Hibernate3/test/org/hibernate/test/jpa/cascade/ParentInfo.java 2006-06-27 21:20:52 UTC (rev 10056)
@@ -0,0 +1,39 @@
+package org.hibernate.test.jpa.cascade;
+
+/**
+ * todo: describe ChildInfo
+ *
+ * @author Steve Ebersole
+ */
+public class ParentInfo {
+ private Long id;
+ private Parent owner;
+ private String info;
+
+ public ParentInfo() {
+ }
+
+ public ParentInfo(String info) {
+ this.info = info;
+ }
+
+ public Long getId() {
+ return id;
+ }
+
+ public Parent getOwner() {
+ return owner;
+ }
+
+ public void setOwner(Parent owner) {
+ this.owner = owner;
+ }
+
+ public String getInfo() {
+ return info;
+ }
+
+ public void setInfo(String info) {
+ this.info = info;
+ }
+}
|