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 2013/01/04 23:39:18 UTC
svn commit: r1429163 - in
/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans:
annotation/ config/ container/ intercept/ intercept/webbeans/
portable/events/discovery/
Author: struberg
Date: Fri Jan 4 22:39:17 2013
New Revision: 1429163
URL: http://svn.apache.org/viewvc?rev=1429163&view=rev
Log:
OWB-749 move extension added info to InterceptorsManager
Modified:
openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/annotation/AnnotationManager.java
openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/config/BeansDeployer.java
openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/container/BeanManagerImpl.java
openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/intercept/InterceptorsManager.java
openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/intercept/webbeans/WebBeansInterceptorBean.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/BeforeBeanDiscoveryImpl.java
Modified: openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/annotation/AnnotationManager.java
URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/annotation/AnnotationManager.java?rev=1429163&r1=1429162&r2=1429163&view=diff
==============================================================================
--- openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/annotation/AnnotationManager.java (original)
+++ openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/annotation/AnnotationManager.java Fri Jan 4 22:39:17 2013
@@ -94,7 +94,7 @@ public final class AnnotationManager
Asserts.nullCheckForClass(clazz);
return clazz.isAnnotationPresent(InterceptorBinding.class)
- || beanManagerImpl.hasInterceptorBindingType(clazz);
+ || webBeansContext.getInterceptorsManager().hasInterceptorBindingType(clazz);
}
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=1429163&r1=1429162&r2=1429163&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 Fri Jan 4 22:39:17 2013
@@ -881,8 +881,8 @@ public class BeansDeployer
}
else
{
- if(webBeansContext.getBeanManagerImpl().containsCustomDecoratorClass(annotatedType.getJavaClass()) ||
- webBeansContext.getBeanManagerImpl().containsCustomInterceptorClass(annotatedType.getJavaClass()))
+ if (webBeansContext.getBeanManagerImpl().containsCustomDecoratorClass(annotatedType.getJavaClass()) ||
+ webBeansContext.getInterceptorsManager().containsCustomInterceptorClass(annotatedType.getJavaClass()))
{
return false;
}
Modified: openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/container/BeanManagerImpl.java
URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/container/BeanManagerImpl.java?rev=1429163&r1=1429162&r2=1429163&view=diff
==============================================================================
--- openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/container/BeanManagerImpl.java (original)
+++ openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/container/BeanManagerImpl.java Fri Jan 4 22:39:17 2013
@@ -148,13 +148,6 @@ public class BeanManagerImpl implements
/**Additional decorator class*/
private List<Class<?>> additionalDecoratorClasses = new ArrayList<Class<?>>();
-
- /**Additional interceptor class*/
- private List<Class<?>> additionalInterceptorClasses = new ArrayList<Class<?>>();
-
- /**Additional interceptor binding types we got via Extensions */
- private Map<Class<? extends Annotation>, Set<Annotation>> additionalInterceptorBindingTypes
- = new HashMap<Class<? extends Annotation>, Set<Annotation>>();
/**
* This list contains additional qualifiers which got set via the
@@ -409,24 +402,11 @@ public class BeanManagerImpl implements
}
- //X TODO move to InterceptorsManager
- public void addCustomInterceptorClass(Class<?> clazz)
- {
- Asserts.nullCheckForClass(clazz);
- additionalInterceptorClasses.add(clazz);
- }
-
public void addCustomDecoratorClass(Class<?> clazz)
{
Asserts.nullCheckForClass(clazz);
additionalDecoratorClasses.add(clazz);
}
-
- public boolean containsCustomInterceptorClass(Class<?> clazz)
- {
- Asserts.nullCheckForClass(clazz);
- return additionalInterceptorClasses.contains(clazz);
- }
public boolean containsCustomDecoratorClass(Class<?> clazz)
{
@@ -434,32 +414,6 @@ public class BeanManagerImpl implements
return additionalDecoratorClasses.contains(clazz);
}
- public void addInterceptorBindingType(Class<? extends Annotation> bindingType, Annotation... inheritsArray)
- {
- Set<Annotation> inherits = additionalInterceptorBindingTypes.get(bindingType);
- if (inherits == null)
- {
- inherits = new HashSet<Annotation>();
- additionalInterceptorBindingTypes.put(bindingType, inherits);
- }
- for(Annotation ann : inheritsArray)
- {
- inherits.add(ann);
- }
-
- }
-
- public boolean hasInterceptorBindingType(Class<? extends Annotation> bindingType)
- {
- return additionalInterceptorBindingTypes.keySet().contains(bindingType);
- }
-
-
- public Set<Annotation> getInterceptorBindingTypeMetaAnnotations(Class<? extends Annotation> interceptorBindingType)
- {
- return Collections.unmodifiableSet(additionalInterceptorBindingTypes.get(interceptorBindingType));
- }
-
/**
* {@inheritDoc}
*/
@@ -1077,8 +1031,6 @@ public class BeanManagerImpl implements
{
additionalAnnotatedTypes.clear();
additionalDecoratorClasses.clear();
- additionalInterceptorClasses.clear();
- additionalInterceptorBindingTypes.clear();
additionalQualifiers.clear();
additionalScopes.clear();
clearCacheProxies();
@@ -1090,7 +1042,7 @@ public class BeanManagerImpl implements
producers.clear();
passivationBeans.clear();
webBeansDecorators.clear();
- webBeansContext.getInterceptorsManager().getInterceptors().clear();
+ webBeansContext.getInterceptorsManager().clear();
}
public void clearCacheProxies()
Modified: openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/intercept/InterceptorsManager.java
URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/intercept/InterceptorsManager.java?rev=1429163&r1=1429162&r2=1429163&view=diff
==============================================================================
--- openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/intercept/InterceptorsManager.java (original)
+++ openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/intercept/InterceptorsManager.java Fri Jan 4 22:39:17 2013
@@ -18,8 +18,14 @@
*/
package org.apache.webbeans.intercept;
+import java.lang.annotation.Annotation;
import java.util.ArrayList;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.HashSet;
import java.util.List;
+import java.util.Map;
+import java.util.Set;
import java.util.concurrent.CopyOnWriteArrayList;
import javax.enterprise.inject.spi.AnnotatedType;
@@ -39,11 +45,26 @@ public class InterceptorsManager
private final WebBeansContext webBeansContext;
private final BeanManagerImpl beanManager;
- private List<Class<?>> enabledInterceptorClasses = new CopyOnWriteArrayList<Class<?>>();
+ /**
+ * Interceptor classes which got added via beans.xml
+ */
+ private List<Class<?>> configuredInterceptorClasses = new CopyOnWriteArrayList<Class<?>>();
- /**Active interceptors*/
+ /**
+ * Active interceptors
+ */
private List<Interceptor<?>> webBeansInterceptors = new ArrayList<Interceptor<?>>();
+ /**Additional interceptor class*/
+ private List<Class<?>> additionalInterceptorClasses = new ArrayList<Class<?>>();
+
+ /**
+ * Additional interceptor binding types we got via Extensions
+ */
+ private Map<Class<? extends Annotation>, Set<Annotation>> additionalInterceptorBindingTypes
+ = new HashMap<Class<? extends Annotation>, Set<Annotation>>();
+
+
public InterceptorsManager(WebBeansContext webBeansContext)
{
this.webBeansContext = webBeansContext;
@@ -51,15 +72,27 @@ public class InterceptorsManager
}
/**
+ * Clears all info.
+ * This must only be called by the BeanManager.
+ */
+ public void clear()
+ {
+ additionalInterceptorBindingTypes.clear();
+ additionalInterceptorClasses.clear();
+ configuredInterceptorClasses.clear();
+ }
+
+
+ /**
* Add a certain class to the enabled interceptors list.
*/
public void addNewInterceptorClass(Class<?> interceptorClazz)
{
Asserts.nullCheckForClass(interceptorClazz, "interceptorClazz can not be null");
- if (!enabledInterceptorClasses.contains(interceptorClazz))
+ if (!configuredInterceptorClasses.contains(interceptorClazz))
{
- enabledInterceptorClasses.add(interceptorClazz);
+ configuredInterceptorClasses.add(interceptorClazz);
}
}
@@ -71,13 +104,13 @@ public class InterceptorsManager
Asserts.assertNotNull(src, "src parameter can not be null");
Asserts.assertNotNull(target, "target parameter can not be null");
- int srcIndex = enabledInterceptorClasses.indexOf(src);
+ int srcIndex = configuredInterceptorClasses.indexOf(src);
if (srcIndex == -1)
{
throw new IllegalArgumentException(src.getName() + " is not an enabled interceptor!");
}
- int targetIndex = enabledInterceptorClasses.indexOf(target);
+ int targetIndex = configuredInterceptorClasses.indexOf(target);
if (targetIndex == -1)
{
throw new IllegalArgumentException(target.getName() + " is not an enabled interceptor!");
@@ -105,7 +138,7 @@ public class InterceptorsManager
{
Asserts.nullCheckForClass(interceptorClazz, "interceptorClazz can not be null");
- return enabledInterceptorClasses.contains(interceptorClazz);
+ return configuredInterceptorClasses.contains(interceptorClazz);
}
@@ -117,7 +150,7 @@ public class InterceptorsManager
OwbBean<?> owbBean = (OwbBean<?>)interceptor;
if(owbBean.isPassivationCapable())
{
- beanManager.addPassivationInfo((OwbBean)interceptor);
+ beanManager.addPassivationInfo((OwbBean) interceptor);
}
}
@@ -129,15 +162,54 @@ public class InterceptorsManager
return webBeansInterceptors;
}
+ public void addCustomInterceptorClass(Class<?> clazz)
+ {
+ Asserts.nullCheckForClass(clazz);
+ additionalInterceptorClasses.add(clazz);
+ }
+
+ public boolean containsCustomInterceptorClass(Class<?> clazz)
+ {
+ Asserts.nullCheckForClass(clazz);
+ return additionalInterceptorClasses.contains(clazz);
+ }
+
+ public void addInterceptorBindingType(Class<? extends Annotation> bindingType, Annotation... inheritsArray)
+ {
+ Set<Annotation> inherits = additionalInterceptorBindingTypes.get(bindingType);
+ if (inherits == null)
+ {
+ inherits = new HashSet<Annotation>();
+ additionalInterceptorBindingTypes.put(bindingType, inherits);
+ }
+ for(Annotation ann : inheritsArray)
+ {
+ inherits.add(ann);
+ }
+
+ }
+
+ public boolean hasInterceptorBindingType(Class<? extends Annotation> bindingType)
+ {
+ return additionalInterceptorBindingTypes.keySet().contains(bindingType);
+ }
+
+
+ public Set<Annotation> getInterceptorBindingTypeMetaAnnotations(Class<? extends Annotation> interceptorBindingType)
+ {
+ return Collections.unmodifiableSet(additionalInterceptorBindingTypes.get(interceptorBindingType));
+ }
+
+
public void validateInterceptorClasses()
{
- for(Class<?> interceptorClass : enabledInterceptorClasses)
+ for(Class<?> interceptorClass : configuredInterceptorClasses)
{
AnnotatedType<?> annotatedType = webBeansContext.getAnnotatedElementFactory().newAnnotatedType(interceptorClass);
// Validate decorator classes
if(!annotatedType.isAnnotationPresent(javax.interceptor.Interceptor.class) &&
- !beanManager.containsCustomInterceptorClass(interceptorClass))
+ !containsCustomInterceptorClass(interceptorClass))
{
throw new WebBeansConfigurationException("Given class : " + interceptorClass + " is not a interceptor class");
}
Modified: openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/intercept/webbeans/WebBeansInterceptorBean.java
URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/intercept/webbeans/WebBeansInterceptorBean.java?rev=1429163&r1=1429162&r2=1429163&view=diff
==============================================================================
--- openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/intercept/webbeans/WebBeansInterceptorBean.java (original)
+++ openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/intercept/webbeans/WebBeansInterceptorBean.java Fri Jan 4 22:39:17 2013
@@ -199,9 +199,9 @@ public class WebBeansInterceptorBean<T>
Set<Annotation> declared = null;
Annotation[] anns = null;
- if (webBeansContext.getBeanManagerImpl().hasInterceptorBindingType(clazzAnnot))
+ if (webBeansContext.getInterceptorsManager().hasInterceptorBindingType(clazzAnnot))
{
- declared = webBeansContext.getBeanManagerImpl().getInterceptorBindingTypeMetaAnnotations(clazzAnnot);
+ declared = webBeansContext.getInterceptorsManager().getInterceptorBindingTypeMetaAnnotations(clazzAnnot);
anns = new Annotation[declared.size()];
anns = declared.toArray(anns);
}
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=1429163&r1=1429162&r2=1429163&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 Fri Jan 4 22:39:17 2013
@@ -109,7 +109,7 @@ public class AfterBeanDiscoveryImpl impl
InterceptorsManager interceptorsManager = webBeansContext.getInterceptorsManager();
interceptorsManager.addInterceptor(interceptor);
- webBeansContext.getBeanManagerImpl().addCustomInterceptorClass(bean.getBeanClass());
+ webBeansContext.getInterceptorsManager().addCustomInterceptorClass(bean.getBeanClass());
}
else if(bean instanceof Decorator)
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=1429163&r1=1429162&r2=1429163&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 Fri Jan 4 22:39:17 2013
@@ -68,7 +68,7 @@ public class BeforeBeanDiscoveryImpl imp
*/
public void addInterceptorBinding(Class<? extends Annotation> binding, Annotation... bindingDef)
{
- webBeansContext.getBeanManagerImpl().addInterceptorBindingType(binding, bindingDef);
+ webBeansContext.getInterceptorsManager().addInterceptorBindingType(binding, bindingDef);
}
/**
@@ -90,4 +90,4 @@ public class BeforeBeanDiscoveryImpl imp
webBeansContext.getStereoTypeManager().addStereoTypeModel(model);
}
-}
\ No newline at end of file
+}