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/14 21:46:05 UTC

svn commit: r1022681 - 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: Thu Oct 14 19:46:05 2010
New Revision: 1022681

URL: http://svn.apache.org/viewvc?rev=1022681&view=rev
Log:
EXTCDI-4 support for 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=1022681&r1=1022680&r2=1022681&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 Thu Oct 14 19:46:05 2010
@@ -23,22 +23,30 @@ package org.apache.myfaces.extensions.cd
  */
 class PersistenceContextMetaEntry
 {
+    private Class sourceClass;
+
     private String fieldName;
 
     private boolean extended;
 
-    PersistenceContextMetaEntry(String fieldName, boolean extended)
+    PersistenceContextMetaEntry(Class sourceClass, String fieldName, boolean extended)
     {
+        this.sourceClass = sourceClass;
         this.fieldName = fieldName;
         this.extended = extended;
     }
 
-    String getFieldName()
+    public Class getSourceClass()
+    {
+        return sourceClass;
+    }
+
+    public String getFieldName()
     {
         return fieldName;
     }
 
-    boolean isExtended()
+    public 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=1022681&r1=1022680&r2=1022681&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 Thu Oct 14 19:46:05 2010
@@ -320,7 +320,7 @@ public class TransactionalInterceptor im
 
             if(persistenceContextEntry == null)
             {
-                mapping.put(key, new PersistenceContextMetaEntry(noFieldMarker, false));
+                mapping.put(key, new PersistenceContextMetaEntry(Object.class, noFieldMarker, false));
                 return null;
             }
 
@@ -330,7 +330,8 @@ public class TransactionalInterceptor im
         Field entityManagerField;
         try
         {
-            entityManagerField = target.getClass().getDeclaredField(persistenceContextEntry.getFieldName());
+            entityManagerField = persistenceContextEntry.getSourceClass()
+                    .getDeclaredField(persistenceContextEntry.getFieldName());
         }
         catch (NoSuchFieldException e)
         {
@@ -369,13 +370,15 @@ public class TransactionalInterceptor im
         PersistenceContext persistenceContext;
         while (currentParamClass != null && !Object.class.getName().equals(currentParamClass.getName()))
         {
-            for(Field currentField : target.getDeclaredFields())
+            for(Field currentField : currentParamClass.getDeclaredFields())
             {
                 persistenceContext = currentField.getAnnotation(PersistenceContext.class);
                 if(persistenceContext != null)
                 {
                     return new PersistenceContextMetaEntry(
-                            currentField.getName(), PersistenceContextType.EXTENDED.equals(persistenceContext.type()));
+                            currentParamClass,
+                            currentField.getName(),
+                            PersistenceContextType.EXTENDED.equals(persistenceContext.type()));
                 }
             }
             currentParamClass = currentParamClass.getSuperclass();