private static void checkProducerMethods(Set<ProducerMethodBean<?>> producerMethodBeans, BaseEjbBean<?> bean) { for(ProducerMethodBean<?> producerMethodBean : producerMethodBeans) { Method producerMethod = producerMethodBean.getCreatorMethod(); if(!ClassUtil.isStatic(producerMethod.getModifiers())) { if(!isBusinessMethod(producerMethod, bean)) { throw new WebBeansConfigurationException("Producer Method Bean must be business method of session bean : " + bean); } } } }
@Override protected <P> ProducerMethodBean<T> createBean(InjectionTargetBean<P> parent, Class<T> beanClass) { AnnotatedMethod<P> annotatedMethod = (AnnotatedMethod<P>) annotatedMember; ProducerMethodBean<T> producerMethodBean = new ProducerMethodBean<>(parent, beanAttributes, beanClass, new MethodProducerFactory<>(annotatedMethod, parent, parent.getWebBeansContext())); return producerMethodBean; }
@Override public T create(CreationalContext<T> creationalContext) { T instance = super.create(creationalContext); // Check null instance checkNullInstance(instance, creatorMethod.getName()); // Check scope type checkScopeType(creatorMethod.getName(), instance); return instance; }
if (!producerMethodBean.isEnabled()) if (!otherProducerMethodBean.isEnabled()) if (producerMethodBean.getBeanClass().equals(otherProducerMethodBean.getBeanClass())) if (otherProducerMethodBean.getBeanClass().isAssignableFrom(producerMethodBean.getBeanClass())) if (producerMethodBean.getCreatorMethod().getName().equals(otherProducerMethodBean.getCreatorMethod().getName())) otherProducerMethodBean.setEnabled(false);
for (ProducerMethodBean producerBean : producerBeans) if (producerBean.isSpecializedBean()) Method creatorMethod = producerBean.getCreatorMethod();
public void fireProcessProducerMethodBeanEvent(Map<ProducerMethodBean<?>, AnnotatedMethod<?>> annotatedMethods, AnnotatedType<?> annotatedType) { WebBeansContext webBeansContext = this.webBeansContext; AnnotationManager annotationManager = webBeansContext.getAnnotationManager(); for(Map.Entry<ProducerMethodBean<?>, AnnotatedMethod<?>> beanEntry : annotatedMethods.entrySet()) { ProducerMethodBean<?> bean = beanEntry.getKey(); AnnotatedMethod<?> annotatedMethod = beanEntry.getValue(); Annotation[] annotationsFromSet = AnnotationUtil.asArray(bean.getQualifiers()); Method disposal = annotationManager.getDisposalWithGivenAnnotatedMethod(annotatedType, bean.getReturnType(), annotationsFromSet); AnnotatedMethod<?> disposalAnnotated; GProcessProducerMethod processProducerMethodEvent; if(disposal != null) { disposalAnnotated = webBeansContext.getAnnotatedElementFactory().newAnnotatedMethod(disposal, annotatedType); processProducerMethodEvent = new GProcessProducerMethod(bean,annotatedMethod, disposalAnnotated.getParameters().get(0)); } else { processProducerMethodEvent = new GProcessProducerMethod(bean,annotatedMethod,null); } //Fires ProcessProducer webBeansContext.getBeanManagerImpl().fireEvent(processProducerMethodEvent, true, AnnotationUtil.EMPTY_ANNOTATION_ARRAY); processProducerMethodEvent.setStarted(); } }
type = ((ProducerMethodBean<?>)bean).getCreatorMethod().getGenericReturnType();
private static void validateProduceMethods(final CdiEjbBean<?> bean, final Set<ProducerMethodBean<?>> methods) { final BeanContext beanContext = bean.getBeanContext(); if (beanContext.isLocalbean()) { return; } for (final ProducerMethodBean<?> m : methods) { final Method method = m.getCreatorMethod(); if (doResolveViewMethod(bean, method) == null) { throw new WebBeansConfigurationException("@Produces " + method + " not in the ejb view of ejb " + beanContext.getEjbName()); } } }
private static void validateProduceMethods(final CdiEjbBean<?> bean, final Set<ProducerMethodBean<?>> methods) { final BeanContext beanContext = bean.getBeanContext(); if (beanContext.isLocalbean()) { return; } for (final ProducerMethodBean<?> m : methods) { final Method method = m.getCreatorMethod(); if (doResolveViewMethod(bean, method) == null) { throw new WebBeansConfigurationException("@Produces " + method + " not in the ejb view of ejb " + beanContext.getEjbName()); } } }
for (ProducerMethodBean<?> producer : producerBeans) if (GenericsUtil.satisfiesDependency(false, true, producer.getCreatorMethod().getGenericReturnType(), param.getBaseType()))
AnnotatedMethod<?> method = webBeansContext.getAnnotatedElementFactory().newAnnotatedMethod(producerMethod.getCreatorMethod(), annotatedType); webBeansContext.getWebBeansUtil().inspectDeploymentErrorStack("There are errors that are added by ProcessProducer event observers for " + "ProducerMethods. Look at logs for further details");
final AnnotatedMethod<?> method = webBeansContext.getAnnotatedElementFactory().newAnnotatedMethod(producerMethod.getCreatorMethod(), annotatedType); webBeansUtil.inspectDeploymentErrorStack("There are errors that are added by ProcessProducer event observers for " + "ProducerMethods. Look at logs for further details");
final AnnotatedMethod<?> method = webBeansContext.getAnnotatedElementFactory().newAnnotatedMethod(producerMethod.getCreatorMethod(), annotatedType); webBeansUtil.inspectErrorStack("There are errors that are added by ProcessProducer event observers for " + "ProducerMethods. Look at logs for further details");
for(ProducerMethodBean<?> producerMethod : producerMethodBeans) AnnotatedMethod<?> method = annotatedElementFactory.newAnnotatedMethod(producerMethod.getCreatorMethod(), annotatedType); ProcessProducerImpl<?, ?> producerEvent = WebBeansUtil.fireProcessProducerEventForMethod(producerMethod,method); WebBeansUtil.inspectErrorStack("There are errors that are added by ProcessProducer event observers for ProducerMethods. Look at logs for further details");