You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by gp...@apache.org on 2010/10/17 21:32:21 UTC

svn commit: r1023566 - in /myfaces/extensions/cdi/trunk/jee-modules/jpa-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/jpa/impl: PersistenceContextMetaEntry.java TransactionalInterceptor.java

Author: gpetracek
Date: Sun Oct 17 19:32:20 2010
New Revision: 1023566

URL: http://svn.apache.org/viewvc?rev=1023566&view=rev
Log:
EXTCDI-4 support for multiple extended persistence contexts (in combination with add-ons)

Modified:
    myfaces/extensions/cdi/trunk/jee-modules/jpa-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/jpa/impl/PersistenceContextMetaEntry.java
    myfaces/extensions/cdi/trunk/jee-modules/jpa-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/jpa/impl/TransactionalInterceptor.java

Modified: myfaces/extensions/cdi/trunk/jee-modules/jpa-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/jpa/impl/PersistenceContextMetaEntry.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/cdi/trunk/jee-modules/jpa-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/jpa/impl/PersistenceContextMetaEntry.java?rev=1023566&r1=1023565&r2=1023566&view=diff
==============================================================================
--- myfaces/extensions/cdi/trunk/jee-modules/jpa-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/jpa/impl/PersistenceContextMetaEntry.java (original)
+++ myfaces/extensions/cdi/trunk/jee-modules/jpa-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/jpa/impl/PersistenceContextMetaEntry.java Sun Oct 17 19:32:20 2010
@@ -27,26 +27,33 @@ class PersistenceContextMetaEntry
 
     private String fieldName;
 
+    private String unitName;
     private boolean extended;
 
-    PersistenceContextMetaEntry(Class sourceClass, String fieldName, boolean extended)
+    PersistenceContextMetaEntry(Class sourceClass, String fieldName, String unitName, boolean extended)
     {
         this.sourceClass = sourceClass;
         this.fieldName = fieldName;
+        this.unitName = unitName;
         this.extended = extended;
     }
 
-    public Class getSourceClass()
+    Class getSourceClass()
     {
         return sourceClass;
     }
 
-    public String getFieldName()
+    String getFieldName()
     {
         return fieldName;
     }
 
-    public boolean isExtended()
+    String getUnitName()
+    {
+        return unitName;
+    }
+
+    boolean isExtended()
     {
         return extended;
     }

Modified: myfaces/extensions/cdi/trunk/jee-modules/jpa-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/jpa/impl/TransactionalInterceptor.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/cdi/trunk/jee-modules/jpa-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/jpa/impl/TransactionalInterceptor.java?rev=1023566&r1=1023565&r2=1023566&view=diff
==============================================================================
--- myfaces/extensions/cdi/trunk/jee-modules/jpa-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/jpa/impl/TransactionalInterceptor.java (original)
+++ myfaces/extensions/cdi/trunk/jee-modules/jpa-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/jpa/impl/TransactionalInterceptor.java Sun Oct 17 19:32:20 2010
@@ -119,10 +119,12 @@ public class TransactionalInterceptor im
         EntityManagerEntry entityManagerEntry = null;
         EntityManager entityManager;
 
+        String entityManagerId = q.getName();
         if (bean == null)
         {
             entityManagerEntry = tryToFindEntityManagerEntryInTarget(context.getTarget());
             entityManager = entityManagerEntry.getEntityManager();
+            entityManagerId = entityManagerEntry.getPersistenceContextEntry().getUnitName();
 
             //might happen due to special add-ons - don't change it!
             if(entityManager == null)
@@ -141,7 +143,7 @@ public class TransactionalInterceptor im
         {
             ems.set(new HashMap<String, EntityManager>());
         }
-        ems.get().put(q.getName(), entityManager);
+        ems.get().put(entityManagerId, entityManager);
         // log.info("growing: " + ems.get().size());
 
         if (refCount.get() == null)
@@ -320,7 +322,8 @@ public class TransactionalInterceptor im
 
             if(persistenceContextEntry == null)
             {
-                mapping.put(key, new PersistenceContextMetaEntry(Object.class, noFieldMarker, false));
+                mapping.put(key, new PersistenceContextMetaEntry(
+                        Object.class, noFieldMarker, Default.class.getName(), false));
                 return null;
             }
 
@@ -378,6 +381,7 @@ public class TransactionalInterceptor im
                     return new PersistenceContextMetaEntry(
                             currentParamClass,
                             currentField.getName(),
+                            persistenceContext.unitName(),
                             PersistenceContextType.EXTENDED.equals(persistenceContext.type()));
                 }
             }