public void createNewBeans() { for (EnhancedAnnotatedType<?> clazz : getEnvironment().getNewManagedBeanClasses()) { createNewManagedBean(clazz); } for (Entry<InternalEjbDescriptor<?>, EnhancedAnnotatedType<?>> entry : getEnvironment().getNewSessionBeanDescriptorsFromInjectionPoint().entrySet()) { InternalEjbDescriptor<?> descriptor = entry.getKey(); createNewSessionBean(descriptor, BeanAttributesFactory.forSessionBean(entry.getValue(), descriptor, getManager()), entry.getValue()); } }
protected <T> SessionBean<T> createSessionBean(InternalEjbDescriptor<T> descriptor, EnhancedAnnotatedType<T> weldClass) { // TODO Don't create enterprise bean if it has no local interfaces! BeanAttributes<T> attributes = BeanAttributesFactory.forSessionBean(weldClass, descriptor, getManager()); SessionBean<T> bean = SessionBean.of(attributes, descriptor, manager, weldClass); getEnvironment().addSessionBean(bean); return bean; }
@Override public <T> BeanAttributes<T> createBeanAttributes(AnnotatedType<T> type) { EnhancedAnnotatedType<T> clazz = services.get(ClassTransformer.class).getEnhancedAnnotatedType(type, getId()); if (services.get(EjbDescriptors.class).contains(type.getJavaClass())) { return BeanAttributesFactory.forSessionBean(clazz, services.get(EjbDescriptors.class).getUnique(clazz.getJavaClass()), this); } return BeanAttributesFactory.forBean(clazz, this); }