Author: tandraschko
Date: Tue Oct 16 20:31:44 2018
New Revision: 1844048
URL: http://svn.apache.org/viewvc?rev=1844048&view=rev
Log:
unified code
Modified:
openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/event/NotificationManager.java
openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/util/WebBeansUtil.java
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=1844048&r1=1844047&r2=1844048&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
Tue Oct 16 20:31:44 2018
@@ -27,7 +27,6 @@ import java.lang.reflect.ParameterizedTy
import java.lang.reflect.Type;
import java.lang.reflect.TypeVariable;
import java.util.ArrayList;
-import java.util.Arrays;
import java.util.Collection;
import java.util.Comparator;
import java.util.HashSet;
@@ -52,31 +51,17 @@ import javax.enterprise.context.RequestS
import javax.enterprise.event.NotificationOptions;
import javax.enterprise.event.ObserverException;
import javax.enterprise.event.TransactionPhase;
-import javax.enterprise.inject.spi.AfterBeanDiscovery;
import javax.enterprise.inject.spi.AfterDeploymentValidation;
-import javax.enterprise.inject.spi.AfterTypeDiscovery;
import javax.enterprise.inject.spi.AnnotatedCallable;
import javax.enterprise.inject.spi.AnnotatedConstructor;
import javax.enterprise.inject.spi.AnnotatedField;
import javax.enterprise.inject.spi.AnnotatedMethod;
import javax.enterprise.inject.spi.AnnotatedParameter;
import javax.enterprise.inject.spi.AnnotatedType;
-import javax.enterprise.inject.spi.BeforeBeanDiscovery;
-import javax.enterprise.inject.spi.BeforeShutdown;
import javax.enterprise.inject.spi.Extension;
import javax.enterprise.inject.spi.ObserverMethod;
import javax.enterprise.inject.spi.ProcessAnnotatedType;
-import javax.enterprise.inject.spi.ProcessBean;
-import javax.enterprise.inject.spi.ProcessBeanAttributes;
-import javax.enterprise.inject.spi.ProcessInjectionPoint;
-import javax.enterprise.inject.spi.ProcessInjectionTarget;
-import javax.enterprise.inject.spi.ProcessManagedBean;
-import javax.enterprise.inject.spi.ProcessObserverMethod;
import javax.enterprise.inject.spi.ProcessProducer;
-import javax.enterprise.inject.spi.ProcessProducerField;
-import javax.enterprise.inject.spi.ProcessProducerMethod;
-import javax.enterprise.inject.spi.ProcessSyntheticAnnotatedType;
-import javax.enterprise.inject.spi.ProcessSyntheticBean;
import org.apache.webbeans.component.AbstractOwbBean;
import org.apache.webbeans.config.OWBLogConst;
@@ -85,7 +70,6 @@ import org.apache.webbeans.exception.Web
import org.apache.webbeans.exception.WebBeansDeploymentException;
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;
@@ -116,30 +100,6 @@ public final class NotificationManager
private final ConcurrentHashMap<Class<?>, Set<ObserverMethod<?>>>
observersByRawType
= new ConcurrentHashMap<>();
-
-
- public static final Set<Class> CONTAINER_EVENT_CLASSES = new HashSet<>(
- Arrays.asList(new Class[]{
- AfterBeanDiscovery.class,
- AfterDeploymentValidation.class,
- AfterTypeDiscovery.class,
- BeforeBeanDiscovery.class,
- BeforeShutdown.class,
- ProcessAnnotatedType.class,
- ProcessBean.class,
- ProcessBeanAttributes.class,
- ProcessSyntheticBean.class,
- ProcessInjectionPoint.class,
- ProcessInjectionTarget.class,
- ProcessManagedBean.class,
- ProcessObserverMethod.class,
- ProcessProducer.class,
- ProcessProducerField.class,
- ProcessProducerMethod.class,
- ProcessSessionBeanImpl.class,
- ProcessSyntheticAnnotatedType.class,
- }));
-
// this is actually faster than a lambda
Comparator.comparingInt(ObserverMethod::getPriority)
private Comparator<? super ObserverMethod<? super Object>>
observerMethodComparator
= new Comparator<ObserverMethod<? super Object>>()
@@ -911,7 +871,7 @@ public final class NotificationManager
return false;
}
Class<?> paramType =
AnnotatedMethod.class.cast(method).getJavaMember().getParameterTypes()[0];
- return CONTAINER_EVENT_CLASSES.contains(paramType);
+ return
webBeansContext.getWebBeansUtil().isContainerEventType(paramType);
}
// this behaves as a future aggregator, we don't strictly need to
represent it but found it more expressive
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=1844048&r1=1844047&r2=1844048&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
Tue Oct 16 20:31:44 2018
@@ -155,6 +155,7 @@ import java.util.Map;
import java.util.Set;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.ConcurrentMap;
+import javax.enterprise.inject.spi.AfterTypeDiscovery;
/**
@@ -162,7 +163,7 @@ import java.util.concurrent.ConcurrentMa
*/
@SuppressWarnings("unchecked")
public final class WebBeansUtil
-{
+{
private final WebBeansContext webBeansContext;
// cache to skip some validations
@@ -1595,6 +1596,34 @@ public final class WebBeansUtil
validEventType.putIfAbsent(key, true); // we don't care about the
value but that's thread safe to use this map
}
+ private static final Class[] CONTAINER_EVENT_CLASSES = new Class[] {
+ AfterBeanDiscovery.class,
+ AfterDeploymentValidation.class,
+ AfterTypeDiscovery.class,
+ BeforeBeanDiscovery.class,
+ BeforeShutdown.class,
+ ProcessAnnotatedType.class,
+ ProcessBean.class,
+ ProcessBeanAttributes.class,
+ ProcessSyntheticBean.class,
+ ProcessInjectionPoint.class,
+ ProcessInjectionTarget.class,
+ ProcessManagedBean.class,
+ ProcessObserverMethod.class,
+ ProcessProducer.class,
+ ProcessProducerField.class,
+ ProcessProducerMethod.class,
+ ProcessSessionBean.class,
+ ProcessSyntheticAnnotatedType.class
+ };
+
+ private static final Set<Class> CONTAINER_EVENT_CLASSES_SET = new
HashSet<>(Arrays.asList(CONTAINER_EVENT_CLASSES));
+
+ public boolean isContainerEventType(Class<?> type)
+ {
+ return CONTAINER_EVENT_CLASSES_SET.contains(type);
+ }
+
public boolean isContainerEventType(Object event)
{
if (event == null)
@@ -1608,24 +1637,14 @@ public final class WebBeansUtil
return false;
}
- if (AfterBeanDiscovery.class.isInstance(event)
- || AfterDeploymentValidation.class.isInstance(event)
- || BeforeShutdown.class.isInstance(event)
- || ProcessAnnotatedType.class.isInstance(event)
- || ProcessInjectionPoint.class.isInstance(event)
- || ProcessInjectionTarget.class.isInstance(event)
- || ProcessBeanAttributes.class.isInstance(event)
- || ProcessBean.class.isInstance(event)
- || ProcessObserverMethod.class.isInstance(event)
- || ProcessSessionBean.class.isInstance(event)
- || ProcessProducer.class.isInstance(event)
- || ProcessProducerField.class.isInstance(event)
- || ProcessProducerMethod.class.isInstance(event)
- || BeforeBeanDiscovery.class.isInstance(event))
+ for (Class<?> eventClass : CONTAINER_EVENT_CLASSES)
{
- return true;
+ if (eventClass.isInstance(event))
+ {
+ return true;
+ }
}
-
+
notContainerEvents.putIfAbsent(eventType, true);
return false;
}