Class ResteasyCdiExtension

  • All Implemented Interfaces:
    jakarta.enterprise.inject.spi.Extension

    public class ResteasyCdiExtension
    extends Object
    implements jakarta.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 Detail

      • requestScopedLiteral

        public static final Annotation requestScopedLiteral
      • applicationScopedLiteral

        public static final Annotation applicationScopedLiteral
    • Constructor Detail

      • ResteasyCdiExtension

        public ResteasyCdiExtension()
    • Method Detail

      • isCDIActive

        public static boolean isCDIActive()
      • observeBeforeBeanDiscovery

        public void observeBeforeBeanDiscovery​(@Observes
                                               jakarta.enterprise.inject.spi.BeforeBeanDiscovery event,
                                               jakarta.enterprise.inject.spi.BeanManager beanManager)
        Obtain BeanManager reference for future use.
        Parameters:
        event - event
        beanManager - bean manager
      • observeResources

        public <T> void observeResources​(@Observes
                                         jakarta.enterprise.inject.spi.ProcessAnnotatedType<T> event,
                                         jakarta.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 - event
        beanManager - bean manager
      • observeProviders

        public <T> void observeProviders​(@Observes
                                         jakarta.enterprise.inject.spi.ProcessAnnotatedType<T> event,
                                         jakarta.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 - event
        beanManager - bean manager
      • observeApplications

        public <T extends jakarta.ws.rs.core.Application> void observeApplications​(@Observes
                                                                                   jakarta.enterprise.inject.spi.ProcessAnnotatedType<T> event,
                                                                                   jakarta.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 - event
        beanManager - bean manager
      • wrapAnnotatedType

        protected <T> jakarta.enterprise.inject.spi.AnnotatedType<T> wrapAnnotatedType​(jakarta.enterprise.inject.spi.AnnotatedType<T> type,
                                                                                       Annotation scope)
      • observeInjectionTarget

        public <T> void observeInjectionTarget​(@Observes
                                               jakarta.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> jakarta.enterprise.inject.spi.InjectionTarget<T> wrapInjectionTarget​(jakarta.enterprise.inject.spi.ProcessInjectionTarget<T> event)
      • observeSessionBeans

        public <T> void observeSessionBeans​(@Observes
                                            jakarta.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
      • getSessionBeanInterface

        public Map<Class<?>,​Type> getSessionBeanInterface()
      • getProviders

        public List<Class> getProviders()
      • getResources

        public List<Class> getResources()