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 2011/03/15 13:34:24 UTC

svn commit: r1081746 - in /openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans: config/ portable/

Author: struberg
Date: Tue Mar 15 12:34:23 2011
New Revision: 1081746

URL: http://svn.apache.org/viewvc?rev=1081746&view=rev
Log:
OWB-545 OWB-503 reduce static method usage + SecurityService work

Modified:
    openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/config/WebBeansContext.java
    openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/AbstractAnnotated.java
    openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/AbstractAnnotatedCallable.java
    openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/AbstractAnnotatedMember.java
    openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/AnnotatedConstructorImpl.java
    openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/AnnotatedElementFactory.java
    openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/AnnotatedFieldImpl.java
    openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/AnnotatedMethodImpl.java
    openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/AnnotatedParameterImpl.java
    openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/AnnotatedTypeImpl.java

Modified: openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/config/WebBeansContext.java
URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/config/WebBeansContext.java?rev=1081746&r1=1081745&r2=1081746&view=diff
==============================================================================
--- openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/config/WebBeansContext.java (original)
+++ openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/config/WebBeansContext.java Tue Mar 15 12:34:23 2011
@@ -67,7 +67,7 @@ public class WebBeansContext
     private WebBeansUtil webBeansUtil = new WebBeansUtil(this);
     private ContextFactory contextFactory = new ContextFactory(this);
     private AlternativesManager alternativesManager = new AlternativesManager(this);
-    private AnnotatedElementFactory annotatedElementFactory = new AnnotatedElementFactory();
+    private AnnotatedElementFactory annotatedElementFactory = new AnnotatedElementFactory(this);
     private BeanManagerImpl beanManagerImpl = new BeanManagerImpl(this);
     private ConversationManager conversationManager = new ConversationManager(this);
     private CreationalContextFactory creationalContextFactory = new CreationalContextFactory(this);

Modified: openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/AbstractAnnotated.java
URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/AbstractAnnotated.java?rev=1081746&r1=1081745&r2=1081746&view=diff
==============================================================================
--- openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/AbstractAnnotated.java (original)
+++ openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/AbstractAnnotated.java Tue Mar 15 12:34:23 2011
@@ -25,6 +25,7 @@ import java.util.Set;
 
 import javax.enterprise.inject.spi.Annotated;
 
+import org.apache.webbeans.config.WebBeansContext;
 import org.apache.webbeans.util.ClassUtil;
 
 /**
@@ -42,15 +43,19 @@ abstract class AbstractAnnotated impleme
     
     /**Set of annotations*/
     private Set<Annotation> annotations = new HashSet<Annotation>();
+
+    private WebBeansContext webBeansContext;
     
     /**
      * Createa a new annotated element.
-     * 
+     *
+     * @param webBeansContext our WebBeansContext
      * @param baseType annotated element type
      */
-    protected AbstractAnnotated(Type baseType)
+    protected AbstractAnnotated(WebBeansContext webBeansContext, Type baseType)
     {
         this.baseType = baseType;
+        this.webBeansContext = webBeansContext;
     }
 
     /**
@@ -62,7 +67,11 @@ abstract class AbstractAnnotated impleme
     {
         this.annotations.add(annotation);
     }
-    
+
+    protected WebBeansContext getWebBeansContext()
+    {
+        return webBeansContext;
+    }
 
     /**
      * Adds new annotation to set.

Modified: openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/AbstractAnnotatedCallable.java
URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/AbstractAnnotatedCallable.java?rev=1081746&r1=1081745&r2=1081746&view=diff
==============================================================================
--- openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/AbstractAnnotatedCallable.java (original)
+++ openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/AbstractAnnotatedCallable.java Tue Mar 15 12:34:23 2011
@@ -18,6 +18,8 @@
  */
 package org.apache.webbeans.portable;
 
+import org.apache.webbeans.config.WebBeansContext;
+
 import java.lang.annotation.Annotation;
 import java.lang.reflect.Member;
 import java.lang.reflect.Type;
@@ -40,20 +42,9 @@ abstract class AbstractAnnotatedCallable
     /**Annotated parameters*/
     private List<AnnotatedParameter<X>> annotatedParameters = new ArrayList<AnnotatedParameter<X>>();
     
-    /**
-     * Creates a new instance.
-     * 
-     * @param baseType base type
-     * @param javaMember member
-     */
-    AbstractAnnotatedCallable(Type baseType, Member javaMember)
-    {
-        this(baseType, javaMember, null);
-    }
-    
-    AbstractAnnotatedCallable(Type baseType, Member javaMember, AnnotatedType<X> declaringType)
+    AbstractAnnotatedCallable(WebBeansContext webBeansContext, Type baseType, Member javaMember, AnnotatedType<X> declaringType)
     {
-        super(baseType,javaMember,declaringType);
+        super(webBeansContext, baseType,javaMember,declaringType);
     }
     
     protected void setAnnotatedParameters(Type[] genericParameterTypes,Annotation[][] parameterAnnotations)
