private void addNewBeanFromInjectionPoint(Class<?> rawType, Type baseType) { if (getEjbDescriptors().contains(rawType)) { InternalEjbDescriptor<?> descriptor = getEjbDescriptors().getUnique(rawType); newSessionBeanDescriptorsFromInjectionPoint.put(descriptor, classTransformer.getEnhancedAnnotatedType(rawType, baseType, manager.getId())); } else { newManagedBeanClasses.add(classTransformer.getEnhancedAnnotatedType(rawType, baseType, manager.getId())); } }
@Override public void createClassBeans() { final SetMultimap<Class<?>, SlimAnnotatedType<?>> otherWeldClasses = SetMultimap.newConcurrentSetMultimap(); executor.invokeAllAndCheckForExceptions(new IterativeWorkerTaskFactory<SlimAnnotatedTypeContext<?>>(getEnvironment().getAnnotatedTypes()) { @Override protected void doWork(SlimAnnotatedTypeContext<?> ctx) { createClassBean(ctx.getAnnotatedType(), otherWeldClasses); } }); executor.invokeAllAndCheckForExceptions(new IterativeWorkerTaskFactory<InternalEjbDescriptor<?>>(getEnvironment().getEjbDescriptors()) { @Override protected void doWork(InternalEjbDescriptor<?> descriptor) { if (!getEnvironment().isVetoed(descriptor.getBeanClass()) && !Beans.isVetoed(descriptor.getBeanClass())) { if (descriptor.isSingleton() || descriptor.isStateful() || descriptor.isStateless()) { if (otherWeldClasses.get(descriptor.getBeanClass()) != null) { for (SlimAnnotatedType<?> annotatedType : otherWeldClasses.get(descriptor.getBeanClass())) { EnhancedAnnotatedType<?> weldClass = classTransformer.getEnhancedAnnotatedType(annotatedType); createSessionBean(descriptor, Reflections.<EnhancedAnnotatedType> cast(weldClass)); } } else { createSessionBean(descriptor); } } } } }); }
public void registerCdiInterceptorsForMessageDrivenBeans() { EjbServices ejbServices = getManager().getServices().get(EjbServices.class); for (InternalEjbDescriptor<?> descriptor : getEnvironment().getEjbDescriptors()) { if (descriptor.isMessageDriven()) { EnhancedAnnotatedType<?> type = classTransformer.getEnhancedAnnotatedType(descriptor.getBeanClass(), getManager().getId()); if (!getManager().getInterceptorModelRegistry().containsKey(type.slim())) { InterceptionModelInitializer.of(getManager(), type, null).init(); } InterceptionModel model = getManager().getInterceptorModelRegistry().get(type.slim()); if (model != null) { ejbServices.registerInterceptors(descriptor.delegate(), new InterceptorBindingsAdapter(model)); } } } }
protected void createClassBean(SlimAnnotatedType<?> annotatedType, SetMultimap<Class<?>, SlimAnnotatedType<?>> otherWeldClasses) { boolean managedBeanOrDecorator = !getEnvironment().getEjbDescriptors().contains(annotatedType.getJavaClass()) && Beans.isTypeManagedBeanOrDecoratorOrInterceptor(annotatedType); if (managedBeanOrDecorator) { containerLifecycleEvents.preloadProcessInjectionTarget(annotatedType.getJavaClass());
public void createClassBeans() { SetMultimap<Class<?>, SlimAnnotatedType<?>> otherWeldClasses = SetMultimap.newConcurrentSetMultimap(); for (SlimAnnotatedTypeContext<?> ctx : getEnvironment().getAnnotatedTypes()) { createClassBean(ctx.getAnnotatedType(), otherWeldClasses); } // create session beans for (InternalEjbDescriptor<?> ejbDescriptor : getEnvironment().getEjbDescriptors()) { if (getEnvironment().isVetoed(ejbDescriptor.getBeanClass()) || Beans.isVetoed(ejbDescriptor.getBeanClass())) { continue; } if (ejbDescriptor.isSingleton() || ejbDescriptor.isStateful() || ejbDescriptor.isStateless()) { if (otherWeldClasses.get(ejbDescriptor.getBeanClass()) != null) { for (SlimAnnotatedType<?> annotatedType : otherWeldClasses.get(ejbDescriptor.getBeanClass())) { EnhancedAnnotatedType<?> weldClass = classTransformer.getEnhancedAnnotatedType(annotatedType); createSessionBean(ejbDescriptor, Reflections.<EnhancedAnnotatedType> cast(weldClass)); } } else { createSessionBean(ejbDescriptor); } } } }