[seam-commits] Seam SVN: r7240 - trunk/src/main/org/jboss/seam/persistence.

seam-commits at lists.jboss.org seam-commits at lists.jboss.org
Fri Jan 25 15:36:00 EST 2008


Author: epbernard
Date: 2008-01-25 15:36:00 -0500 (Fri, 25 Jan 2008)
New Revision: 7240

Modified:
   trunk/src/main/org/jboss/seam/persistence/HibernatePersistenceProvider.java
   trunk/src/main/org/jboss/seam/persistence/HibernateSessionProxy.java
Log:
JBSEAM-2516 JBSEAM-2243 HibernateSessionProxy now implements EventSource

Modified: trunk/src/main/org/jboss/seam/persistence/HibernatePersistenceProvider.java
===================================================================
--- trunk/src/main/org/jboss/seam/persistence/HibernatePersistenceProvider.java	2008-01-25 17:52:46 UTC (rev 7239)
+++ trunk/src/main/org/jboss/seam/persistence/HibernatePersistenceProvider.java	2008-01-25 20:36:00 UTC (rev 7240)
@@ -258,8 +258,11 @@
       {
          try
          {
-            return (EntityManager) FULL_TEXT_ENTITYMANAGER_PROXY_CONSTRUCTOR.newInstance( FULL_TEXT_ENTITYMANAGER_CONSTRUCTOR.invoke(null, entityManager) );
-         }
+            return (EntityManager) FULL_TEXT_ENTITYMANAGER_PROXY_CONSTRUCTOR.newInstance(
+					FULL_TEXT_ENTITYMANAGER_CONSTRUCTOR.invoke(null, super.proxyEntityManager( entityManager) )
+					//TODO is double wrapping the right choice? ie to wrap the session?
+			);
+		 }
          catch (Exception e)
          {
             //throw new RuntimeException("could not proxy FullTextEntityManager", e);

Modified: trunk/src/main/org/jboss/seam/persistence/HibernateSessionProxy.java
===================================================================
--- trunk/src/main/org/jboss/seam/persistence/HibernateSessionProxy.java	2008-01-25 17:52:46 UTC (rev 7239)
+++ trunk/src/main/org/jboss/seam/persistence/HibernateSessionProxy.java	2008-01-25 20:36:00 UTC (rev 7240)
@@ -5,6 +5,7 @@
 import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
+import java.util.Set;
 
 import org.hibernate.CacheMode;
 import org.hibernate.Criteria;
@@ -28,8 +29,11 @@
 import org.hibernate.engine.QueryParameters;
 import org.hibernate.engine.SessionFactoryImplementor;
 import org.hibernate.engine.SessionImplementor;
+import org.hibernate.engine.ActionQueue;
+import org.hibernate.engine.EntityEntry;
 import org.hibernate.engine.query.sql.NativeSQLQuerySpecification;
 import org.hibernate.event.EventListeners;
+import org.hibernate.event.EventSource;
 import org.hibernate.impl.CriteriaImpl;
 import org.hibernate.jdbc.Batcher;
 import org.hibernate.jdbc.JDBCContext;
@@ -44,9 +48,11 @@
  * DetachedCriteria casts the Session to SessionImplementor.
  * 
  * @author Gavin King
+ * @author Emmanuel Bernard
+ * FIXME: EventSource should not really be there, remove once HSearch is fixed
  *
  */
-public class HibernateSessionProxy implements Session, SessionImplementor
+public class HibernateSessionProxy implements Session, SessionImplementor, EventSource
 {
    private Session delegate;
 
@@ -405,6 +411,11 @@
       return (SessionImplementor) delegate;
    }
 
+   private EventSource getDelegateEventSource()
+   {
+      return (EventSource) delegate;
+   }
+
    public void afterScrollOperation()
    {
       getDelegateSessionImplementor().afterScrollOperation();
@@ -619,5 +630,40 @@
    {
       getDelegateSessionImplementor().setFetchProfile(arg0);
    }
-   
+
+	public ActionQueue getActionQueue() {
+		return getDelegateEventSource().getActionQueue();
+	}
+
+	public Object instantiate(EntityPersister entityPersister, Serializable serializable) throws HibernateException {
+		return getDelegateEventSource().instantiate( entityPersister, serializable );
+	}
+
+	public void forceFlush(EntityEntry entityEntry) throws HibernateException {
+		getDelegateEventSource().forceFlush( entityEntry );
+	}
+
+	public void merge(String s, Object o, Map map) throws HibernateException {
+		getDelegateEventSource().merge( s, o, map );
+	}
+
+	public void persist(String s, Object o, Map map) throws HibernateException {
+		getDelegateEventSource().persist( s, o, map );
+	}
+
+	public void persistOnFlush(String s, Object o, Map map) {
+		getDelegateEventSource().persistOnFlush( s, o, map );
+	}
+
+	public void refresh(Object o, Map map) throws HibernateException {
+		getDelegateEventSource().refresh( o, map );
+	}
+
+	public void saveOrUpdateCopy(String s, Object o, Map map) throws HibernateException {
+		getDelegateEventSource().saveOrUpdateCopy( s, o , map );
+	}
+
+	public void delete(String s, Object o, boolean b, Set set) {
+		getDelegateEventSource().delete( s, o, b, set );
+	}
 }




More information about the seam-commits mailing list