[jboss-cvs] JBossAS SVN: r110382 - in projects/ejb3/trunk/core: src/main/java/org/jboss/ejb3 and 1 other directories.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Sun Jan 16 14:02:13 EST 2011


Author: smarlow at redhat.com
Date: 2011-01-16 14:02:12 -0500 (Sun, 16 Jan 2011)
New Revision: 110382

Modified:
   projects/ejb3/trunk/core/pom.xml
   projects/ejb3/trunk/core/src/main/java/org/jboss/ejb3/EJBContainer.java
   projects/ejb3/trunk/core/src/main/java/org/jboss/ejb3/stateful/EJB3XPCResolver.java
Log:
EJBTHREE-2232 JPA upgrade and use Switchboard PCRP

Modified: projects/ejb3/trunk/core/pom.xml
===================================================================
--- projects/ejb3/trunk/core/pom.xml	2011-01-15 01:36:38 UTC (rev 110381)
+++ projects/ejb3/trunk/core/pom.xml	2011-01-16 19:02:12 UTC (rev 110382)
@@ -753,7 +753,7 @@
     <dependency>
       <groupId>org.jboss.jpa</groupId>
       <artifactId>jboss-jpa-deployers</artifactId>
-      <version>1.0.2-alpha-1</version>
+      <version>3.0.0-alpha-4</version>
       <exclusions>
         <exclusion>
           <groupId>org.jboss</groupId>

Modified: projects/ejb3/trunk/core/src/main/java/org/jboss/ejb3/EJBContainer.java
===================================================================
--- projects/ejb3/trunk/core/src/main/java/org/jboss/ejb3/EJBContainer.java	2011-01-15 01:36:38 UTC (rev 110381)
+++ projects/ejb3/trunk/core/src/main/java/org/jboss/ejb3/EJBContainer.java	2011-01-16 19:02:12 UTC (rev 110382)
@@ -768,7 +768,7 @@
 //         handlers.add(new EJBHandler<Environment>());
          handlers.add(new DependsHandler<Environment>());
          handlers.add(new JndiInjectHandler<Environment>());
-         handlers.add(new PersistenceContextHandler<Environment>());
+         //handlers.add(new PersistenceContextHandler<Environment>());
       }
 
       ClassLoader old = Thread.currentThread().getContextClassLoader();

Modified: projects/ejb3/trunk/core/src/main/java/org/jboss/ejb3/stateful/EJB3XPCResolver.java
===================================================================
--- projects/ejb3/trunk/core/src/main/java/org/jboss/ejb3/stateful/EJB3XPCResolver.java	2011-01-15 01:36:38 UTC (rev 110381)
+++ projects/ejb3/trunk/core/src/main/java/org/jboss/ejb3/stateful/EJB3XPCResolver.java	2011-01-16 19:02:12 UTC (rev 110382)
@@ -21,12 +21,15 @@
  */
 package org.jboss.ejb3.stateful;
 
-import java.util.List;
-
 import javax.persistence.EntityManager;
 
+import org.jboss.jpa.deployment.ManagedEntityManagerFactory;
+import org.jboss.jpa.deployment.PersistenceUnitDeployment;
+import org.jboss.jpa.spi.PersistenceUnitRegistry;
 import org.jboss.jpa.spi.XPCResolver;
 
+import java.util.List;
+
 /**
  * EJB 3 Stateful beans are the only XPC aware components at the moment.
  * 
@@ -41,17 +44,38 @@
    public EntityManager getExtendedPersistenceContext(String kernelName)
    {
       StatefulBeanContext beanContext = StatefulBeanContext.currentBean.get();
-      
-      EntityManager em;
+
       if (beanContext != null)
       {
-         List<StatefulBeanContext> beanContexts = StatefulBeanContext.currentBean.getList();
+         /**
+          * Look for XPC in current bean set.
+          * Create the XPC (EM) if not found (and save in bean context for next lookup).
+          * Propagate created XPC as required (7.6.2.1 Inheritance of Extended Persistence Context
+          */
+         EntityManager em = null;
+         List <StatefulBeanContext> beanContexts = StatefulBeanContext.currentBean.getList();
          for( StatefulBeanContext bc : beanContexts)
          {
             em = bc.getExtendedPersistenceContext(kernelName);
             if (em != null)
                return em;
          }
+
+         ManagedEntityManagerFactory factory=
+            ((PersistenceUnitDeployment) PersistenceUnitRegistry.getPersistenceUnit(kernelName)).getManagedFactory();
+         if (factory != null)
+         {
+            em = factory.createEntityManager();
+            if (em != null)
+            {
+               for( StatefulBeanContext bc : beanContexts)
+               {
+                  bc.addExtendedPersistenceContext(kernelName, em);
+               }
+            }
+         }
+
+         return em;
       }
       return null;
    }



More information about the jboss-cvs-commits mailing list