You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openwebbeans.apache.org by st...@apache.org on 2017/05/29 21:27:10 UTC
svn commit: r1796702 - in /openwebbeans/trunk/webbeans-impl/src:
main/java/org/apache/webbeans/component/creation/
main/java/org/apache/webbeans/config/ main/java/org/apache/webbeans/event/
main/java/org/apache/webbeans/portable/events/ main/java/org/a...
Author: struberg
Date: Mon May 29 21:27:10 2017
New Revision: 1796702
URL: http://svn.apache.org/viewvc?rev=1796702&view=rev
Log:
OWB-1186 implement ProcessSyntheticObserverMethod and ProcessSyntheticBean
Added:
openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/events/generics/GProcessObserverMethod.java
- copied, changed from r1796701, openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/events/generics/GProcessObservableMethod.java
openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/events/generics/GProcessSyntheticBean.java
- copied, changed from r1796675, openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/events/generics/GProcessManagedBean.java
openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/events/generics/GProcessSyntheticObserverMethod.java
- copied, changed from r1796675, openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/events/generics/GProcessObservableMethod.java
Removed:
openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/events/generics/GProcessObservableMethod.java
Modified:
openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/creation/ObserverMethodsBuilder.java
openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/config/BeansDeployer.java
openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/event/ContainerEventObserverMethodImpl.java
openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/event/NotificationManager.java
openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/events/ProcessObserverMethodImpl.java
openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/events/discovery/AfterBeanDiscoveryImpl.java
openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/events/discovery/AfterTypeDiscoveryImpl.java
openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/events/discovery/BeforeBeanDiscoveryImpl.java
openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/events/discovery/ExtensionAware.java
openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/util/WebBeansUtil.java
openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/test/event/TypeArgumentInterfaceObserver.java
openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/test/event/TypeArgumentObserver.java
openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/test/unittests/event/EventTest.java
openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/test/unittests/event/exception/EventExceptionTest.java
Modified: openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/creation/ObserverMethodsBuilder.java
URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/creation/ObserverMethodsBuilder.java?rev=1796702&r1=1796701&r2=1796702&view=diff
==============================================================================
--- openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/creation/ObserverMethodsBuilder.java (original)
+++ openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/creation/ObserverMethodsBuilder.java Mon May 29 21:27:10 2017
@@ -96,7 +96,10 @@ public class ObserverMethodsBuilder<T>
//Looking for ObserverMethod
ObserverMethod<?> definedObserver = webBeansContext.getBeanManagerImpl().getNotificationManager().
getObservableMethodForAnnotatedMethod(annotatedMethod, observesParameter, bean);
- definedObservers.add(definedObserver);
+ if (definedObserver != null)
+ {
+ definedObservers.add(definedObserver);
+ }
}
}
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=1796702&r1=1796701&r2=1796702&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 May 29 21:27:10 2017
@@ -1764,6 +1764,7 @@ public class BeansDeployer
ProcessBeanImpl<T> processBeanEvent = new GProcessManagedBean(managedBean, annotatedType);
beanManager.fireEvent(processBeanEvent, true);
processBeanEvent.setStarted();
+
webBeansContext.getWebBeansUtil().inspectDefinitionErrorStack("There are errors that are added by ProcessManagedBean event observers for " +
"managed beans. Look at logs for further details");
@@ -1777,11 +1778,6 @@ public class BeansDeployer
webBeansContext.getWebBeansUtil().inspectDefinitionErrorStack("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().inspectDefinitionErrorStack("There are errors that are added by ProcessObserverMethod event observers for " +
- "observer methods. Look at logs for further details");
-
if(!webBeansContext.getWebBeansUtil().isAnnotatedTypeDecoratorOrInterceptor(annotatedType))
{
beanManager.addBean(bean);
Modified: openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/event/ContainerEventObserverMethodImpl.java
URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/event/ContainerEventObserverMethodImpl.java?rev=1796702&r1=1796701&r2=1796702&view=diff
==============================================================================
--- openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/event/ContainerEventObserverMethodImpl.java (original)
+++ openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/event/ContainerEventObserverMethodImpl.java Mon May 29 21:27:10 2017
@@ -24,6 +24,7 @@ import org.apache.webbeans.portable.even
import javax.enterprise.inject.spi.AnnotatedMethod;
import javax.enterprise.inject.spi.AnnotatedParameter;
+import javax.enterprise.inject.spi.Extension;
import javax.enterprise.inject.spi.ProcessAnnotatedType;
import javax.enterprise.inject.spi.WithAnnotations;
import java.lang.reflect.InvocationTargetException;
@@ -76,7 +77,7 @@ public class ContainerEventObserverMetho
if (ExtensionAware.class.isInstance(args[0]))
{
extensionAware = ExtensionAware.class.cast(args[0]);
- extensionAware.setExtension(object);
+ extensionAware.setExtension((Extension) object);
}
}
super.invoke(object, args);
Modified: openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/event/NotificationManager.java
URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/event/NotificationManager.java?rev=1796702&r1=1796701&r2=1796702&view=diff
==============================================================================
--- openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/event/NotificationManager.java (original)
+++ openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/event/NotificationManager.java Mon May 29 21:27:10 2017
@@ -59,7 +59,7 @@ import javax.enterprise.inject.spi.Proce
import javax.enterprise.inject.spi.ProcessProducerField;
import javax.enterprise.inject.spi.ProcessProducerMethod;
import javax.enterprise.inject.spi.ProcessSyntheticAnnotatedType;
-import javax.enterprise.util.TypeLiteral;
+import javax.enterprise.inject.spi.ProcessSyntheticBean;
import org.apache.webbeans.component.AbstractOwbBean;
import org.apache.webbeans.config.OWBLogConst;
@@ -69,6 +69,7 @@ import org.apache.webbeans.exception.Web
import org.apache.webbeans.exception.WebBeansException;
import org.apache.webbeans.logger.WebBeansLoggerFacade;
import org.apache.webbeans.portable.events.ProcessSessionBeanImpl;
+import org.apache.webbeans.portable.events.generics.GProcessObserverMethod;
import org.apache.webbeans.portable.events.generics.GenericBeanEvent;
import org.apache.webbeans.portable.events.generics.GenericProducerObserverEvent;
import org.apache.webbeans.portable.events.generics.TwoParametersGenericBeanEvent;
@@ -108,6 +109,7 @@ public final class NotificationManager
ProcessAnnotatedType.class,
ProcessBean.class,
ProcessBeanAttributes.class,
+ ProcessSyntheticBean.class,
ProcessInjectionPoint.class,
ProcessInjectionTarget.class,
ProcessManagedBean.class,
@@ -173,25 +175,20 @@ public final class NotificationManager
return observerMethods;
}
- public <T> void addObserver(ObserverMethod<T> observer, Type eventType)
+ public <T> void addObserver(ObserverMethod<T> observer)
{
webBeansContext.getAnnotationManager().checkQualifierConditions(observer.getObservedQualifiers());
- Set<ObserverMethod<?>> set = observers.get(eventType);
+ Set<ObserverMethod<?>> set = observers.get(observer.getObservedType());
if (set == null)
{
set = new HashSet<ObserverMethod<?>>();
- observers.put(eventType, set);
+ observers.put(observer.getObservedType(), set);
}
set.add(observer);
}
- public <T> void addObserver(ObserverMethod<T> observer, TypeLiteral<T> typeLiteral)
- {
- addObserver(observer, typeLiteral.getType());
- }
-
public <T> Set<ObserverMethod<? super T>> resolveObservers(T event, EventMetadataImpl metadata, boolean isLifecycleEvent)
{
@@ -734,14 +731,37 @@ public final class NotificationManager
public <T> ObserverMethod<?> getObservableMethodForAnnotatedMethod(AnnotatedMethod<?> annotatedMethod, AnnotatedParameter<?> annotatedParameter, AbstractOwbBean<T> bean)
{
Asserts.assertNotNull(annotatedParameter, "annotatedParameter");
-
- //Observer creation from annotated method
- ObserverMethodImpl<T> observer = isContainerEvent(annotatedParameter)?
- new ContainerEventObserverMethodImpl(bean, annotatedMethod, annotatedParameter) :
- new ObserverMethodImpl(bean, annotatedMethod, annotatedParameter);
-
- //Adds this observer
- addObserver(observer, annotatedParameter.getBaseType());
+
+ ObserverMethodImpl<T> observer = null;
+ // Observer creation from annotated method
+ if (isContainerEvent(annotatedParameter))
+ {
+ observer = new ContainerEventObserverMethodImpl(bean, annotatedMethod, annotatedParameter);
+ addObserver(observer);
+ }
+ else
+ {
+ observer = new ObserverMethodImpl(bean, annotatedMethod, annotatedParameter);
+
+ GProcessObserverMethod event = new GProcessObserverMethod(annotatedMethod, observer);
+
+ //Fires ProcessObserverMethod
+ webBeansContext.getBeanManagerImpl().fireEvent(event, true, AnnotationUtil.EMPTY_ANNOTATION_ARRAY);
+
+ webBeansContext.getWebBeansUtil().inspectDefinitionErrorStack("There are errors that are added by ProcessObserverMethod event observers for " +
+ "observer methods. Look at logs for further details");
+
+ if (!event.isVetoed())
+ {
+ //Adds this observer
+ addObserver(event.getObserverMethod());
+ }
+ else
+ {
+ observer = null;
+ }
+ event.setStarted();
+ }
return observer;
}
Modified: openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/events/ProcessObserverMethodImpl.java
URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/events/ProcessObserverMethodImpl.java?rev=1796702&r1=1796701&r2=1796702&view=diff
==============================================================================
--- openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/events/ProcessObserverMethodImpl.java (original)
+++ openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/events/ProcessObserverMethodImpl.java Mon May 29 21:27:10 2017
@@ -39,7 +39,8 @@ public class ProcessObserverMethodImpl<T
private final AnnotatedMethod<X> annotatedMethod;
/**ObserverMethod instance*/
- private final ObserverMethod<T> observerMethod;
+ private ObserverMethod<T> observerMethod;
+ private boolean vetoed = false;
public ProcessObserverMethodImpl(AnnotatedMethod<X> annotatedMethod,ObserverMethod<T> observerMethod)
{
@@ -84,18 +85,22 @@ public class ProcessObserverMethodImpl<T
return observerMethod;
}
- //X TODO OWB-1182 CDI 2.0
@Override
public void setObserverMethod(ObserverMethod<T> observerMethod)
{
- throw new UnsupportedOperationException("CDI 2.0 not yet imlemented");
+ checkState();
+ this.observerMethod = observerMethod;
}
- //X TODO OWB-1182 CDI 2.0
@Override
public void veto()
{
- throw new UnsupportedOperationException("CDI 2.0 not yet imlemented");
+ checkState();
+ vetoed = true;
}
+ public boolean isVetoed()
+ {
+ return vetoed;
+ }
}
Modified: openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/events/discovery/AfterBeanDiscoveryImpl.java
URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/events/discovery/AfterBeanDiscoveryImpl.java?rev=1796702&r1=1796701&r2=1796702&view=diff
==============================================================================
--- openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/events/discovery/AfterBeanDiscoveryImpl.java (original)
+++ openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/events/discovery/AfterBeanDiscoveryImpl.java Mon May 29 21:27:10 2017
@@ -24,11 +24,11 @@ import javax.enterprise.inject.spi.After
import javax.enterprise.inject.spi.AnnotatedType;
import javax.enterprise.inject.spi.Bean;
import javax.enterprise.inject.spi.Decorator;
+import javax.enterprise.inject.spi.Extension;
import javax.enterprise.inject.spi.InjectionPoint;
import javax.enterprise.inject.spi.Interceptor;
import javax.enterprise.inject.spi.ObserverMethod;
-import javax.enterprise.inject.spi.ProcessBean;
-import javax.enterprise.inject.spi.ProcessObserverMethod;
+import javax.enterprise.inject.spi.ProcessSyntheticBean;
import javax.enterprise.inject.spi.configurator.BeanConfigurator;
import javax.enterprise.inject.spi.configurator.ObserverMethodConfigurator;
@@ -39,8 +39,8 @@ import org.apache.webbeans.container.Bea
import org.apache.webbeans.exception.WebBeansConfigurationException;
import org.apache.webbeans.intercept.InterceptorsManager;
import org.apache.webbeans.logger.WebBeansLoggerFacade;
-import org.apache.webbeans.portable.events.generics.GProcessBean;
-import org.apache.webbeans.portable.events.generics.GProcessObservableMethod;
+import org.apache.webbeans.portable.events.generics.GProcessSyntheticBean;
+import org.apache.webbeans.portable.events.generics.GProcessSyntheticObserverMethod;
import org.apache.webbeans.util.AnnotationUtil;
import java.util.logging.Level;
@@ -52,12 +52,14 @@ import java.util.logging.Logger;
* @version $Rev$ $Date$
*
*/
-public class AfterBeanDiscoveryImpl implements AfterBeanDiscovery
+public class AfterBeanDiscoveryImpl implements AfterBeanDiscovery, ExtensionAware
{
private BeanManagerImpl beanManager = null;
private static final Logger logger = WebBeansLoggerFacade.getLogger(AfterBeanDiscoveryImpl.class);
private final WebBeansContext webBeansContext;
+
+ private Extension extension;
private boolean started;
public AfterBeanDiscoveryImpl(WebBeansContext webBeansContext)
@@ -71,6 +73,12 @@ public class AfterBeanDiscoveryImpl impl
started = true;
}
+ @Override
+ public void setExtension(Extension extension)
+ {
+ this.extension = extension;
+ }
+
/**
* {@inheritDoc}
*/
@@ -85,8 +93,8 @@ public class AfterBeanDiscoveryImpl impl
AnnotatedType<?> annotatedType = webBeansContext.getAnnotatedElementFactory().newAnnotatedType(bean.getBeanClass());
//Fire Event
- ProcessBean<?> processBeanEvent = new GProcessBean(bean,annotatedType);
- beanManager.fireEvent(processBeanEvent, true, AnnotationUtil.EMPTY_ANNOTATION_ARRAY);
+ ProcessSyntheticBean<?> processSyntheticBean = new GProcessSyntheticBean(bean,annotatedType, extension);
+ beanManager.fireEvent(processSyntheticBean, true, AnnotationUtil.EMPTY_ANNOTATION_ARRAY);
if(bean instanceof Interceptor)
{
@@ -214,9 +222,13 @@ public class AfterBeanDiscoveryImpl impl
{
throw new IllegalStateException("Don't call AfterBeanDiscovery.addObserverMethod(...) after the event is fired");
}
- ProcessObserverMethod<?, ?> event = new GProcessObservableMethod(null,observerMethod);
- beanManager.fireEvent(event, true, AnnotationUtil.EMPTY_ANNOTATION_ARRAY);
- beanManager.getNotificationManager().addObserver(observerMethod, observerMethod.getObservedType());
+ GProcessSyntheticObserverMethod event = new GProcessSyntheticObserverMethod(null,observerMethod, extension);
+ if (!event.isVetoed())
+ {
+ beanManager.fireEvent(event, true, AnnotationUtil.EMPTY_ANNOTATION_ARRAY);
+ ObserverMethod newObserverMethod = event.getObserverMethod();
+ beanManager.getNotificationManager().addObserver(newObserverMethod);
+ }
}
/**
Modified: openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/events/discovery/AfterTypeDiscoveryImpl.java
URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/events/discovery/AfterTypeDiscoveryImpl.java?rev=1796702&r1=1796701&r2=1796702&view=diff
==============================================================================
--- openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/events/discovery/AfterTypeDiscoveryImpl.java (original)
+++ openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/events/discovery/AfterTypeDiscoveryImpl.java Mon May 29 21:27:10 2017
@@ -20,6 +20,7 @@ package org.apache.webbeans.portable.eve
import javax.enterprise.inject.spi.AfterTypeDiscovery;
import javax.enterprise.inject.spi.AnnotatedType;
+import javax.enterprise.inject.spi.Extension;
import javax.enterprise.inject.spi.configurator.AnnotatedTypeConfigurator;
import java.util.List;
@@ -37,7 +38,7 @@ public class AfterTypeDiscoveryImpl exte
private final List<Class<?>> sortedInterceptors;
private final List<Class<?>> sortedDecorators;
private final List<AnnotatedType<?>> newAt;
- private Object extension;
+ private Extension extension;
public AfterTypeDiscoveryImpl(WebBeansContext webBeansContext,
List<AnnotatedType<?>> newAt,
@@ -89,7 +90,7 @@ public class AfterTypeDiscoveryImpl exte
}
@Override
- public void setExtension(final Object instance)
+ public void setExtension(Extension instance)
{
this.extension = instance;
}
Modified: openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/events/discovery/BeforeBeanDiscoveryImpl.java
URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/events/discovery/BeforeBeanDiscoveryImpl.java?rev=1796702&r1=1796701&r2=1796702&view=diff
==============================================================================
--- openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/events/discovery/BeforeBeanDiscoveryImpl.java (original)
+++ openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/events/discovery/BeforeBeanDiscoveryImpl.java Mon May 29 21:27:10 2017
@@ -22,6 +22,7 @@ import java.lang.annotation.Annotation;
import javax.enterprise.inject.spi.AnnotatedType;
import javax.enterprise.inject.spi.BeforeBeanDiscovery;
+import javax.enterprise.inject.spi.Extension;
import javax.enterprise.inject.spi.configurator.AnnotatedTypeConfigurator;
import org.apache.webbeans.config.WebBeansContext;
@@ -40,7 +41,7 @@ public class BeforeBeanDiscoveryImpl imp
private BeanManagerImpl beanManager = null;
private final WebBeansContext webBeansContext;
- private Object extension;
+ private Extension extension;
private boolean started;
public BeforeBeanDiscoveryImpl(WebBeansContext webBeansContext)
@@ -183,7 +184,7 @@ public class BeforeBeanDiscoveryImpl imp
beanManager.addAdditionalQualifier(annotatedType);
}
- public void setExtension(final Object extension)
+ public void setExtension(final Extension extension)
{
this.extension = extension;
}
Modified: openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/events/discovery/ExtensionAware.java
URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/events/discovery/ExtensionAware.java?rev=1796702&r1=1796701&r2=1796702&view=diff
==============================================================================
--- openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/events/discovery/ExtensionAware.java (original)
+++ openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/events/discovery/ExtensionAware.java Mon May 29 21:27:10 2017
@@ -18,7 +18,9 @@
*/
package org.apache.webbeans.portable.events.discovery;
+import javax.enterprise.inject.spi.Extension;
+
public interface ExtensionAware
{
- void setExtension(Object instance);
+ void setExtension(Extension instance);
}
Copied: openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/events/generics/GProcessObserverMethod.java (from r1796701, openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/events/generics/GProcessObservableMethod.java)
URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/events/generics/GProcessObserverMethod.java?p2=openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/events/generics/GProcessObserverMethod.java&p1=openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/events/generics/GProcessObservableMethod.java&r1=1796701&r2=1796702&rev=1796702&view=diff
==============================================================================
--- openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/events/generics/GProcessObservableMethod.java (original)
+++ openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/events/generics/GProcessObserverMethod.java Mon May 29 21:27:10 2017
@@ -25,10 +25,10 @@ import org.apache.webbeans.portable.even
import org.apache.webbeans.util.ClassUtil;
@SuppressWarnings("unchecked")
-public class GProcessObservableMethod extends ProcessObserverMethodImpl implements GenericProducerObserverEvent
+public class GProcessObserverMethod extends ProcessObserverMethodImpl implements GenericProducerObserverEvent
{
- public GProcessObservableMethod(AnnotatedMethod<?> annotatedMethod, ObserverMethod<?> observerMethod)
+ public GProcessObserverMethod(AnnotatedMethod<?> annotatedMethod, ObserverMethod<?> observerMethod)
{
super(annotatedMethod, observerMethod);
}
Copied: openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/events/generics/GProcessSyntheticBean.java (from r1796675, openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/events/generics/GProcessManagedBean.java)
URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/events/generics/GProcessSyntheticBean.java?p2=openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/events/generics/GProcessSyntheticBean.java&p1=openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/events/generics/GProcessManagedBean.java&r1=1796675&r2=1796702&rev=1796702&view=diff
==============================================================================
--- openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/events/generics/GProcessManagedBean.java (original)
+++ openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/events/generics/GProcessSyntheticBean.java Mon May 29 21:27:10 2017
@@ -19,21 +19,26 @@
package org.apache.webbeans.portable.events.generics;
import javax.enterprise.inject.spi.AnnotatedType;
+import javax.enterprise.inject.spi.Bean;
+import javax.enterprise.inject.spi.Extension;
+import javax.enterprise.inject.spi.ProcessSyntheticBean;
-import org.apache.webbeans.component.ManagedBean;
-import org.apache.webbeans.portable.events.ProcessManagedBeanImpl;
@SuppressWarnings("unchecked")
-public class GProcessManagedBean extends ProcessManagedBeanImpl implements GenericBeanEvent
+public class GProcessSyntheticBean extends GProcessBean implements ProcessSyntheticBean
{
- public GProcessManagedBean(ManagedBean<?> bean,AnnotatedType<?> annotated)
+ private final Extension source;
+
+ public GProcessSyntheticBean(Bean<?> bean, AnnotatedType<?> annotated, Extension source)
{
super(bean,annotated);
+ this.source = source;
}
+
@Override
- public Class<?> getBeanClassFor(Class<?> eventClass)
+ public Extension getSource()
{
- return getBean().getBeanClass();
+ return source;
}
}
Copied: openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/events/generics/GProcessSyntheticObserverMethod.java (from r1796675, openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/events/generics/GProcessObservableMethod.java)
URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/events/generics/GProcessSyntheticObserverMethod.java?p2=openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/events/generics/GProcessSyntheticObserverMethod.java&p1=openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/events/generics/GProcessObservableMethod.java&r1=1796675&r2=1796702&rev=1796702&view=diff
==============================================================================
--- openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/events/generics/GProcessObservableMethod.java (original)
+++ openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/events/generics/GProcessSyntheticObserverMethod.java Mon May 29 21:27:10 2017
@@ -19,32 +19,27 @@
package org.apache.webbeans.portable.events.generics;
import javax.enterprise.inject.spi.AnnotatedMethod;
+import javax.enterprise.inject.spi.Extension;
import javax.enterprise.inject.spi.ObserverMethod;
+import javax.enterprise.inject.spi.ProcessSyntheticObserverMethod;
-import org.apache.webbeans.portable.events.ProcessObserverMethodImpl;
-import org.apache.webbeans.util.ClassUtil;
@SuppressWarnings("unchecked")
-public class GProcessObservableMethod extends ProcessObserverMethodImpl implements GenericProducerObserverEvent
+public class GProcessSyntheticObserverMethod extends GProcessObserverMethod implements ProcessSyntheticObserverMethod
{
+ private final Extension source;
- public GProcessObservableMethod(AnnotatedMethod<?> annotatedMethod, ObserverMethod<?> observerMethod)
+ public GProcessSyntheticObserverMethod(AnnotatedMethod<?> annotatedMethod,
+ ObserverMethod<?> observerMethod,
+ Extension source)
{
super(annotatedMethod, observerMethod);
+ this.source = source;
}
@Override
- public Class<?> getBeanClass()
+ public Extension getSource()
{
- return getObserverMethod().getBeanClass();
+ return source;
}
-
- @Override
- public Class<?> getProducerOrObserverType()
- {
- return ClassUtil.getClazz(getObserverMethod().getObservedType());
- }
-
-
-
}
Modified: openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/util/WebBeansUtil.java
URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/util/WebBeansUtil.java?rev=1796702&r1=1796701&r2=1796702&view=diff
==============================================================================
--- openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/util/WebBeansUtil.java (original)
+++ openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/util/WebBeansUtil.java Mon May 29 21:27:10 2017
@@ -73,7 +73,7 @@ import org.apache.webbeans.portable.even
import org.apache.webbeans.portable.events.generics.GProcessInjectionPoint;
import org.apache.webbeans.portable.events.generics.GProcessInjectionTarget;
import org.apache.webbeans.portable.events.generics.GProcessManagedBean;
-import org.apache.webbeans.portable.events.generics.GProcessObservableMethod;
+import org.apache.webbeans.portable.events.generics.GProcessObserverMethod;
import org.apache.webbeans.portable.events.generics.GProcessProducer;
import org.apache.webbeans.portable.events.generics.GProcessProducerField;
import org.apache.webbeans.portable.events.generics.GProcessProducerMethod;
@@ -109,7 +109,6 @@ import javax.enterprise.inject.spi.Befor
import javax.enterprise.inject.spi.Extension;
import javax.enterprise.inject.spi.InjectionPoint;
import javax.enterprise.inject.spi.Interceptor;
-import javax.enterprise.inject.spi.ObserverMethod;
import javax.enterprise.inject.spi.PassivationCapable;
import javax.enterprise.inject.spi.ProcessAnnotatedType;
import javax.enterprise.inject.spi.ProcessBean;
@@ -1095,20 +1094,6 @@ public final class WebBeansUtil
}
}
- public void fireProcessObservableMethodBeanEvent(Map<ObserverMethod<?>,AnnotatedMethod<?>> annotatedMethods)
- {
- for(Map.Entry<ObserverMethod<?>, AnnotatedMethod<?>> observableMethodEntry : annotatedMethods.entrySet())
- {
- ObserverMethod<?> observableMethod = observableMethodEntry.getKey();
- AnnotatedMethod<?> annotatedMethod = observableMethodEntry.getValue();
-
- GProcessObservableMethod event = new GProcessObservableMethod(annotatedMethod, observableMethod);
-
- //Fires ProcessProducer
- webBeansContext.getBeanManagerImpl().fireEvent(event, true, AnnotationUtil.EMPTY_ANNOTATION_ARRAY);
- event.setStarted();
- }
- }
public void fireProcessProducerFieldBeanEvent(Map<ProducerFieldBean<?>,AnnotatedField<?>> annotatedFields)
@@ -1295,7 +1280,7 @@ public final class WebBeansUtil
GProcessProducer.class,
GProcessProducerField.class,
GProcessProducerMethod.class,
- GProcessObservableMethod.class}));
+ GProcessObserverMethod.class}));
public static boolean isExtensionProducerOrObserverEventType(Type type)
{
return EXTENSION_PRODUCER_OR_OBSERVER_EVENT_TYPE.contains(type);
Modified: openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/test/event/TypeArgumentInterfaceObserver.java
URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/test/event/TypeArgumentInterfaceObserver.java?rev=1796702&r1=1796701&r2=1796702&view=diff
==============================================================================
--- openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/test/event/TypeArgumentInterfaceObserver.java (original)
+++ openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/test/event/TypeArgumentInterfaceObserver.java Mon May 29 21:27:10 2017
@@ -63,7 +63,7 @@ public class TypeArgumentInterfaceObserv
@Override
public Type getObservedType() {
- return null;
+ return ITypeArgumentEventInterface.class;
}
@Override
Modified: openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/test/event/TypeArgumentObserver.java
URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/test/event/TypeArgumentObserver.java?rev=1796702&r1=1796701&r2=1796702&view=diff
==============================================================================
--- openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/test/event/TypeArgumentObserver.java (original)
+++ openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/test/event/TypeArgumentObserver.java Mon May 29 21:27:10 2017
@@ -64,7 +64,7 @@ public class TypeArgumentObserver implem
@Override
public Type getObservedType() {
- return null;
+ return TypeArgumentBaseEvent.class;
}
@Override
Modified: openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/test/unittests/event/EventTest.java
URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/test/unittests/event/EventTest.java?rev=1796702&r1=1796701&r2=1796702&view=diff
==============================================================================
--- openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/test/unittests/event/EventTest.java (original)
+++ openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/test/unittests/event/EventTest.java Mon May 29 21:27:10 2017
@@ -21,7 +21,6 @@ package org.apache.webbeans.test.unittes
import java.lang.annotation.Annotation;
import javax.enterprise.util.AnnotationLiteral;
-import javax.enterprise.util.TypeLiteral;
import org.apache.webbeans.config.WebBeansContext;
import org.apache.webbeans.test.AbstractUnitTest;
@@ -49,7 +48,7 @@ public class EventTest extends AbstractU
};
LoggedInObserver observer = new LoggedInObserver(ArrayUtil.asSet(anns));
- WebBeansContext.getInstance().getBeanManagerImpl().getNotificationManager().addObserver(observer, LoggedInEvent.class);
+ WebBeansContext.getInstance().getBeanManagerImpl().getNotificationManager().addObserver(observer);
getBeanManager().fireEvent(new LoggedInEvent(), anns);
@@ -66,11 +65,8 @@ public class EventTest extends AbstractU
};
TypeArgumentObserver observer = new TypeArgumentObserver(ArrayUtil.asSet(anns));
- TypeLiteral<TypeArgumentBaseEvent> tl = new TypeLiteral<TypeArgumentBaseEvent>()
- {
- };
- WebBeansContext.getInstance().getBeanManagerImpl().getNotificationManager().addObserver(observer, tl);
+ WebBeansContext.getInstance().getBeanManagerImpl().getNotificationManager().addObserver(observer);
getBeanManager().fireEvent(new TypeArgumentEvent(), anns);
@@ -87,7 +83,7 @@ public class EventTest extends AbstractU
};
TypeArgumentInterfaceObserver observer = new TypeArgumentInterfaceObserver(ArrayUtil.asSet(anns));
- WebBeansContext.getInstance().getBeanManagerImpl().getNotificationManager().addObserver(observer, ITypeArgumentEventInterface.class);
+ WebBeansContext.getInstance().getBeanManagerImpl().getNotificationManager().addObserver(observer);
getBeanManager().fireEvent(new TypeArgumentEvent(), anns);
Assert.assertEquals("ok", observer.getResult());
Modified: openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/test/unittests/event/exception/EventExceptionTest.java
URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/test/unittests/event/exception/EventExceptionTest.java?rev=1796702&r1=1796701&r2=1796702&view=diff
==============================================================================
--- openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/test/unittests/event/exception/EventExceptionTest.java (original)
+++ openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/test/unittests/event/exception/EventExceptionTest.java Mon May 29 21:27:10 2017
@@ -95,7 +95,7 @@ public class EventExceptionTest extends
};
LoggedInObserver observer = new LoggedInObserver(ArrayUtil.asSet(anns));
- WebBeansContext.getInstance().getBeanManagerImpl().getNotificationManager().addObserver(observer, LoggedInEvent.class);
+ WebBeansContext.getInstance().getBeanManagerImpl().getNotificationManager().addObserver(observer);
getBeanManager().fireEvent(new LoggedInEvent(), anns);
@@ -121,7 +121,7 @@ public class EventExceptionTest extends
};
LoggedInObserver observer = new LoggedInObserver(ArrayUtil.asSet(anns));
- WebBeansContext.getInstance().getBeanManagerImpl().getNotificationManager().addObserver(observer, LoggedInEvent.class);
+ WebBeansContext.getInstance().getBeanManagerImpl().getNotificationManager().addObserver(observer);
Assert.fail("IllegalArgumentException expected");
}
catch (IllegalArgumentException e)