[jboss-cvs] JBossAS SVN: r91661 - projects/webbeans-ri-int/trunk/ejb/src/main/java/org/jboss/webbeans/integration/persistence.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Sat Jul 25 18:28:35 EDT 2009
Author: pete.muir at jboss.org
Date: 2009-07-25 18:28:35 -0400 (Sat, 25 Jul 2009)
New Revision: 91661
Modified:
projects/webbeans-ri-int/trunk/ejb/src/main/java/org/jboss/webbeans/integration/persistence/JBossJpaServices.java
Log:
Add support for injecting PUs
Modified: projects/webbeans-ri-int/trunk/ejb/src/main/java/org/jboss/webbeans/integration/persistence/JBossJpaServices.java
===================================================================
--- projects/webbeans-ri-int/trunk/ejb/src/main/java/org/jboss/webbeans/integration/persistence/JBossJpaServices.java 2009-07-25 17:01:06 UTC (rev 91660)
+++ projects/webbeans-ri-int/trunk/ejb/src/main/java/org/jboss/webbeans/integration/persistence/JBossJpaServices.java 2009-07-25 22:28:35 UTC (rev 91661)
@@ -9,6 +9,7 @@
import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.PersistenceContext;
+import javax.persistence.PersistenceUnit;
import org.jboss.deployers.structure.spi.DeploymentUnit;
import org.jboss.ejb3.common.deployers.spi.AttachmentNames;
@@ -53,7 +54,7 @@
}
try
{
- return resolvePersistenceContext((injectionPoint.getAnnotated().getAnnotation(PersistenceContext.class).unitName()));
+ return resolvePersistenceUnit((injectionPoint.getAnnotated().getAnnotation(PersistenceContext.class).unitName())).createEntityManager();
}
catch (IllegalStateException e)
{
@@ -61,12 +62,27 @@
}
}
- public EntityManager resolvePersistenceContext(String unitName)
+ public EntityManagerFactory resolvePersistenceUnit(InjectionPoint injectionPoint)
{
- return resolvePersistenceUnit(unitName).createEntityManager();
+ if (!injectionPoint.getAnnotated().isAnnotationPresent(PersistenceUnit.class))
+ {
+ throw new IllegalArgumentException("No @PersistenceUnit annotation found on injection point " + injectionPoint);
+ }
+ if (injectionPoint.getMember() instanceof Method && ((Method) injectionPoint.getMember()).getParameterTypes().length != 1)
+ {
+ throw new IllegalArgumentException("Injection point represents a method which doesn't follow JavaBean conventions (must have exactly one parameter) " + injectionPoint);
+ }
+ try
+ {
+ return resolvePersistenceUnit((injectionPoint.getAnnotated().getAnnotation(PersistenceUnit.class).unitName()));
+ }
+ catch (IllegalStateException e)
+ {
+ throw new IllegalStateException("Unable to resolve persistence context for " + injectionPoint);
+ }
}
- public EntityManagerFactory resolvePersistenceUnit(String unitName)
+ private EntityManagerFactory resolvePersistenceUnit(String unitName)
{
if (unitName == null)
{
More information about the jboss-cvs-commits
mailing list