You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openwebbeans.apache.org by ar...@apache.org on 2013/01/14 19:19:06 UTC
svn commit: r1433019 - in
/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans:
component/creation/ManagedBeanBuilder.java config/BeansDeployer.java
Author: arne
Date: Mon Jan 14 18:19:05 2013
New Revision: 1433019
URL: http://svn.apache.org/viewvc?rev=1433019&view=rev
Log:
OWB-755: Fixed definition of interceptors and decorators
Modified:
openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/creation/ManagedBeanBuilder.java
openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/config/BeansDeployer.java
Modified: openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/creation/ManagedBeanBuilder.java
URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/creation/ManagedBeanBuilder.java?rev=1433019&r1=1433018&r2=1433019&view=diff
==============================================================================
--- openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/creation/ManagedBeanBuilder.java (original)
+++ openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/creation/ManagedBeanBuilder.java Mon Jan 14 18:19:05 2013
@@ -122,10 +122,9 @@ public class ManagedBeanBuilder<T, M ext
/**
* @deprecated replaced via the various {@link InterceptorBeanBuilder}s
*/
- public ManagedBean<T> defineInterceptor(ProcessInjectionTarget<T> injectionTargetEvent)
+ public ManagedBean<T> defineInterceptor(AnnotatedType<T> annotatedType)
{
- Class<?> clazz = injectionTargetEvent.getAnnotatedType().getJavaClass();
- AnnotatedType annotatedType = injectionTargetEvent.getAnnotatedType();
+ Class<?> clazz = annotatedType.getJavaClass();
if (webBeansContext.getInterceptorsManager().isInterceptorClassEnabled(clazz))
{
@@ -143,7 +142,7 @@ public class ManagedBeanBuilder<T, M ext
else
{
// TODO could probably be a bit more descriptive
- throw new DeploymentException("Cannot create Interceptor for class" + injectionTargetEvent.getAnnotatedType());
+ throw new DeploymentException("Cannot create Interceptor for class" + annotatedType);
}
return component;
}
@@ -173,9 +172,9 @@ public class ManagedBeanBuilder<T, M ext
* Define decorator bean.
* @param processInjectionTargetEvent
*/
- public ManagedBean<T> defineDecorator(ProcessInjectionTarget<T> processInjectionTargetEvent)
+ public ManagedBean<T> defineDecorator(AnnotatedType<T> annotatedType)
{
- Class<T> clazz = processInjectionTargetEvent.getAnnotatedType().getJavaClass();
+ Class<T> clazz = annotatedType.getJavaClass();
if (webBeansContext.getDecoratorsManager().isDecoratorEnabled(clazz))
{
ManagedBean<T> delegate = null;
@@ -184,11 +183,11 @@ public class ManagedBeanBuilder<T, M ext
if(Modifier.isAbstract(clazz.getModifiers()))
{
- delegate = defineAbstractDecorator(processInjectionTargetEvent);
+ delegate = defineAbstractDecorator(annotatedType);
}
else
{
- delegate = defineManagedBean(processInjectionTargetEvent.getAnnotatedType());
+ delegate = defineManagedBean(annotatedType);
}
if (delegate != null)
@@ -198,7 +197,7 @@ public class ManagedBeanBuilder<T, M ext
else
{
// TODO could probably be a bit more descriptive
- throw new DeploymentException("Cannot create Decorator for class" + processInjectionTargetEvent.getAnnotatedType());
+ throw new DeploymentException("Cannot create Decorator for class" + annotatedType);
}
return delegate;
}
@@ -208,14 +207,14 @@ public class ManagedBeanBuilder<T, M ext
}
}
- private ManagedBean<T> defineAbstractDecorator(ProcessInjectionTarget<T> processInjectionTargetEvent)
+ private ManagedBean<T> defineAbstractDecorator(AnnotatedType<T> annotatedType)
{
- ManagedBean<T> bean = defineManagedBean(processInjectionTargetEvent.getAnnotatedType());
+ ManagedBean<T> bean = defineManagedBean(annotatedType);
if (bean == null)
{
// TODO could probably be a bit more descriptive
- throw new DeploymentException("Cannot create ManagedBean for class" + processInjectionTargetEvent.getAnnotatedType());
+ throw new DeploymentException("Cannot create ManagedBean for class" + annotatedType);
}
//X TODO move proxy instance creation into JavassistProxyFactory!
Modified: openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/config/BeansDeployer.java
URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/config/BeansDeployer.java?rev=1433019&r1=1433018&r2=1433019&view=diff
==============================================================================
--- openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/config/BeansDeployer.java (original)
+++ openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/config/BeansDeployer.java Mon Jan 14 18:19:05 2013
@@ -852,15 +852,8 @@ public class BeansDeployer
annotationTypeSet = true;
}
- InjectionTargetBean<T> bean = managedBeanCreator.defineManagedBean(annotatedType);
-
+ InjectionTargetBean<T> bean;
GProcessInjectionTarget processInjectionTarget = null;
- if(processInjectionTargetEvent == null)
- {
- processInjectionTarget = webBeansContext.getWebBeansUtil().createProcessInjectionTargetEvent(bean);
- processInjectionTargetEvent = processInjectionTarget;
- }
-
if(WebBeansUtil.isDecorator(annotatedType))
{
if (logger.isLoggable(Level.FINE))
@@ -873,7 +866,7 @@ public class BeansDeployer
}
else
{
- bean = managedBeanCreator.defineDecorator(processInjectionTargetEvent);
+ bean = managedBeanCreator.defineDecorator(annotatedType);
}
}
else if(WebBeansUtil.isCdiInterceptor(annotatedType))
@@ -882,11 +875,11 @@ public class BeansDeployer
{
logger.log(Level.FINE, "Found Managed Bean Interceptor with class name : [{0}]", annotatedType.getJavaClass().getName());
}
-
+
if (WebBeansContext.TODO_USING_NEW_INTERCEPTORS)
{
CdiInterceptorBeanBuilder<T> ibb
- = new CdiInterceptorBeanBuilder<T>(webBeansContext, annotatedType);
+ = new CdiInterceptorBeanBuilder<T>(webBeansContext, annotatedType);
if (ibb.isInterceptorEnabled())
{
ibb.defineCdiInterceptorRules();
@@ -898,7 +891,7 @@ public class BeansDeployer
{
bean = null;
}
-
+
}
else
{
@@ -908,12 +901,21 @@ public class BeansDeployer
}
else
{
- bean = managedBeanCreator.defineInterceptor(processInjectionTargetEvent);
+ bean = managedBeanCreator.defineInterceptor(annotatedType);
}
}
}
else
{
+
+ bean = managedBeanCreator.defineManagedBean(annotatedType);
+
+ if(processInjectionTargetEvent == null)
+ {
+ processInjectionTarget = webBeansContext.getWebBeansUtil().createProcessInjectionTargetEvent(bean);
+ processInjectionTargetEvent = processInjectionTarget;
+ }
+
if (webBeansContext.getDecoratorsManager().containsCustomDecoratorClass(annotatedType.getJavaClass()) ||
webBeansContext.getInterceptorsManager().containsCustomInterceptorClass(annotatedType.getJavaClass()))
{
@@ -937,86 +939,83 @@ public class BeansDeployer
//Put final InjectionTarget instance
bean.setProducer(processInjectionTargetEvent.getInjectionTarget());
- if (bean instanceof ManagedBean)
- {
- ManagedBean<T> managedBean = (ManagedBean<T>)bean;
- Map<ProducerMethodBean<?>,AnnotatedMethod<?>> annotatedMethods =
- new HashMap<ProducerMethodBean<?>, AnnotatedMethod<?>>();
+ ManagedBean<T> managedBean = (ManagedBean<T>)bean;
+ Map<ProducerMethodBean<?>,AnnotatedMethod<?>> annotatedMethods =
+ new HashMap<ProducerMethodBean<?>, AnnotatedMethod<?>>();
- for(ProducerMethodBean<?> producerMethod : producerMethods)
- {
- AnnotatedMethod<?> method = webBeansContext.getAnnotatedElementFactory().newAnnotatedMethod(producerMethod.getCreatorMethod(), annotatedType);
- ProcessProducerImpl<?, ?> producerEvent = webBeansContext.getWebBeansUtil().fireProcessProducerEventForMethod(producerMethod,
- method);
- webBeansContext.getWebBeansUtil().inspectErrorStack("There are errors that are added by ProcessProducer event observers for "
- + "ProducerMethods. Look at logs for further details");
+ for(ProducerMethodBean<?> producerMethod : producerMethods)
+ {
+ AnnotatedMethod<?> method = webBeansContext.getAnnotatedElementFactory().newAnnotatedMethod(producerMethod.getCreatorMethod(), annotatedType);
+ ProcessProducerImpl<?, ?> producerEvent = webBeansContext.getWebBeansUtil().fireProcessProducerEventForMethod(producerMethod,
+ method);
+ webBeansContext.getWebBeansUtil().inspectErrorStack("There are errors that are added by ProcessProducer event observers for "
+ + "ProducerMethods. Look at logs for further details");
- annotatedMethods.put(producerMethod, method);
- producerMethod.setProducer((Producer) producerEvent.getProducer());
- }
+ annotatedMethods.put(producerMethod, method);
+ producerMethod.setProducer((Producer) producerEvent.getProducer());
+ }
- Map<ProducerFieldBean<?>,AnnotatedField<?>> annotatedFields =
- new HashMap<ProducerFieldBean<?>, AnnotatedField<?>>();
+ Map<ProducerFieldBean<?>,AnnotatedField<?>> annotatedFields =
+ new HashMap<ProducerFieldBean<?>, AnnotatedField<?>>();
- for(ProducerFieldBean<?> producerField : producerFields)
- {
- AnnotatedField<?> field = webBeansContext.getAnnotatedElementFactory().newAnnotatedField(producerField.getCreatorField(), annotatedType);
- ProcessProducerImpl<?, ?> producerEvent = webBeansContext.getWebBeansUtil().fireProcessProducerEventForField(producerField, field);
- webBeansContext.getWebBeansUtil().inspectErrorStack("There are errors that are added by ProcessProducer event observers for"
- + " ProducerFields. Look at logs for further details");
+ for(ProducerFieldBean<?> producerField : producerFields)
+ {
+ AnnotatedField<?> field = webBeansContext.getAnnotatedElementFactory().newAnnotatedField(producerField.getCreatorField(), annotatedType);
+ ProcessProducerImpl<?, ?> producerEvent = webBeansContext.getWebBeansUtil().fireProcessProducerEventForField(producerField, field);
+ webBeansContext.getWebBeansUtil().inspectErrorStack("There are errors that are added by ProcessProducer event observers for"
+ + " ProducerFields. Look at logs for further details");
- annotatedFields.put(producerField, field);
- producerField.setProducer((Producer) producerEvent.getProducer());
- }
+ annotatedFields.put(producerField, field);
+ producerField.setProducer((Producer) producerEvent.getProducer());
+ }
- Map<ObserverMethod<?>,AnnotatedMethod<?>> observerMethodsMap =
- new HashMap<ObserverMethod<?>, AnnotatedMethod<?>>();
+ Map<ObserverMethod<?>,AnnotatedMethod<?>> observerMethodsMap =
+ new HashMap<ObserverMethod<?>, AnnotatedMethod<?>>();
- for(ObserverMethod<?> observerMethod : observerMethods)
- {
- ObserverMethodImpl<?> impl = (ObserverMethodImpl<?>)observerMethod;
- AnnotatedMethod<?> method = webBeansContext.getAnnotatedElementFactory().newAnnotatedMethod(impl.getObserverMethod(), annotatedType);
+ for(ObserverMethod<?> observerMethod : observerMethods)
+ {
+ ObserverMethodImpl<?> impl = (ObserverMethodImpl<?>)observerMethod;
+ AnnotatedMethod<?> method = webBeansContext.getAnnotatedElementFactory().newAnnotatedMethod(impl.getObserverMethod(), annotatedType);
- observerMethodsMap.put(observerMethod, method);
- }
+ observerMethodsMap.put(observerMethod, method);
+ }
- BeanManagerImpl beanManager = webBeansContext.getBeanManagerImpl();
+ BeanManagerImpl beanManager = webBeansContext.getBeanManagerImpl();
- //Fires ProcessManagedBean
- ProcessBeanImpl<T> processBeanEvent = new GProcessManagedBean(managedBean, annotatedType);
- beanManager.fireEvent(processBeanEvent);
- webBeansContext.getWebBeansUtil().inspectErrorStack("There are errors that are added by ProcessManagedBean event observers for " +
- "managed beans. Look at logs for further details");
+ //Fires ProcessManagedBean
+ ProcessBeanImpl<T> processBeanEvent = new GProcessManagedBean(managedBean, annotatedType);
+ beanManager.fireEvent(processBeanEvent);
+ webBeansContext.getWebBeansUtil().inspectErrorStack("There are errors that are added by ProcessManagedBean event observers for " +
+ "managed beans. Look at logs for further details");
- //Fires ProcessProducerMethod
- webBeansContext.getWebBeansUtil().fireProcessProducerMethodBeanEvent(annotatedMethods, annotatedType);
- webBeansContext.getWebBeansUtil().inspectErrorStack("There are errors that are added by ProcessProducerMethod event observers for " +
- "producer method beans. Look at logs for further details");
+ //Fires ProcessProducerMethod
+ webBeansContext.getWebBeansUtil().fireProcessProducerMethodBeanEvent(annotatedMethods, annotatedType);
+ webBeansContext.getWebBeansUtil().inspectErrorStack("There are errors that are added by ProcessProducerMethod event observers for " +
+ "producer method beans. Look at logs for further details");
- //Fires ProcessProducerField
- webBeansContext.getWebBeansUtil().fireProcessProducerFieldBeanEvent(annotatedFields);
- webBeansContext.getWebBeansUtil().inspectErrorStack("There are errors that are added by ProcessProducerField event observers for " +
- "producer field beans. Look at logs for further details");
+ //Fires ProcessProducerField
+ webBeansContext.getWebBeansUtil().fireProcessProducerFieldBeanEvent(annotatedFields);
+ webBeansContext.getWebBeansUtil().inspectErrorStack("There are errors that are added by ProcessProducerField event observers for " +
+ "producer field beans. Look at logs for further details");
- //Fire ObservableMethods
- webBeansContext.getWebBeansUtil().fireProcessObservableMethodBeanEvent(observerMethodsMap);
- webBeansContext.getWebBeansUtil().inspectErrorStack("There are errors that are added by ProcessObserverMethod event observers for " +
- "observer methods. Look at logs for further details");
+ //Fire ObservableMethods
+ webBeansContext.getWebBeansUtil().fireProcessObservableMethodBeanEvent(observerMethodsMap);
+ webBeansContext.getWebBeansUtil().inspectErrorStack("There are errors that are added by ProcessObserverMethod event observers for " +
+ "observer methods. Look at logs for further details");
- if(!webBeansContext.getWebBeansUtil().isAnnotatedTypeDecoratorOrInterceptor(annotatedType))
+ if(!webBeansContext.getWebBeansUtil().isAnnotatedTypeDecoratorOrInterceptor(annotatedType))
+ {
+ beanManager.addBean(bean);
+ for (ProducerMethodBean<?> producerMethod : producerMethods)
+ {
+ // add them one after the other to enable serialization handling et al
+ beanManager.addBean(producerMethod);
+ }
+ managedBeanCreator.validateDisposalMethods(bean);//Define disposal method after adding producers
+ for (ProducerFieldBean<?> producerField : producerFields)
{
- beanManager.addBean(bean);
- for (ProducerMethodBean<?> producerMethod : producerMethods)
- {
- // add them one after the other to enable serialization handling et al
- beanManager.addBean(producerMethod);
- }
- managedBeanCreator.validateDisposalMethods(bean);//Define disposal method after adding producers
- for (ProducerFieldBean<?> producerField : producerFields)
- {
- // add them one after the other to enable serialization handling et al
- beanManager.addBean(producerField);
- }
+ // add them one after the other to enable serialization handling et al
+ beanManager.addBean(producerField);
}
}
}