public CdiEjbBean(final BeanContext beanContext, final WebBeansContext webBeansContext, final AnnotatedType<T> at) { this(beanContext, webBeansContext, beanContext.getManagedClass(), at, new EjbInjectionTargetFactory<T>(at, webBeansContext)); EjbInjectionTargetImpl.class.cast(getInjectionTarget()).setCdiEjbBean(this); }
protected Set<InjectionPoint> createInjectionPoints(final Bean<T> bean) { final Set<InjectionPoint> injectionPoints = new HashSet<InjectionPoint>(); for (final InjectionPoint injectionPoint : getWebBeansContext().getInjectionPointFactory().buildInjectionPoints(bean, getAnnotatedType())) { injectionPoints.add(injectionPoint); } return injectionPoints; }
@Override public InjectionTarget<T> createInjectionTarget(final Bean<T> bean) { final EjbInjectionTargetImpl<T> injectionTarget = new EjbInjectionTargetImpl<T>(getAnnotatedType(), createInjectionPoints(bean), getWebBeansContext()); final InjectionTarget<T> it = getWebBeansContext().getWebBeansUtil().fireProcessInjectionTargetEvent(injectionTarget, getAnnotatedType()).getInjectionTarget(); for (final InjectionPoint ip : it.getInjectionPoints()) { if (ip.getType() != UserTransaction.class) { continue; } if (beanContext.getTransactionType() != TransactionType.BeanManaged) { throw new DefinitionException("@Inject UserTransaction is only valid for BeanManaged beans"); } } if (!EjbInjectionTargetImpl.class.isInstance(it)) { return new EjbInjectionTargetImpl<T>(injectionTarget, it); } return it; }
public CdiEjbBean(final BeanContext beanContext, final WebBeansContext webBeansContext, final AnnotatedType<T> at, final BeanAttributes<T> attributes) { this(beanContext, webBeansContext, beanContext.getManagedClass(), at, new EjbInjectionTargetFactory<T>(beanContext, at, webBeansContext), attributes); EjbInjectionTargetImpl.class.cast(getInjectionTarget()).setCdiEjbBean(this); }
@Override public InjectionTarget<T> createInjectionTarget(final Bean<T> bean) { final EjbInjectionTargetImpl<T> injectionTarget = new EjbInjectionTargetImpl<T>(getAnnotatedType(), createInjectionPoints(bean), getWebBeansContext()); final InjectionTarget<T> it = getWebBeansContext().getWebBeansUtil().fireProcessInjectionTargetEvent(injectionTarget, getAnnotatedType()).getInjectionTarget(); if (!EjbInjectionTargetImpl.class.isInstance(it)) { return new EjbInjectionTargetImpl<T>(injectionTarget, it); } return it; }