@@ -62,7 +53,7 @@ abstract class AbstractAnnotatedCallable
         
         for(Type genericParameter : genericParameterTypes)
         {
-            AnnotatedParameterImpl<X> parameterImpl = new AnnotatedParameterImpl<X>(genericParameter,this,i);
+            AnnotatedParameterImpl<X> parameterImpl = new AnnotatedParameterImpl<X>(getWebBeansContext(), genericParameter,this,i);
             parameterImpl.setAnnotations(parameterAnnotations[i]);
             
             addAnnotatedParameter(parameterImpl);

Modified: openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/AbstractAnnotatedMember.java
URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/AbstractAnnotatedMember.java?rev=1081746&r1=1081745&r2=1081746&view=diff
==============================================================================
--- openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/AbstractAnnotatedMember.java (original)
+++ openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/AbstractAnnotatedMember.java Tue Mar 15 12:34:23 2011
@@ -48,27 +48,16 @@ abstract class AbstractAnnotatedMember<X
     /**Member type*/
     protected final Member javaMember;
     
-    /**
-     * Creates a new instance.
-     * 
-     * @param baseType base type
-     * @param javaMember member
-     */
-    AbstractAnnotatedMember(Type baseType, Member javaMember)
-    {
-        this(baseType, javaMember, null);
-    }
-    
-    @SuppressWarnings("unchecked")    
-    AbstractAnnotatedMember(Type baseType, Member javaMember, AnnotatedType<X> declaringType)
+    @SuppressWarnings("unchecked")
+    AbstractAnnotatedMember(WebBeansContext webBeansContext, Type baseType, Member javaMember, AnnotatedType<X> declaringType)
     {
-        super(baseType);
+        super(webBeansContext, baseType);
         
         this.javaMember = javaMember;
         
         if(declaringType == null)
         {
-            this.declaringType = (AnnotatedType<X>) WebBeansContext.getInstance().getAnnotatedElementFactory().newAnnotatedType(this.javaMember.getDeclaringClass());
+            this.declaringType = (AnnotatedType<X>) getWebBeansContext().getAnnotatedElementFactory().newAnnotatedType(this.javaMember.getDeclaringClass());
             
             AnnotatedTypeImpl<X> impl = (AnnotatedTypeImpl<X>)this.declaringType;
             

Modified: openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/AnnotatedConstructorImpl.java
URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/AnnotatedConstructorImpl.java?rev=1081746&r1=1081745&r2=1081746&view=diff
==============================================================================
--- openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/AnnotatedConstructorImpl.java (original)
+++ openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/AnnotatedConstructorImpl.java Tue Mar 15 12:34:23 2011
@@ -18,6 +18,8 @@
  */
 package org.apache.webbeans.portable;
 
+import org.apache.webbeans.config.WebBeansContext;
+
 import java.lang.reflect.Constructor;
 
 import javax.enterprise.inject.spi.AnnotatedConstructor;
@@ -35,23 +37,11 @@ class AnnotatedConstructorImpl<X> extend
     /**
      * Create a ew instance.
      * 
-     * @param baseType base type info
-     * @param javaMember constructor
-     */
-    AnnotatedConstructorImpl(Constructor<X> javaMember)
-    {
-        this(javaMember, null);
-    }
-    
-    /**
-     * Create a ew instance.
-     * 
-     * @param baseType base type info
      * @param javaMember constructor
      */
-    AnnotatedConstructorImpl(Constructor<X> javaMember, AnnotatedType<X> declaringType)
+    AnnotatedConstructorImpl(WebBeansContext webBeansContext, Constructor<X> javaMember, AnnotatedType<X> declaringType)
     {        
-        super(javaMember.getDeclaringClass(), javaMember, declaringType);
+        super(webBeansContext, javaMember.getDeclaringClass(), javaMember, declaringType);
         setAnnotations(javaMember.getDeclaredAnnotations());
         setAnnotatedParameters(javaMember.getGenericParameterTypes(), javaMember.getParameterAnnotations());
     }

Modified: openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/AnnotatedElementFactory.java
URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/AnnotatedElementFactory.java?rev=1081746&r1=1081745&r2=1081746&view=diff
==============================================================================
--- openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/AnnotatedElementFactory.java (original)
+++ openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/AnnotatedElementFactory.java Tue Mar 15 12:34:23 2011
@@ -66,12 +66,15 @@ public final class AnnotatedElementFacto
     //Cache of AnnotatedField
     private ConcurrentMap<Field, AnnotatedField<?>> annotatedFieldCache =
         new ConcurrentHashMap<Field, AnnotatedField<?>>();
+
+    private WebBeansContext webBeansContext;
     
     /**
      * No instantiate.
      */
-    public AnnotatedElementFactory()
+    public AnnotatedElementFactory(WebBeansContext webBeansContext)
     {
+        this.webBeansContext = webBeansContext;
     }
 
     /**
@@ -94,7 +97,7 @@ public final class AnnotatedElementFacto
         {
             try
             {
-                annotatedType = new AnnotatedTypeImpl<X>(annotatedClass);
+                annotatedType = new AnnotatedTypeImpl<X>(webBeansContext, annotatedClass);
 
                 AnnotatedTypeImpl<X> oldType = (AnnotatedTypeImpl<X>)annotatedTypeCache.putIfAbsent(annotatedClass, annotatedType);
                 if(oldType != null)
@@ -153,7 +156,7 @@ public final class AnnotatedElementFacto
         }
         else
         {
-            annConstructor = new AnnotatedConstructorImpl<X>(constructor, declaringClass);
+            annConstructor = new AnnotatedConstructorImpl<X>(webBeansContext, constructor, declaringClass);
             AnnotatedConstructorImpl<X> old = (AnnotatedConstructorImpl<X>)annotatedConstructorCache.putIfAbsent(constructor, annConstructor);
             if(old != null)
             {
@@ -185,7 +188,7 @@ public final class AnnotatedElementFacto
         }
         else
         {
-            annotField = new AnnotatedFieldImpl<X>(field, declaringClass);
+            annotField = new AnnotatedFieldImpl<X>(webBeansContext, field, declaringClass);
             AnnotatedFieldImpl<X> old = (AnnotatedFieldImpl<X>) annotatedFieldCache.putIfAbsent(field, annotField);
             if(old != null)
             {
@@ -217,7 +220,7 @@ public final class AnnotatedElementFacto
         }
         else
         {
-            annotMethod = new AnnotatedMethodImpl<X>(method, declaringType);
+            annotMethod = new AnnotatedMethodImpl<X>(webBeansContext, method, declaringType);
             AnnotatedMethodImpl<X> old = (AnnotatedMethodImpl<X>) annotatedMethodCache.putIfAbsent(method, annotMethod);
             if(old != null)
             {

Modified: openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/AnnotatedFieldImpl.java
URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/AnnotatedFieldImpl.java?rev=1081746&r1=1081745&r2=1081746&view=diff
==============================================================================
--- openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/AnnotatedFieldImpl.java (original)
+++ openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/AnnotatedFieldImpl.java Tue Mar 15 12:34:23 2011
@@ -18,6 +18,8 @@
  */
 package org.apache.webbeans.portable;
 
+import org.apache.webbeans.config.WebBeansContext;
+
 import java.lang.reflect.Field;
 
 import javax.enterprise.inject.spi.AnnotatedField;
@@ -36,23 +38,12 @@ public class AnnotatedFieldImpl<X> exten
     /**
      * Creates a new instance
      * 
-     * @param baseType base type
-     * @param javaMember field
-     */
-    AnnotatedFieldImpl(Field javaMember)
-    {
-        this(javaMember, null);
-    }    
-    
-    /**
-     * Creates a new instance
-     * 
-     * @param baseType base type
+     * @param declaringType base type
      * @param javaMember field
      */
-    AnnotatedFieldImpl(Field javaMember, AnnotatedType<X> declaringType)
+    AnnotatedFieldImpl(WebBeansContext webBeansContext, Field javaMember, AnnotatedType<X> declaringType)
     {
-        super(javaMember.getGenericType(), javaMember,declaringType);
+        super(webBeansContext, javaMember.getGenericType(), javaMember,declaringType);
         
         setAnnotations(javaMember.getDeclaredAnnotations());
     }

Modified: openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/AnnotatedMethodImpl.java
URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/AnnotatedMethodImpl.java?rev=1081746&r1=1081745&r2=1081746&view=diff
==============================================================================
--- openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/AnnotatedMethodImpl.java (original)
+++ openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/AnnotatedMethodImpl.java Tue Mar 15 12:34:23 2011
@@ -18,6 +18,8 @@
  */
 package org.apache.webbeans.portable;
 
+import org.apache.webbeans.config.WebBeansContext;
+
 import java.lang.reflect.Method;
 
 import javax.enterprise.inject.spi.AnnotatedMethod;
@@ -36,24 +38,12 @@ class AnnotatedMethodImpl<X> extends Abs
     /**
      * Create a ew instance.
      * 
-     * @param baseType base type info
-     * @param javaMember method
-     */
-    AnnotatedMethodImpl(Method javaMember)
-    {
-        this(javaMember, null);
-    }
-    
-    /**
-     * Create a ew instance.
-     * 
-     * @param baseType base type info
      * @param declaringType declaring type
      * @param javaMember method
      */
-    AnnotatedMethodImpl(Method javaMember,AnnotatedType<X> declaringType)
+    AnnotatedMethodImpl(WebBeansContext webBeansContext, Method javaMember,AnnotatedType<X> declaringType)
     {        
-        super(javaMember.getGenericReturnType(), javaMember,declaringType);
+        super(webBeansContext, javaMember.getGenericReturnType(), javaMember,declaringType);
         setAnnotations(javaMember.getDeclaredAnnotations());
         setAnnotatedParameters(javaMember.getGenericParameterTypes(), javaMember.getParameterAnnotations());
     }

Modified: openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/AnnotatedParameterImpl.java
URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/AnnotatedParameterImpl.java?rev=1081746&r1=1081745&r2=1081746&view=diff
==============================================================================
--- openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/AnnotatedParameterImpl.java (original)
+++ openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/AnnotatedParameterImpl.java Tue Mar 15 12:34:23 2011
@@ -18,6 +18,8 @@
  */
 package org.apache.webbeans.portable;
 
+import org.apache.webbeans.config.WebBeansContext;
+
 import java.lang.reflect.Type;
 
 import javax.enterprise.inject.spi.AnnotatedCallable;
@@ -38,9 +40,9 @@ class AnnotatedParameterImpl<X> extends 
     /**Parameter position*/
     private final int position;
     
-    AnnotatedParameterImpl(Type baseType, AnnotatedCallable<X> declaringCallable, int position)
+    AnnotatedParameterImpl(WebBeansContext webBeansContext, Type baseType, AnnotatedCallable<X> declaringCallable, int position)
     {
-        super(baseType);
+        super(webBeansContext, baseType);
         this.declaringCallable = declaringCallable;
         this.position = position;
     }

Modified: openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/AnnotatedTypeImpl.java
URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/AnnotatedTypeImpl.java?rev=1081746&r1=1081745&r2=1081746&view=diff
==============================================================================
--- openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/AnnotatedTypeImpl.java (original)
+++ openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/AnnotatedTypeImpl.java Tue Mar 15 12:34:23 2011
@@ -18,7 +18,7 @@
  */
 package org.apache.webbeans.portable;
 
-import org.apache.webbeans.util.SecurityUtil;
+import org.apache.webbeans.config.WebBeansContext;
 
 import java.lang.reflect.Constructor;
 import java.lang.reflect.Field;
@@ -58,9 +58,9 @@ class AnnotatedTypeImpl<X> extends Abstr
      * 
      * @param annotatedClass class
      */
-    AnnotatedTypeImpl(Class<X> annotatedClass)
+    AnnotatedTypeImpl(WebBeansContext webBeansContext, Class<X> annotatedClass)
     {
-        super(annotatedClass);        
+        super(webBeansContext, annotatedClass);
         this.annotatedClass = annotatedClass;     
         
         setAnnotations(annotatedClass.getDeclaredAnnotations());
@@ -74,24 +74,24 @@ class AnnotatedTypeImpl<X> extends Abstr
             fields = new HashSet<AnnotatedField<? super X>>();
             methods = new HashSet<AnnotatedMethod<? super X>>();
 
-            Field[] decFields = SecurityUtil.doPrivilegedGetDeclaredFields(annotatedClass);
-            Method[] decMethods = SecurityUtil.doPrivilegedGetDeclaredMethods(annotatedClass);
-            Constructor<X>[] decCtxs = SecurityUtil.doPrivilegedGetDeclaredConstructors(annotatedClass);
+            Field[] decFields = getWebBeansContext().getSecurityService().doPrivilegedGetDeclaredFields(annotatedClass);
+            Method[] decMethods = getWebBeansContext().getSecurityService().doPrivilegedGetDeclaredMethods(annotatedClass);
+            Constructor<?>[] decCtxs = getWebBeansContext().getSecurityService().doPrivilegedGetDeclaredConstructors(annotatedClass);
             for(Field f : decFields)
             {
-                AnnotatedField<X> af = new AnnotatedFieldImpl<X>(f, this);
+                AnnotatedField<X> af = new AnnotatedFieldImpl<X>(getWebBeansContext(), f, this);
                 fields.add(af);
             }
 
             for(Method m : decMethods)
             {
-                AnnotatedMethod<X> am = new AnnotatedMethodImpl<X>(m,this);
+                AnnotatedMethod<X> am = new AnnotatedMethodImpl<X>(getWebBeansContext(), m,this);
                 methods.add(am);
             }
 
-            for(Constructor<X> ct : decCtxs)
+            for(Constructor<?> ct : decCtxs)
             {
-                AnnotatedConstructor<X> ac = new AnnotatedConstructorImpl<X>(ct,this);
+                AnnotatedConstructor<X> ac = new AnnotatedConstructorImpl<X>(getWebBeansContext(), (Constructor<X>) ct,this);
                 constructors.add(ac);
             }
         }