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();