[seam-commits] Seam SVN: r13609 - in modules/persistence/trunk/impl/src: test/java/org/jboss/seam/persistence/test and 1 other directory.
seam-commits at lists.jboss.org
seam-commits at lists.jboss.org
Thu Aug 12 19:07:25 EDT 2010
Author: swd847
Date: 2010-08-12 19:07:24 -0400 (Thu, 12 Aug 2010)
New Revision: 13609
Modified:
modules/persistence/trunk/impl/src/main/java/org/jboss/seam/persistence/AbstractManagedPersistenceContextBeanLifecycle.java
modules/persistence/trunk/impl/src/main/java/org/jboss/seam/persistence/ManagedPersistenceContextBeanLifecycle.java
modules/persistence/trunk/impl/src/main/java/org/jboss/seam/persistence/ManagedPersistenceContextExtension.java
modules/persistence/trunk/impl/src/test/java/org/jboss/seam/persistence/test/ManagedPersistenceContextELTest.java
Log:
change classloader for the managed persistence context proxy
Modified: modules/persistence/trunk/impl/src/main/java/org/jboss/seam/persistence/AbstractManagedPersistenceContextBeanLifecycle.java
===================================================================
--- modules/persistence/trunk/impl/src/main/java/org/jboss/seam/persistence/AbstractManagedPersistenceContextBeanLifecycle.java 2010-08-12 21:50:30 UTC (rev 13608)
+++ modules/persistence/trunk/impl/src/main/java/org/jboss/seam/persistence/AbstractManagedPersistenceContextBeanLifecycle.java 2010-08-12 23:07:24 UTC (rev 13609)
@@ -48,9 +48,9 @@
public abstract class AbstractManagedPersistenceContextBeanLifecycle implements BeanLifecycle<EntityManager>
{
- static final Class<?> proxyClass = Proxy.getProxyClass(PersistenceContext.class.getClassLoader(), EntityManager.class, Serializable.class, PersistenceContext.class);
+ private final Class<?> proxyClass;
- static final Constructor<?> proxyConstructor;
+ private final Constructor<?> proxyConstructor;
private final BeanManager manager;
@@ -58,13 +58,11 @@
private PersistenceContexts persistenceContexts;
- protected AbstractManagedPersistenceContextBeanLifecycle(BeanManager manager)
+ protected AbstractManagedPersistenceContextBeanLifecycle(BeanManager manager, ClassLoader loader)
{
this.manager = manager;
- }
+ proxyClass = Proxy.getProxyClass(PersistenceContext.class.getClassLoader(), EntityManager.class, Serializable.class, PersistenceContext.class);
- static
- {
try
{
proxyConstructor = proxyClass.getConstructor(InvocationHandler.class);
Modified: modules/persistence/trunk/impl/src/main/java/org/jboss/seam/persistence/ManagedPersistenceContextBeanLifecycle.java
===================================================================
--- modules/persistence/trunk/impl/src/main/java/org/jboss/seam/persistence/ManagedPersistenceContextBeanLifecycle.java 2010-08-12 21:50:30 UTC (rev 13608)
+++ modules/persistence/trunk/impl/src/main/java/org/jboss/seam/persistence/ManagedPersistenceContextBeanLifecycle.java 2010-08-12 23:07:24 UTC (rev 13609)
@@ -43,9 +43,9 @@
private EntityManagerFactory emf;
- public ManagedPersistenceContextBeanLifecycle(Set<Annotation> qualifiers, BeanManager manager)
+ public ManagedPersistenceContextBeanLifecycle(Set<Annotation> qualifiers, ClassLoader loader, BeanManager manager)
{
- super(manager);
+ super(manager, loader);
this.qualifiers = new Annotation[qualifiers.size()];
int i = 0;
for (Annotation a : qualifiers)
Modified: modules/persistence/trunk/impl/src/main/java/org/jboss/seam/persistence/ManagedPersistenceContextExtension.java
===================================================================
--- modules/persistence/trunk/impl/src/main/java/org/jboss/seam/persistence/ManagedPersistenceContextExtension.java 2010-08-12 21:50:30 UTC (rev 13608)
+++ modules/persistence/trunk/impl/src/main/java/org/jboss/seam/persistence/ManagedPersistenceContextExtension.java 2010-08-12 23:07:24 UTC (rev 13609)
@@ -98,7 +98,7 @@
{
modifiedType.removeFromField(f.getJavaMember(), scope);
}
- registerManagedPersistenceContext(qualifiers, scope, manager);
+ registerManagedPersistenceContext(qualifiers, scope, manager, event.getAnnotatedType().getJavaClass().getClassLoader());
}
// now look for producer methods that produce an EntityManagerFactory.
// This allows the user to manually configure an EntityManagerFactory
@@ -110,7 +110,7 @@
}
}
- public void registerManagedPersistenceContext(Set<Annotation> qualifiers, Class<? extends Annotation> scope, BeanManager manager)
+ public void registerManagedPersistenceContext(Set<Annotation> qualifiers, Class<? extends Annotation> scope, BeanManager manager, ClassLoader loader)
{
// create the new bean to be registerd later
AnnotatedTypeBuilder<EntityManager> typeBuilder = new AnnotatedTypeBuilder().setJavaClass(EntityManager.class);
@@ -118,7 +118,7 @@
builder.setQualifiers(qualifiers);
builder.setScope(scope);
builder.getTypes().add(PersistenceContext.class);
- builder.setBeanLifecycle(new ManagedPersistenceContextBeanLifecycle(qualifiers, manager));
+ builder.setBeanLifecycle(new ManagedPersistenceContextBeanLifecycle(qualifiers, loader, manager));
beans.add(builder.create());
}
Modified: modules/persistence/trunk/impl/src/test/java/org/jboss/seam/persistence/test/ManagedPersistenceContextELTest.java
===================================================================
--- modules/persistence/trunk/impl/src/test/java/org/jboss/seam/persistence/test/ManagedPersistenceContextELTest.java 2010-08-12 21:50:30 UTC (rev 13608)
+++ modules/persistence/trunk/impl/src/test/java/org/jboss/seam/persistence/test/ManagedPersistenceContextELTest.java 2010-08-12 23:07:24 UTC (rev 13609)
@@ -35,6 +35,7 @@
import org.jboss.seam.persistence.transaction.DefaultTransaction;
import org.jboss.seam.persistence.transaction.SeamTransaction;
import org.jboss.seam.persistence.transaction.TransactionExtension;
+import org.jboss.seam.persistence.util.EjbApi;
import org.jboss.seam.transactions.test.util.ArtifactNames;
import org.jboss.seam.transactions.test.util.HelloService;
import org.jboss.seam.transactions.test.util.Hotel;
@@ -59,7 +60,8 @@
war.addLibraries(MavenArtifactResolver.resolve(ArtifactNames.SEAM_PERSISTENCE_API));
war.addPackage(TransactionExtension.class.getPackage());
war.addPackage(PersistenceContextExtension.class.getPackage());
- war.addClasses(ManagedPersistenceContextELTest.class, Hotel.class, ManagedPersistenceContextProvider.class, HotelNameProducer.class, HelloService.class);
+ war.addPackage(TransactionExtension.class.getPackage());
+ war.addClasses(ManagedPersistenceContextELTest.class, Hotel.class, ManagedPersistenceContextProvider.class, HotelNameProducer.class, HelloService.class, EjbApi.class);
war.addWebResource("META-INF/persistence.xml", "classes/META-INF/persistence.xml");
war.addWebResource(new ByteArrayAsset(new byte[0]), "beans.xml");
war.addWebResource("META-INF/services/javax.enterprise.inject.spi.Extension", "classes/META-INF/services/javax.enterprise.inject.spi.Extension");
More information about the seam-commits
mailing list