Package org.jboss.resteasy.cdi
Class ResteasyCdiExtension
- java.lang.Object
 - 
- org.jboss.resteasy.cdi.ResteasyCdiExtension
 
 
- 
- All Implemented Interfaces:
 javax.enterprise.inject.spi.Extension
public class ResteasyCdiExtension extends Object implements javax.enterprise.inject.spi.Extension
This Extension handles default scopes for discovered JAX-RS components. It also observes ProcessInjectionTarget event and wraps InjectionTargets representing JAX-RS components within JaxrsInjectionTarget. Furthermore, it builds the sessionBeanInterface map which maps Session Bean classes to a local interface. This map is used in CdiInjectorFactory during lookup of Sesion Bean JAX-RS components.- Author:
 - Jozef Hartinger
 
 
- 
- 
Field Summary
Fields Modifier and Type Field Description static AnnotationapplicationScopedLiteralstatic AnnotationrequestScopedLiteral 
- 
Constructor Summary
Constructors Constructor Description ResteasyCdiExtension() 
- 
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description List<Class>getProviders()List<Class>getResources()Map<Class<?>,Type>getSessionBeanInterface()static booleanisCDIActive()<T extends javax.ws.rs.core.Application>
voidobserveApplications(javax.enterprise.inject.spi.ProcessAnnotatedType<T> event, javax.enterprise.inject.spi.BeanManager beanManager)Set a default scope for each CDI bean which is a JAX-RS Application subclass.voidobserveBeforeBeanDiscovery(javax.enterprise.inject.spi.BeforeBeanDiscovery event, javax.enterprise.inject.spi.BeanManager beanManager)Obtain BeanManager reference for future use.<T> voidobserveInjectionTarget(javax.enterprise.inject.spi.ProcessInjectionTarget<T> event)Wrap InjectionTarget of JAX-RS components within JaxrsInjectionTarget which takes care of JAX-RS property injection.<T> voidobserveProviders(javax.enterprise.inject.spi.ProcessAnnotatedType<T> event, javax.enterprise.inject.spi.BeanManager beanManager)Set a default scope for each CDI bean which is a JAX-RS Provider.<T> voidobserveResources(javax.enterprise.inject.spi.ProcessAnnotatedType<T> event, javax.enterprise.inject.spi.BeanManager beanManager)Set a default scope for each CDI bean which is a JAX-RS Resource.<T> voidobserveSessionBeans(javax.enterprise.inject.spi.ProcessSessionBean<T> event)Observes ProcessSessionBean events and creates a (Bean class -> Local interface) map for Session beans with local interfaces.protected <T> javax.enterprise.inject.spi.AnnotatedType<T>wrapAnnotatedType(javax.enterprise.inject.spi.AnnotatedType<T> type, Annotation scope)protected <T> javax.enterprise.inject.spi.InjectionTarget<T>wrapInjectionTarget(javax.enterprise.inject.spi.ProcessInjectionTarget<T> event) 
 - 
 
- 
- 
Field Detail
- 
requestScopedLiteral
public static final Annotation requestScopedLiteral
 
- 
applicationScopedLiteral
public static final Annotation applicationScopedLiteral
 
 - 
 
- 
Method Detail
- 
isCDIActive
public static boolean isCDIActive()
 
- 
observeBeforeBeanDiscovery
public void observeBeforeBeanDiscovery(@Observes javax.enterprise.inject.spi.BeforeBeanDiscovery event, javax.enterprise.inject.spi.BeanManager beanManager)Obtain BeanManager reference for future use.- Parameters:
 event- eventbeanManager- bean manager
 
- 
observeResources
public <T> void observeResources(@Observes javax.enterprise.inject.spi.ProcessAnnotatedType<T> event, javax.enterprise.inject.spi.BeanManager beanManager)Set a default scope for each CDI bean which is a JAX-RS Resource.- Type Parameters:
 T- type- Parameters:
 event- eventbeanManager- bean manager
 
- 
observeProviders
public <T> void observeProviders(@Observes javax.enterprise.inject.spi.ProcessAnnotatedType<T> event, javax.enterprise.inject.spi.BeanManager beanManager)Set a default scope for each CDI bean which is a JAX-RS Provider.- Type Parameters:
 T- type- Parameters:
 event- eventbeanManager- bean manager
 
- 
observeApplications
public <T extends javax.ws.rs.core.Application> void observeApplications(@Observes javax.enterprise.inject.spi.ProcessAnnotatedType<T> event, javax.enterprise.inject.spi.BeanManager beanManager)Set a default scope for each CDI bean which is a JAX-RS Application subclass.- Type Parameters:
 T- type- Parameters:
 event- eventbeanManager- bean manager
 
- 
wrapAnnotatedType
protected <T> javax.enterprise.inject.spi.AnnotatedType<T> wrapAnnotatedType(javax.enterprise.inject.spi.AnnotatedType<T> type, Annotation scope) 
- 
observeInjectionTarget
public <T> void observeInjectionTarget(@Observes javax.enterprise.inject.spi.ProcessInjectionTarget<T> event)Wrap InjectionTarget of JAX-RS components within JaxrsInjectionTarget which takes care of JAX-RS property injection.- Type Parameters:
 T- type- Parameters:
 event- event
 
- 
wrapInjectionTarget
protected <T> javax.enterprise.inject.spi.InjectionTarget<T> wrapInjectionTarget(javax.enterprise.inject.spi.ProcessInjectionTarget<T> event)
 
- 
observeSessionBeans
public <T> void observeSessionBeans(@Observes javax.enterprise.inject.spi.ProcessSessionBean<T> event)Observes ProcessSessionBean events and creates a (Bean class -> Local interface) map for Session beans with local interfaces. This map is necessary since RESTEasy identifies a bean class as JAX-RS components while CDI requires a local interface to be used for lookup.- Type Parameters:
 T- type- Parameters:
 event- event
 
 - 
 
 -