Search in sources :

Example 1 with InjectionTargetFactory

use of javax.enterprise.inject.spi.InjectionTargetFactory in project HotswapAgent by HotswapProjects.

the class BeanClassRefreshAgent method createAnnotatedTypeForExistingBeanClass.

@SuppressWarnings({ "rawtypes", "unchecked" })
private static void createAnnotatedTypeForExistingBeanClass(BeanManagerImpl beanManager, Class<?> beanClass, InjectionTargetBean bean) {
    WebBeansContext wbc = beanManager.getWebBeansContext();
    AnnotatedElementFactory annotatedElementFactory = wbc.getAnnotatedElementFactory();
    // Clear AnnotatedElementFactory caches
    annotatedElementFactory.clear();
    AnnotatedType annotatedType = annotatedElementFactory.newAnnotatedType(beanClass);
    ReflectionHelper.set(bean, InjectionTargetBean.class, "annotatedType", annotatedType);
    // Updated members that were set by bean attributes
    BeanAttributesImpl attributes = BeanAttributesBuilder.forContext(wbc).newBeanAttibutes(annotatedType).build();
    ReflectionHelper.set(bean, BeanAttributesImpl.class, "types", attributes.getTypes());
    ReflectionHelper.set(bean, BeanAttributesImpl.class, "qualifiers", attributes.getQualifiers());
    ReflectionHelper.set(bean, BeanAttributesImpl.class, "scope", attributes.getScope());
    ReflectionHelper.set(bean, BeanAttributesImpl.class, "name", attributes.getName());
    ReflectionHelper.set(bean, BeanAttributesImpl.class, "stereotypes", attributes.getStereotypes());
    ReflectionHelper.set(bean, BeanAttributesImpl.class, "alternative", attributes.isAlternative());
    InjectionTargetFactory factory = new InjectionTargetFactoryImpl(annotatedType, bean.getWebBeansContext());
    InjectionTarget injectionTarget = factory.createInjectionTarget(bean);
    ReflectionHelper.set(bean, InjectionTargetBean.class, "injectionTarget", injectionTarget);
    LOGGER.debug("New annotated type created for bean '{}'", beanClass.getName());
}
Also used : AnnotatedType(javax.enterprise.inject.spi.AnnotatedType) WebBeansContext(org.apache.webbeans.config.WebBeansContext) BeanAttributesImpl(org.apache.webbeans.component.BeanAttributesImpl) InjectionTargetFactory(javax.enterprise.inject.spi.InjectionTargetFactory) InjectionTarget(javax.enterprise.inject.spi.InjectionTarget) AnnotatedElementFactory(org.apache.webbeans.portable.AnnotatedElementFactory) InjectionTargetFactoryImpl(org.apache.webbeans.container.InjectionTargetFactoryImpl)

Aggregations

AnnotatedType (javax.enterprise.inject.spi.AnnotatedType)1 InjectionTarget (javax.enterprise.inject.spi.InjectionTarget)1 InjectionTargetFactory (javax.enterprise.inject.spi.InjectionTargetFactory)1 BeanAttributesImpl (org.apache.webbeans.component.BeanAttributesImpl)1 WebBeansContext (org.apache.webbeans.config.WebBeansContext)1 InjectionTargetFactoryImpl (org.apache.webbeans.container.InjectionTargetFactoryImpl)1 AnnotatedElementFactory (org.apache.webbeans.portable.AnnotatedElementFactory)1