Skip to content

Commit

Permalink
Small update to SPI, remove injectionPointFactory.push/pop for common…
Browse files Browse the repository at this point in the history
… annotations injections

git-svn-id: http://anonsvn.jboss.org/repos/weld/ri/trunk@826 1c488680-804c-0410-94cd-c6b725194a0e
  • Loading branch information
pmuir committed Jan 8, 2009
1 parent 7b4458c commit e9d4733
Show file tree
Hide file tree
Showing 2 changed files with 6 additions and 11 deletions.
Expand Up @@ -2,7 +2,7 @@

import java.lang.annotation.Annotation;

import javax.persistence.EntityManagerFactory;
import javax.persistence.EntityManager;
import javax.webbeans.InjectionPoint;

import org.jboss.webbeans.resources.spi.Naming;
Expand All @@ -20,20 +20,20 @@ public interface EjbResolver
public static final String PROPERTY_NAME = EjbResolver.class.getName();

/**
* Resolve the JNDI name for the @EJB injection point
* Resolve the value for the given @EJB injection point
*
* @param injectionPoint The injection point metadata
* @return the JNDI name
*/
public Object resolveEjb(InjectionPoint injectionPoint, Naming naming);

/**
* Resolve the JNDI name for the @PersistenceContext injection point
* Resolve the value for the given @PersistenceContext injection point
*
* @param injectionPoint The injection point metadata
* @return the JNDI name
*/
public EntityManagerFactory resolvePersistenceUnit(InjectionPoint injectionPoint, Naming naming);
public Object resolvePersistenceUnit(InjectionPoint injectionPoint, Naming naming);

public Class<? extends Annotation> getEJBAnnotation();

Expand Down
Expand Up @@ -23,7 +23,6 @@

import javax.annotation.PostConstruct;
import javax.annotation.PreDestroy;
import javax.persistence.EntityManagerFactory;
import javax.webbeans.DefinitionException;
import javax.webbeans.Initializer;
import javax.webbeans.InjectionPoint;
Expand Down Expand Up @@ -222,14 +221,11 @@ protected void callInitializers(T instance)
*/
protected void injectEjbAndCommonFields(T beanInstance)
{
InjectionPointFactory injectionPointFactory = manager.getInjectionPointFactory();
for (AnnotatedField<?> field : annotatedItem.getAnnotatedFields(manager.getEjbResolver().getEJBAnnotation()))
{
injectionPointFactory.pushInjectionPoint(field);
InjectionPoint injectionPoint = new InjectionPointImpl(field, this, beanInstance);
Object ejbInstance = manager.getEjbResolver().resolveEjb(injectionPoint, manager.getNaming());
field.inject(beanInstance, ejbInstance);
injectionPointFactory.popInjectionPoint();
}

for (AnnotatedMethod<?> method : annotatedItem.getAnnotatedMethods(manager.getEjbResolver().getEJBAnnotation()))
Expand All @@ -242,9 +238,8 @@ protected void injectEjbAndCommonFields(T beanInstance)
for (AnnotatedField<?> field : annotatedItem.getAnnotatedFields(manager.getEjbResolver().getPersistenceContextAnnotation()))
{
InjectionPoint injectionPoint = new InjectionPointImpl(field, this, beanInstance);
EntityManagerFactory entityManagerFactory = manager.getEjbResolver().resolvePersistenceUnit(injectionPoint, manager.getNaming());
field.inject(beanInstance, entityManagerFactory.createEntityManager());
injectionPointFactory.popInjectionPoint();
Object persistenceContext = manager.getEjbResolver().resolvePersistenceUnit(injectionPoint, manager.getNaming());
field.inject(beanInstance, persistenceContext);
}
}

Expand Down

0 comments on commit e9d4733

Please sign in to comment.