public <T> ManagedBean<T> defineManagedBeanWithoutFireEvents(AnnotatedType<T> type)
{
BeanAttributesImpl<T> beanAttributes = BeanAttributesBuilder.forContext(webBeansContext).newBeanAttibutes(type).build();
ManagedBeanBuilder<T, ManagedBean<T>> managedBeanCreator = new ManagedBeanBuilder<>(webBeansContext, type, beanAttributes, false);
setInjectionTargetBeanEnableFlag(managedBeanCreator.getBean());
ManagedBean<T> managedBean = managedBeanCreator.getBean();
new ProducerMethodBeansBuilder(managedBean.getWebBeansContext(), managedBean.getAnnotatedType()).defineProducerMethods(
managedBean, new ProducerFieldBeansBuilder(managedBean.getWebBeansContext(), managedBean.getAnnotatedType()).defineProducerFields(managedBean));
new ObserverMethodsBuilder<>(webBeansContext, managedBean.getAnnotatedType()).defineObserverMethods(managedBean);
if (managedBean.getProducer() instanceof AbstractProducer)
{
AbstractProducer<T> producer = (AbstractProducer<T>)managedBean.getProducer();
producer.defineInterceptorStack(managedBean, managedBean.getAnnotatedType(), webBeansContext);
}
return managedBean;
}