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/23 12:10:32 UTC

svn commit: r1084537 - in /openwebbeans/trunk: webbeans-ejb/src/main/java/org/apache/webbeans/ejb/common/util/ webbeans-impl/src/main/java/org/apache/webbeans/component/ webbeans-impl/src/main/java/org/apache/webbeans/component/creation/ webbeans-impl/...

Author: struberg
Date: Wed Mar 23 11:10:30 2011
New Revision: 1084537

URL: http://svn.apache.org/viewvc?rev=1084537&view=rev
Log:
OWB-545 drop a few more SecurityUtil calls

Modified:
    openwebbeans/trunk/webbeans-ejb/src/main/java/org/apache/webbeans/ejb/common/util/EjbDefinitionUtility.java
    openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/AbstractInjectionTargetBean.java
    openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/creation/AbstractBeanCreator.java
    openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/creation/AbstractInjectedTargetBeanCreator.java
    openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/creation/AnnotatedTypeBeanCreatorImpl.java
    openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/creation/ManagedBeanCreatorImpl.java
    openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/config/BeansDeployer.java
    openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/config/DefinitionUtil.java
    openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/config/ManagedBeanConfigurator.java
    openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/config/WebBeansContext.java
    openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/decorator/WebBeansDecorator.java
    openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/inject/OWBInjector.java
    openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/util/AnnotationUtil.java
    openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/util/ClassUtil.java
    openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/util/SecurityUtil.java
    openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/util/WebBeansAnnotatedTypeUtil.java
    openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/util/WebBeansUtil.java
    openwebbeans/trunk/webbeans-porting/src/main/java/org/apache/webbeans/test/tck/BeansImpl.java

Modified: openwebbeans/trunk/webbeans-ejb/src/main/java/org/apache/webbeans/ejb/common/util/EjbDefinitionUtility.java
URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-ejb/src/main/java/org/apache/webbeans/ejb/common/util/EjbDefinitionUtility.java?rev=1084537&r1=1084536&r2=1084537&view=diff
==============================================================================
--- openwebbeans/trunk/webbeans-ejb/src/main/java/org/apache/webbeans/ejb/common/util/EjbDefinitionUtility.java (original)
+++ openwebbeans/trunk/webbeans-ejb/src/main/java/org/apache/webbeans/ejb/common/util/EjbDefinitionUtility.java Wed Mar 23 11:10:30 2011
@@ -78,7 +78,7 @@ public final class EjbDefinitionUtility
                 clazz = bean.getWebBeansContext().getJavassistProxyFactory().defineEjbBeanProxyClass(bean, iface, factory);
             }
             
-            proxyInstance = (T) ClassUtil.newInstance(clazz);
+            proxyInstance = (T) ClassUtil.newInstance(bean.getWebBeansContext(), clazz);
             
             EjbBeanProxyHandler handler = new EjbBeanProxyHandler(bean, creationalContext);
             ((ProxyObject)proxyInstance).setHandler(handler);

Modified: openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/AbstractInjectionTargetBean.java
URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/AbstractInjectionTargetBean.java?rev=1084537&r1=1084536&r2=1084537&view=diff
==============================================================================
--- openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/AbstractInjectionTargetBean.java (original)
+++ openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/AbstractInjectionTargetBean.java Wed Mar 23 11:10:30 2011
@@ -51,7 +51,6 @@ import org.apache.webbeans.intercept.Inv
 import org.apache.webbeans.intercept.webbeans.WebBeansInterceptor;
 import org.apache.webbeans.proxy.JavassistProxyFactory;
 import org.apache.webbeans.spi.ResourceInjectionService;
-import org.apache.webbeans.util.ClassUtil;
 import org.apache.webbeans.util.WebBeansUtil;
 
 /**
@@ -329,12 +328,33 @@ public abstract class AbstractInjectionT
                     Object reference = getManager().getReference(injectionPointBean, InjectionPoint.class,
                                              getManager().createCreationalContext(injectionPointBean));
                     
-                    ClassUtil.setField(instance, field, reference);
+                    setField(instance, field, reference);
                 }
             }
         }                
     }
-    
+
+    private void setField(T instance, Field field, Object value)
+    {
+        if(!field.isAccessible())
+        {
+            getWebBeansContext().getSecurityService().doPrivilegedSetAccessible(field, true);
+        }
+
+        try
+        {
+            field.set(instance, value);
+        }
+        catch (IllegalArgumentException e)
+        {
+            throw new WebBeansException(e);
+        }
+        catch (IllegalAccessException e)
+        {
+            throw new WebBeansException(e);
+        }
+    }
+
     public void injectSuperFields(T instance, CreationalContext<T> creationalContext)
     {
         Set<Field> fields = getInjectedFromSuperFields();

Modified: openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/creation/AbstractBeanCreator.java
URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/creation/AbstractBeanCreator.java?rev=1084537&r1=1084536&r2=1084537&view=diff
==============================================================================
--- openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/creation/AbstractBeanCreator.java (original)
+++ openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/creation/AbstractBeanCreator.java Wed Mar 23 11:10:30 2011
@@ -52,6 +52,8 @@ public class AbstractBeanCreator<T> impl
      * to define bean instance instead of using class artifacts.
      */
     private AnnotatedType<T> annotatedType;
+
+    private final DefinitionUtil definitionUtil;
     
     /**
      * Creates a bean instance.
@@ -62,7 +64,8 @@ public class AbstractBeanCreator<T> impl
     public AbstractBeanCreator(AbstractOwbBean<T> bean, Annotation[] beanAnnotations)
     {
         this.bean = bean;
-        this.beanAnnotations = beanAnnotations;           
+        this.beanAnnotations = beanAnnotations;
+        this.definitionUtil = bean.getWebBeansContext().getDefinitionUtil();
     }
 
     /**
@@ -99,11 +102,11 @@ public class AbstractBeanCreator<T> impl
     {
         if(isDefaultMetaDataProvider())
         {
-            DefinitionUtil.defineQualifiers(this.bean, this.beanAnnotations);
+            definitionUtil.defineQualifiers(this.bean, this.beanAnnotations);
         }
         else
         {
-            DefinitionUtil.defineQualifiers(this.bean, AnnotationUtil.getAnnotationsFromSet(this.annotatedType.getAnnotations()));
+            definitionUtil.defineQualifiers(this.bean, AnnotationUtil.getAnnotationsFromSet(this.annotatedType.getAnnotations()));
         }
         
     }
@@ -116,11 +119,11 @@ public class AbstractBeanCreator<T> impl
     {
         if(isDefaultMetaDataProvider())
         {
-            DefinitionUtil.defineName(this.bean, this.beanAnnotations, defaultName);
+            definitionUtil.defineName(this.bean, this.beanAnnotations, defaultName);
         }
         else
         {
-            DefinitionUtil.defineName(this.bean, AnnotationUtil.getAnnotationsFromSet(this.annotatedType.getAnnotations()), 
+            definitionUtil.defineName(this.bean, AnnotationUtil.getAnnotationsFromSet(this.annotatedType.getAnnotations()),
                     WebBeansUtil.getManagedBeanDefaultName(annotatedType.getJavaClass().getSimpleName()));
         }
         
@@ -134,11 +137,11 @@ public class AbstractBeanCreator<T> impl
     {
         if(isDefaultMetaDataProvider())
         {
-            DefinitionUtil.defineScopeType(this.bean, this.beanAnnotations, errorMessage, allowLazyInit);
+            definitionUtil.defineScopeType(this.bean, this.beanAnnotations, errorMessage, allowLazyInit);
         }
         else
         {
-            DefinitionUtil.defineScopeType(this.bean, AnnotationUtil.getAnnotationsFromSet(this.annotatedType.getAnnotations()), errorMessage, false);
+            definitionUtil.defineScopeType(this.bean, AnnotationUtil.getAnnotationsFromSet(this.annotatedType.getAnnotations()), errorMessage, false);
         }
     }
 
@@ -148,7 +151,7 @@ public class AbstractBeanCreator<T> impl
     @Override
     public void defineSerializable()
     {
-        DefinitionUtil.defineSerializable(this.bean);        
+        definitionUtil.defineSerializable(this.bean);
     }
 
     /**
@@ -159,11 +162,11 @@ public class AbstractBeanCreator<T> impl
     {
         if(isDefaultMetaDataProvider())
         {
-            DefinitionUtil.defineStereoTypes(this.bean, this.beanAnnotations);
+            definitionUtil.defineStereoTypes(this.bean, this.beanAnnotations);
         }
         else
         {
-            DefinitionUtil.defineStereoTypes(this.bean, AnnotationUtil.getAnnotationsFromSet(this.annotatedType.getAnnotations()));
+            definitionUtil.defineStereoTypes(this.bean, AnnotationUtil.getAnnotationsFromSet(this.annotatedType.getAnnotations()));
         }
         
     }

Modified: openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/creation/AbstractInjectedTargetBeanCreator.java
URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/creation/AbstractInjectedTargetBeanCreator.java?rev=1084537&r1=1084536&r2=1084537&view=diff
==============================================================================
--- openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/creation/AbstractInjectedTargetBeanCreator.java (original)
+++ openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/creation/AbstractInjectedTargetBeanCreator.java Wed Mar 23 11:10:30 2011
@@ -25,7 +25,6 @@ import javax.enterprise.inject.spi.Obser
 import org.apache.webbeans.component.AbstractInjectionTargetBean;
 import org.apache.webbeans.component.ProducerFieldBean;
 import org.apache.webbeans.component.ProducerMethodBean;
-import org.apache.webbeans.config.DefinitionUtil;
 import org.apache.webbeans.util.WebBeansAnnotatedTypeUtil;
 
 /**
@@ -54,13 +53,15 @@ public abstract class AbstractInjectedTa
     @Override
     public void defineDisposalMethods()
     {
+        AbstractInjectionTargetBean bean = getBean();
         if(isDefaultMetaDataProvider())
         {
-            DefinitionUtil.defineDisposalMethods(getBean());   
+
+            bean.getWebBeansContext().getDefinitionUtil().defineDisposalMethods(getBean());
         }
         else
         {
-            WebBeansAnnotatedTypeUtil.defineDisposalMethods(getBean(), getAnnotatedType());
+            bean.getWebBeansContext().getAnnotatedTypeUtil().defineDisposalMethods(getBean(), getAnnotatedType());
         }
         
     }
@@ -71,13 +72,14 @@ public abstract class AbstractInjectedTa
     @Override
     public void defineInjectedFields()
     {
+        AbstractInjectionTargetBean bean = getBean();
         if(isDefaultMetaDataProvider())
         {
-            DefinitionUtil.defineInjectedFields(getBean());   
+            bean.getWebBeansContext().getDefinitionUtil().defineInjectedFields(bean);
         }
         else
         {
-            WebBeansAnnotatedTypeUtil.defineInjectedFields(getBean(), getAnnotatedType());
+            WebBeansAnnotatedTypeUtil.defineInjectedFields(bean, getAnnotatedType());
         }
         
     }
@@ -88,13 +90,14 @@ public abstract class AbstractInjectedTa
     @Override
     public void defineInjectedMethods()
     {
+        AbstractInjectionTargetBean bean = getBean();
         if(isDefaultMetaDataProvider())
         {
-            DefinitionUtil.defineInjectedMethods(getBean());
+            bean.getWebBeansContext().getDefinitionUtil().defineInjectedMethods(bean);
         }
         else
         {
-            WebBeansAnnotatedTypeUtil.defineInjectedMethods(getBean(), getAnnotatedType());
+            bean.getWebBeansContext().getAnnotatedTypeUtil().defineInjectedMethods(bean, getAnnotatedType());
         }
         
     }
@@ -105,13 +108,14 @@ public abstract class AbstractInjectedTa
     @Override
     public Set<ObserverMethod<?>> defineObserverMethods()
     {   
+        AbstractInjectionTargetBean bean = getBean();
         if(isDefaultMetaDataProvider())
         {
-            return DefinitionUtil.defineObserverMethods(getBean(), getBean().getReturnType());
+            return bean.getWebBeansContext().getDefinitionUtil().defineObserverMethods(bean, bean.getReturnType());
         }
         else
         {
-            return WebBeansAnnotatedTypeUtil.defineObserverMethods(getBean(), getAnnotatedType());
+            return bean.getWebBeansContext().getAnnotatedTypeUtil().defineObserverMethods(bean, getAnnotatedType());
         }
     }
 
@@ -121,13 +125,14 @@ public abstract class AbstractInjectedTa
     @Override
     public Set<ProducerFieldBean<?>> defineProducerFields()
     {
+        AbstractInjectionTargetBean bean = getBean();
         if(isDefaultMetaDataProvider())
         {
-            return DefinitionUtil.defineProduerFields(getBean());
+            return bean.getWebBeansContext().getDefinitionUtil().defineProduerFields(bean);
         }
         else
         {
-            return WebBeansAnnotatedTypeUtil.defineProducerFields(getBean(), getAnnotatedType());
+            return bean.getWebBeansContext().getAnnotatedTypeUtil().defineProducerFields(bean, getAnnotatedType());
         }
     }
 
@@ -137,13 +142,14 @@ public abstract class AbstractInjectedTa
     @Override
     public Set<ProducerMethodBean<?>> defineProducerMethods()
     {
+        AbstractInjectionTargetBean bean = getBean();
         if(isDefaultMetaDataProvider())
         {
-            return DefinitionUtil.defineProducerMethods(getBean());
+            return bean.getWebBeansContext().getDefinitionUtil().defineProducerMethods(bean);
         }
         else
         {
-            return WebBeansAnnotatedTypeUtil.defineProducerMethods(getBean(), getAnnotatedType());
+            return bean.getWebBeansContext().getAnnotatedTypeUtil().defineProducerMethods(bean, getAnnotatedType());
         }
     }
     

Modified: openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/creation/AnnotatedTypeBeanCreatorImpl.java
URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/creation/AnnotatedTypeBeanCreatorImpl.java?rev=1084537&r1=1084536&r2=1084537&view=diff
==============================================================================
--- openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/creation/AnnotatedTypeBeanCreatorImpl.java (original)
+++ openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/creation/AnnotatedTypeBeanCreatorImpl.java Wed Mar 23 11:10:30 2011
@@ -46,9 +46,10 @@ public class AnnotatedTypeBeanCreatorImp
         Constructor<T> constructor;
         try
         {
-            AnnotatedConstructor<T> annotated = WebBeansAnnotatedTypeUtil.getBeanConstructor(getAnnotatedType());
+            WebBeansAnnotatedTypeUtil annotatedTypeUtil = getBean().getWebBeansContext().getAnnotatedTypeUtil();
+            AnnotatedConstructor<T> annotated = annotatedTypeUtil.getBeanConstructor(getAnnotatedType());
             constructor = annotated.getJavaMember();
-            WebBeansAnnotatedTypeUtil.addConstructorInjectionPointMetaData(getBean(), annotated);
+            annotatedTypeUtil.addConstructorInjectionPointMetaData(getBean(), annotated);
             
             getBean().setConstructor(constructor);
             

Modified: openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/creation/ManagedBeanCreatorImpl.java
URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/creation/ManagedBeanCreatorImpl.java?rev=1084537&r1=1084536&r2=1084537&view=diff
==============================================================================
--- openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/creation/ManagedBeanCreatorImpl.java (original)
+++ openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/creation/ManagedBeanCreatorImpl.java Wed Mar 23 11:10:30 2011
@@ -23,7 +23,6 @@ import java.lang.reflect.Constructor;
 import javax.enterprise.inject.spi.AnnotatedConstructor;
 
 import org.apache.webbeans.component.ManagedBean;
-import org.apache.webbeans.config.DefinitionUtil;
 import org.apache.webbeans.config.WebBeansContext;
 import org.apache.webbeans.util.WebBeansAnnotatedTypeUtil;
 import org.apache.webbeans.util.WebBeansUtil;
@@ -82,13 +81,13 @@ public class ManagedBeanCreatorImpl<T> e
         if(isDefaultMetaDataProvider())
         {
             constructor = webBeansContext.getWebBeansUtil().defineConstructor(getBean().getReturnType());
-            DefinitionUtil.addConstructorInjectionPointMetaData(getBean(), constructor);
+            webBeansContext.getDefinitionUtil().addConstructorInjectionPointMetaData(getBean(), constructor);
         }
         else
         {
            AnnotatedConstructor<T> annotated = WebBeansAnnotatedTypeUtil.getBeanConstructor(getAnnotatedType());
            constructor = annotated.getJavaMember();
-           WebBeansAnnotatedTypeUtil.addConstructorInjectionPointMetaData(getBean(), annotated);
+           webBeansContext.getAnnotatedTypeUtil().addConstructorInjectionPointMetaData(getBean(), annotated);
         }
         
         getBean().setConstructor(constructor);

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=1084537&r1=1084536&r2=1084537&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 Wed Mar 23 11:10:30 2011
@@ -241,7 +241,7 @@ public class BeansDeployer
         Class<?> beanClass = ClassUtil.getClassFromName(className);
         if(beanClass != null)
         {
-            bean  = (Bean)ClassUtil.newInstance(beanClass);
+            bean  = (Bean)ClassUtil.newInstance(webBeansContext, beanClass);
         }
         
         if(bean != null)
@@ -363,7 +363,7 @@ public class BeansDeployer
                             !(bean instanceof javax.enterprise.inject.spi.Interceptor) &&
                             !(bean instanceof NewBean))
                     {
-                        DefinitionUtil.defineDecoratorStack((AbstractInjectionTargetBean<Object>)bean);   
+                        webBeansContext.getDefinitionUtil().defineDecoratorStack((AbstractInjectionTargetBean<Object>)bean);
                     }
                     
                     //If intercepted marker

Modified: openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/config/DefinitionUtil.java
URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/config/DefinitionUtil.java?rev=1084537&r1=1084536&r2=1084537&view=diff
==============================================================================
--- openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/config/DefinitionUtil.java (original)
+++ openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/config/DefinitionUtil.java Wed Mar 23 11:10:30 2011
@@ -76,7 +76,6 @@ import org.apache.webbeans.spi.api.Resou
 import org.apache.webbeans.util.AnnotationUtil;
 import org.apache.webbeans.util.Asserts;
 import org.apache.webbeans.util.ClassUtil;
-import org.apache.webbeans.util.SecurityUtil;
 import org.apache.webbeans.util.WebBeansUtil;
 import static org.apache.webbeans.util.InjectionExceptionUtils.throwUnsatisfiedResolutionException;
 
@@ -217,7 +216,7 @@ public final class DefinitionUtil
      * @param component configuring web beans component
      * @param annotations annotations
      */
-    public static <T> void defineQualifiers(AbstractOwbBean<T> component, Annotation[] annotations)
+    public <T> void defineQualifiers(AbstractOwbBean<T> component, Annotation[] annotations)
     {
         final AnnotationManager annotationManager = component.getWebBeansContext().getAnnotationManager();
 
@@ -227,7 +226,7 @@ public final class DefinitionUtil
 
             if (annotationManager.isQualifierAnnotation(type))
             {
-                Method[] methods = SecurityUtil.doPrivilegedGetDeclaredMethods(type);
+                Method[] methods = webBeansContext.getSecurityService().doPrivilegedGetDeclaredMethods(type);
 
                 for (Method method : methods)
                 {
@@ -627,7 +626,7 @@ public final class DefinitionUtil
      * @param component configuring web beans component
      * @param defaultName default name of the web bean
      */
-    public static <T> void defineName(AbstractOwbBean<T> component, Annotation[] anns, String defaultName)
+    public <T> void defineName(AbstractOwbBean<T> component, Annotation[] anns, String defaultName)
     {
         Named nameAnnot = null;
         boolean isDefault = false;
@@ -676,16 +675,16 @@ public final class DefinitionUtil
      * @param component producer field owner component
      * @return the set of producer field components
      */
-    public static Set<ProducerFieldBean<?>> defineProduerFields(InjectionTargetBean<?> component)
+    public Set<ProducerFieldBean<?>> defineProduerFields(InjectionTargetBean<?> component)
     {
         Set<ProducerFieldBean<?>> producerFields = new HashSet<ProducerFieldBean<?>>();
-        Field[] fields = SecurityUtil.doPrivilegedGetDeclaredFields(component.getReturnType());
+        Field[] fields = webBeansContext.getSecurityService().doPrivilegedGetDeclaredFields(component.getReturnType());
         createProducerField(component, producerFields, fields);
 
         return producerFields;
     }
 
-    private static void createProducerField(InjectionTargetBean<?> component, Set<ProducerFieldBean<?>> producerFields, Field[] fields)
+    private void createProducerField(InjectionTargetBean<?> component, Set<ProducerFieldBean<?>> producerFields, Field[] fields)
     {
         for (Field field : fields)
         {        
@@ -723,14 +722,14 @@ public final class DefinitionUtil
      * @return the set of producer components
      * @throws WebBeansConfigurationException if any exception occurs
      */
-    public static Set<ProducerMethodBean<?>> defineProducerMethods(AbstractInjectionTargetBean<?> component)
+    public Set<ProducerMethodBean<?>> defineProducerMethods(AbstractInjectionTargetBean<?> component)
     {
         Asserts.assertNotNull(component, "component parameter can not be null");
 
         Set<ProducerMethodBean<?>> producerComponents = new HashSet<ProducerMethodBean<?>>();
 
         Class<?> clazz = component.getReturnType();
-        Method[] declaredMethods = SecurityUtil.doPrivilegedGetDeclaredMethods(clazz);
+        Method[] declaredMethods = webBeansContext.getSecurityService().doPrivilegedGetDeclaredMethods(clazz);
 
         // This methods defined in the class
         for (Method declaredMethod : declaredMethods)
@@ -741,7 +740,7 @@ public final class DefinitionUtil
         return producerComponents;
     }
 
-    private static <T> void createProducerComponents(InjectionTargetBean<T> component, Set<ProducerMethodBean<?>> producerComponents,
+    private <T> void createProducerComponents(InjectionTargetBean<T> component, Set<ProducerMethodBean<?>> producerComponents,
                                                      Method declaredMethod, Class<?> clazz)
     {
         boolean isSpecializes = false;
@@ -773,7 +772,7 @@ public final class DefinitionUtil
 
     }
 
-    public static <T> ProducerMethodBean<T> createProducerComponent(Class<T> returnType, Method method, InjectionTargetBean<?> parent,
+    public <T> ProducerMethodBean<T> createProducerComponent(Class<T> returnType, Method method, InjectionTargetBean<?> parent,
                                                                     boolean isSpecializes)
     {
         ProducerMethodBean<T> component = new ProducerMethodBean<T>(parent, returnType);
@@ -797,18 +796,18 @@ public final class DefinitionUtil
         WebBeansContext webBeansContext = parent.getWebBeansContext();
         webBeansContext.getWebBeansUtil().setBeanEnableFlagForProducerBean(parent, component, methodAnns);
 
-        DefinitionUtil.defineProducerMethodApiTypes(component, method.getGenericReturnType(), methodAnns);
-        DefinitionUtil.defineScopeType(component, methodAnns, "WebBeans producer method : " + method.getName() + " in class " + parent.getReturnType().getName()
+        defineProducerMethodApiTypes(component, method.getGenericReturnType(), methodAnns);
+        defineScopeType(component, methodAnns, "WebBeans producer method : " + method.getName() + " in class " + parent.getReturnType().getName()
                                                               + " must declare default @Scope annotation", false);
         webBeansContext.getWebBeansUtil().checkUnproxiableApiType(component, component.getScope());
         WebBeansUtil.checkProducerGenericType(component,method);
-        DefinitionUtil.defineQualifiers(component, methodAnns);
-        DefinitionUtil.defineName(component, methodAnns, WebBeansUtil.getProducerDefaultName(method.getName()));
+        defineQualifiers(component, methodAnns);
+        defineName(component, methodAnns, WebBeansUtil.getProducerDefaultName(method.getName()));
 
         return component;
     }
 
-    private static <T> ProducerFieldBean<T> createProducerFieldComponent(Class<T> returnType, Field field, InjectionTargetBean<?> parent)
+    private <T> ProducerFieldBean<T> createProducerFieldComponent(Class<T> returnType, Field field, InjectionTargetBean<?> parent)
     {
         ProducerFieldBean<T> component = new ProducerFieldBean<T>(parent, returnType);
         
@@ -859,13 +858,13 @@ public final class DefinitionUtil
                                                              + " must declare default @Scope annotation", false);
         webBeansContext.getWebBeansUtil().checkUnproxiableApiType(component, component.getScope());
         WebBeansUtil.checkProducerGenericType(component,field);
-        DefinitionUtil.defineQualifiers(component, fieldAnns);
-        DefinitionUtil.defineName(component, fieldAnns, field.getName());
+        defineQualifiers(component, fieldAnns);
+        defineName(component, fieldAnns, field.getName());
 
         return component;
     }
 
-    public static <T> void defineDisposalMethods(AbstractOwbBean<T> component)
+    public <T> void defineDisposalMethods(AbstractOwbBean<T> component)
     {
         Class<?> clazz = component.getReturnType();
 
@@ -876,7 +875,7 @@ public final class DefinitionUtil
 
     }
 
-    private static <T> void createDisposalMethods(AbstractOwbBean<T> component, Method[] methods, Class<?> clazz)
+    private <T> void createDisposalMethods(AbstractOwbBean<T> component, Method[] methods, Class<?> clazz)
     {
         final AnnotationManager annotationManager = component.getWebBeansContext().getAnnotationManager();
 
@@ -939,7 +938,7 @@ public final class DefinitionUtil
         }
     }
 
-    public static <T> void defineInjectedFields(AbstractInjectionTargetBean<T> component)
+    public <T> void defineInjectedFields(AbstractInjectionTargetBean<T> component)
     {
         Class<T> clazz = component.getReturnType();
 
@@ -951,7 +950,7 @@ public final class DefinitionUtil
 
     }
 
-    public static <T> void defineInternalInjectedFieldsRecursively(AbstractInjectionTargetBean<T> component, Class<T> clazz)
+    public <T> void defineInternalInjectedFieldsRecursively(AbstractInjectionTargetBean<T> component, Class<T> clazz)
     {
         // From inheritance
         Class<?> superClazz = clazz.getSuperclass();
@@ -967,13 +966,13 @@ public final class DefinitionUtil
 
     }
 
-    public static <T> void defineInternalInjectedFields(AbstractInjectionTargetBean<T> component, Class<T> clazz, boolean fromSuperClazz)
+    public <T> void defineInternalInjectedFields(AbstractInjectionTargetBean<T> component, Class<T> clazz, boolean fromSuperClazz)
     {
 
         WebBeansContext webBeansContext = component.getWebBeansContext();
         final AnnotationManager annotationManager = webBeansContext.getAnnotationManager();
 
-        Field[] fields = SecurityUtil.doPrivilegedGetDeclaredFields(clazz);
+        Field[] fields = webBeansContext.getSecurityService().doPrivilegedGetDeclaredFields(clazz);
 
         if (fields.length != 0)
         {
@@ -1031,7 +1030,7 @@ public final class DefinitionUtil
         }
     }
 
-    public static <T> void defineInjectedMethods(AbstractInjectionTargetBean<T> bean)
+    public <T> void defineInjectedMethods(AbstractInjectionTargetBean<T> bean)
     {
         Asserts.assertNotNull(bean, "bean parameter can not be null");
 
@@ -1044,7 +1043,7 @@ public final class DefinitionUtil
         defineInternalInjectedMethodsRecursively(bean, clazz);
     }
 
-    public static <T> void defineInternalInjectedMethodsRecursively(AbstractInjectionTargetBean<T> component, Class<T> clazz)
+    public <T> void defineInternalInjectedMethodsRecursively(AbstractInjectionTargetBean<T> component, Class<T> clazz)
     {
         // From inheritance
         Class<?> superClazz = clazz.getSuperclass();
@@ -1059,10 +1058,10 @@ public final class DefinitionUtil
 
     }
 
-    private static <T> void defineInternalInjectedMethods(AbstractInjectionTargetBean<T> component, Class<T> clazz, boolean fromInherited)
+    private <T> void defineInternalInjectedMethods(AbstractInjectionTargetBean<T> component, Class<T> clazz, boolean fromInherited)
     {
 
-        Method[] methods = SecurityUtil.doPrivilegedGetDeclaredMethods(clazz);
+        Method[] methods = webBeansContext.getSecurityService().doPrivilegedGetDeclaredMethods(clazz);
         
         for (Method method : methods)
         {
@@ -1092,7 +1091,7 @@ public final class DefinitionUtil
                 }
                 else
                 {                    
-                    Method[] beanMethods = SecurityUtil.doPrivilegedGetDeclaredMethods(component.getReturnType());
+                    Method[] beanMethods = webBeansContext.getSecurityService().doPrivilegedGetDeclaredMethods(component.getReturnType());
                     boolean defined = false;
                     for (Method beanMethod : beanMethods)
                     {
@@ -1192,12 +1191,12 @@ public final class DefinitionUtil
      * Defines decorator stack of given bean.
      * @param bean injection target bean
      */
-    public static void defineDecoratorStack(AbstractInjectionTargetBean<?> bean)
+    public void defineDecoratorStack(AbstractInjectionTargetBean<?> bean)
     {
         WebBeansDecoratorConfig.configureDecarotors(bean);
     }
 
-    public static <T> Set<ObserverMethod<?>> defineObserverMethods(InjectionTargetBean<T> component, Class<T> clazz)
+    public <T> Set<ObserverMethod<?>> defineObserverMethods(InjectionTargetBean<T> component, Class<T> clazz)
     {
         Asserts.assertNotNull(component, "component parameter can not be null");
         Asserts.nullCheckForClass(clazz);
@@ -1213,7 +1212,7 @@ public final class DefinitionUtil
 
     }
 
-    private static <T> void createObserverMethods(InjectionTargetBean<T> component, Class<?> clazz, Method[] candidateMethods)
+    private <T> void createObserverMethods(InjectionTargetBean<T> component, Class<?> clazz, Method[] candidateMethods)
     {
 
         for (Method candidateMethod : candidateMethods)
@@ -1238,7 +1237,7 @@ public final class DefinitionUtil
 
     }
 
-    public static <T> void defineSerializable(AbstractOwbBean<T> component)
+    public <T> void defineSerializable(AbstractOwbBean<T> component)
     {
         Asserts.assertNotNull(component, "component parameter can not be null");
         if (ClassUtil.isClassAssignable(Serializable.class, component.getReturnType()))
@@ -1247,7 +1246,7 @@ public final class DefinitionUtil
         }
     }
 
-    public static <T> void addFieldInjectionPointMetaData(AbstractOwbBean<T> owner, Field field)
+    public <T> void addFieldInjectionPointMetaData(AbstractOwbBean<T> owner, Field field)
     {
         InjectionPoint injectionPoint = owner.getWebBeansContext().getInjectionPointFactory().getFieldInjectionPointData(owner, field);
         if (injectionPoint != null)
@@ -1257,7 +1256,7 @@ public final class DefinitionUtil
         }
     }
 
-    public static <T> void addMethodInjectionPointMetaData(AbstractOwbBean<T> owner, Method method)
+    public <T> void addMethodInjectionPointMetaData(AbstractOwbBean<T> owner, Method method)
     {
         List<InjectionPoint> injectionPoints = owner.getWebBeansContext().getInjectionPointFactory().getMethodInjectionPointData(owner, method);
         for (InjectionPoint injectionPoint : injectionPoints)
@@ -1267,7 +1266,7 @@ public final class DefinitionUtil
         }
     }
 
-    public static <T> void addConstructorInjectionPointMetaData(AbstractOwbBean<T> owner, Constructor<T> constructor)
+    public <T> void addConstructorInjectionPointMetaData(AbstractOwbBean<T> owner, Constructor<T> constructor)
     {
         List<InjectionPoint> injectionPoints = owner.getWebBeansContext().getInjectionPointFactory().getConstructorInjectionPointData(owner, constructor);
         for (InjectionPoint injectionPoint : injectionPoints)
@@ -1277,7 +1276,7 @@ public final class DefinitionUtil
         }
     }
     
-    public static void addImplicitComponentForInjectionPoint(InjectionPoint injectionPoint)
+    public void addImplicitComponentForInjectionPoint(InjectionPoint injectionPoint)
     {
         if(!WebBeansUtil.checkObtainsInjectionPointConditions(injectionPoint))
         {
@@ -1285,7 +1284,7 @@ public final class DefinitionUtil
         }        
     }
     
-    public static <X> Set<ProducerMethodBean<?>> defineProducerMethods(InjectionTargetBean<X> bean, AnnotatedType<X> annotatedType)
+    public <X> Set<ProducerMethodBean<?>> defineProducerMethods(InjectionTargetBean<X> bean, AnnotatedType<X> annotatedType)
     {
         Set<ProducerMethodBean<?>> producerComponents = new HashSet<ProducerMethodBean<?>>();
         Set<AnnotatedMethod<? super X>> annotatedMethods = annotatedType.getMethods();
@@ -1298,7 +1297,7 @@ public final class DefinitionUtil
         return producerComponents;
     }
     
-    private static <X> void createProducerBeansFromAnnotatedType(InjectionTargetBean<X> bean, Set<ProducerMethodBean<?>> producerComponents,
+    private <X> void createProducerBeansFromAnnotatedType(InjectionTargetBean<X> bean, Set<ProducerMethodBean<?>> producerComponents,
                                                                  AnnotatedMethod<X> annotatedMethod, Class<?> clazz, boolean isSpecializes)
     {
         Set<Annotation> annSet = annotatedMethod.getAnnotations();
@@ -1345,7 +1344,7 @@ public final class DefinitionUtil
 
     }
 
-    public static <X> ProducerMethodBean<X> createProducerBeanFromAnnotatedType(Class<X> returnType, AnnotatedMethod<X> method,
+    public <X> ProducerMethodBean<X> createProducerBeanFromAnnotatedType(Class<X> returnType, AnnotatedMethod<X> method,
                                                                                 InjectionTargetBean<?> parent, boolean isSpecializes)
     {
         ProducerMethodBean<X> bean = new ProducerMethodBean<X>(parent, returnType);
@@ -1371,8 +1370,8 @@ public final class DefinitionUtil
         DefinitionUtil.defineScopeType(bean, anns, "Bean producer method : " + method.getJavaMember().getName() + " in class "
                                                    + parent.getReturnType().getName() + " must declare default @Scope annotation", false);
         WebBeansUtil.checkProducerGenericType(bean,method.getJavaMember());        
-        DefinitionUtil.defineQualifiers(bean, anns);
-        DefinitionUtil.defineName(bean, anns, WebBeansUtil.getProducerDefaultName(method.getJavaMember().getName()));
+        defineQualifiers(bean, anns);
+        defineName(bean, anns, WebBeansUtil.getProducerDefaultName(method.getJavaMember().getName()));
 
         return bean;
     }

Modified: openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/config/ManagedBeanConfigurator.java
URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/config/ManagedBeanConfigurator.java?rev=1084537&r1=1084536&r2=1084537&view=diff
==============================================================================
--- openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/config/ManagedBeanConfigurator.java (original)
+++ openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/config/ManagedBeanConfigurator.java Wed Mar 23 11:10:30 2011
@@ -111,6 +111,8 @@ public final class ManagedBeanConfigurat
     public <T> ManagedBean<T> define(Class<T> clazz, WebBeansType type) throws WebBeansConfigurationException
     {
         BeanManagerImpl manager = webBeansContext.getBeanManagerImpl();
+        DefinitionUtil definitionUtil = webBeansContext.getDefinitionUtil();
+
 
         int modifier = clazz.getModifiers();
 
@@ -135,29 +137,29 @@ public final class ManagedBeanConfigurat
 
         webBeansContext.getWebBeansUtil().setInjectionTargetBeanEnableFlag(component);
 
-        DefinitionUtil.defineSerializable(component);
-        DefinitionUtil.defineStereoTypes(component, clazz.getDeclaredAnnotations());
+        definitionUtil.defineSerializable(component);
+        definitionUtil.defineStereoTypes(component, clazz.getDeclaredAnnotations());
 
         Annotation[] clazzAnns = clazz.getDeclaredAnnotations();
 
-        DefinitionUtil.defineApiTypes(component, clazz);
-        DefinitionUtil.defineScopeType(component, clazzAnns, "Simple WebBean Component implementation class : " + clazz.getName()
+        definitionUtil.defineApiTypes(component, clazz);
+        definitionUtil.defineScopeType(component, clazzAnns, "Simple WebBean Component implementation class : " + clazz.getName()
                                                              + " stereotypes must declare same @Scope annotations", false);
         // we fully initialize the bean in this case.
         component.setFullInit(true);
 
         WebBeansUtil.checkGenericType(component);
-        DefinitionUtil.defineQualifiers(component, clazzAnns);
-        DefinitionUtil.defineName(component, clazzAnns, WebBeansUtil.getManagedBeanDefaultName(clazz.getSimpleName()));
+        definitionUtil.defineQualifiers(component, clazzAnns);
+        definitionUtil.defineName(component, clazzAnns, WebBeansUtil.getManagedBeanDefaultName(clazz.getSimpleName()));
 
         Constructor<T> constructor = webBeansContext.getWebBeansUtil().defineConstructor(clazz);
         component.setConstructor(constructor);
-        DefinitionUtil.addConstructorInjectionPointMetaData(component, constructor);
+        definitionUtil.addConstructorInjectionPointMetaData(component, constructor);
 
         //Dropped from the speicification
         //WebBeansUtil.checkSteroTypeRequirements(component, clazz.getDeclaredAnnotations(), "Simple WebBean Component implementation class : " + clazz.getName());
 
-        Set<ProducerMethodBean<?>> producerMethods = DefinitionUtil.defineProducerMethods(component);
+        Set<ProducerMethodBean<?>> producerMethods = definitionUtil.defineProducerMethods(component);
         for (ProducerMethodBean<?> producerMethod : producerMethods)
         {
             // add them one after the other to enable serialization handling et al
@@ -165,7 +167,7 @@ public final class ManagedBeanConfigurat
             manager.putInjectionTargetWrapper(producerMethod, new InjectionTargetWrapper(new ProducerBeansProducer(producerMethod)));
         }
 
-        Set<ProducerFieldBean<?>> producerFields = DefinitionUtil.defineProduerFields(component);
+        Set<ProducerFieldBean<?>> producerFields = definitionUtil.defineProduerFields(component);
         for (ProducerFieldBean<?> producerField : producerFields)
         {
             // add them one after the other to enable serialization handling et al
@@ -174,10 +176,10 @@ public final class ManagedBeanConfigurat
         }
 
 
-        DefinitionUtil.defineDisposalMethods(component);
-        DefinitionUtil.defineInjectedFields(component);
-        DefinitionUtil.defineInjectedMethods(component);
-        DefinitionUtil.defineObserverMethods(component, clazz);
+        definitionUtil.defineDisposalMethods(component);
+        definitionUtil.defineInjectedFields(component);
+        definitionUtil.defineInjectedMethods(component);
+        definitionUtil.defineObserverMethods(component, clazz);
 
         return component;
     }

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=1084537&r1=1084536&r2=1084537&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 Wed Mar 23 11:10:30 2011
@@ -53,6 +53,7 @@ import org.apache.webbeans.spi.ScannerSe
 import org.apache.webbeans.spi.SecurityService;
 import org.apache.webbeans.spi.plugins.OpenWebBeansPlugin;
 import org.apache.webbeans.util.ClassUtil;
+import org.apache.webbeans.util.WebBeansAnnotatedTypeUtil;
 import org.apache.webbeans.util.WebBeansUtil;
 
 /**
@@ -87,6 +88,7 @@ public class WebBeansContext
     private InjectionPointFactory injectionPointFactory = new InjectionPointFactory(this);
     private InterceptorUtil interceptorUtil = new InterceptorUtil(this);
     private DefinitionUtil definitionUtil = new DefinitionUtil(this);
+    private WebBeansAnnotatedTypeUtil annotatedTypeUtil = new WebBeansAnnotatedTypeUtil(this);
     private ManagedBeanConfigurator managedBeanConfigurator = new ManagedBeanConfigurator(this);
     private SecurityService securityService = getService(SecurityService.class);
 
@@ -193,6 +195,11 @@ public class WebBeansContext
         return definitionUtil;
     }
 
+    public WebBeansAnnotatedTypeUtil getAnnotatedTypeUtil()
+    {
+        return annotatedTypeUtil;
+    }
+
     public InjectionPointFactory getInjectionPointFactory()
     {
         return injectionPointFactory;

Modified: openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/decorator/WebBeansDecorator.java
URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/decorator/WebBeansDecorator.java?rev=1084537&r1=1084536&r2=1084537&view=diff
==============================================================================
--- openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/decorator/WebBeansDecorator.java (original)
+++ openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/decorator/WebBeansDecorator.java Wed Mar 23 11:10:30 2011
@@ -189,7 +189,7 @@ public class WebBeansDecorator<T> extend
         }
         else
         {
-            Field[] fields = ClassUtil.getFieldsWithType(returnType, delegateType);
+            Field[] fields = ClassUtil.getFieldsWithType(wrappedBean.getWebBeansContext(), returnType, delegateType);
             if(fields.length == 0)
             {
                 throw new WebBeansConfigurationException("Delegate injection field is not found for decorator : " + toString());

Modified: openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/inject/OWBInjector.java
URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/inject/OWBInjector.java?rev=1084537&r1=1084536&r2=1084537&view=diff
==============================================================================
--- openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/inject/OWBInjector.java (original)
+++ openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/inject/OWBInjector.java Wed Mar 23 11:10:30 2011
@@ -43,6 +43,7 @@ import org.apache.webbeans.config.WebBea
 import org.apache.webbeans.container.BeanManagerImpl;
 import org.apache.webbeans.container.InjectionResolver;
 import org.apache.webbeans.context.creational.CreationalContextImpl;
+import org.apache.webbeans.exception.WebBeansException;
 import org.apache.webbeans.util.ClassUtil;
 import org.apache.webbeans.util.WebBeansAnnotatedTypeUtil;
 import org.apache.webbeans.util.WebBeansUtil;
@@ -146,7 +147,7 @@ public final class OWBInjector implement
                         
                         //Set field
                         Field field = (Field)injectionPoint.getMember();
-                        ClassUtil.setField(javaEeComponentInstance, field, object);
+                        setField(javaEeComponentInstance, field, object);
                     }                        
                 }
                 
@@ -162,7 +163,8 @@ public final class OWBInjector implement
         
         return null;
     }
-    
+
+
     /**
      * Release dependents.
      */
@@ -189,7 +191,28 @@ public final class OWBInjector implement
             }            
         }        
     }
-    
+
+    private void setField(Object instance, Field field, Object value)
+    {
+        if(!field.isAccessible())
+        {
+            webBeansContext.getSecurityService().doPrivilegedSetAccessible(field, true);
+        }
+
+        try
+        {
+            field.set(instance, value);
+        }
+        catch (IllegalArgumentException e)
+        {
+            throw new WebBeansException(e);
+        }
+        catch (IllegalAccessException e)
+        {
+            throw new WebBeansException(e);
+        }
+    }
+
     /**
      * Gets injected object reference.
      * @param injectionPoint injection point of javaee instance

Modified: openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/util/AnnotationUtil.java
URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/util/AnnotationUtil.java?rev=1084537&r1=1084536&r2=1084537&view=diff
==============================================================================
--- openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/util/AnnotationUtil.java (original)
+++ openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/util/AnnotationUtil.java Wed Mar 23 11:10:30 2011
@@ -27,11 +27,13 @@ import javax.enterprise.inject.spi.Annot
 import javax.enterprise.inject.spi.Bean;
 import javax.enterprise.util.Nonbinding;
 import java.lang.annotation.Annotation;
+import java.lang.reflect.AccessibleObject;
 import java.lang.reflect.Constructor;
-import java.lang.reflect.Field;
 import java.lang.reflect.Method;
 import java.lang.reflect.ParameterizedType;
 import java.lang.reflect.Type;
+import java.security.AccessController;
+import java.security.PrivilegedAction;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Collections;
@@ -614,9 +616,9 @@ public final class AnnotationUtil
 
         try
         {
-            if (!accessible)
+            if (!accessible )
             {
-                SecurityUtil.doPrivilegedSetAccessible(method, true);
+                doPrivilegedSetAccessible(method, true);
             }
 
             return method.invoke(instance, EMPTY_OBJECT_ARRAY);
@@ -628,7 +630,33 @@ public final class AnnotationUtil
         finally
         {
             // reset accessible value
-            SecurityUtil.doPrivilegedSetAccessible(method, accessible);
+            doPrivilegedSetAccessible(method, accessible);
+        }
+    }
+
+    private static Object doPrivilegedSetAccessible(AccessibleObject obj, boolean flag)
+    {
+        AccessController.doPrivileged(new PrivilegedActionForAccessibleObject(obj, flag));
+        return null;
+    }
+
+    private static class PrivilegedActionForAccessibleObject implements PrivilegedAction<Object>
+    {
+
+        private AccessibleObject object;
+
+        private boolean flag;
+
+        protected PrivilegedActionForAccessibleObject(AccessibleObject object, boolean flag)
+        {
+            this.object = object;
+            this.flag = flag;
+        }
+
+        public Object run()
+        {
+            object.setAccessible(flag);
+            return null;
         }
     }
 
@@ -734,35 +762,6 @@ public final class AnnotationUtil
         return rMethod;
     }
 
-    /**
-     * Gets array of methods that has given annotation type.
-     * 
-     * @param clazz class for check
-     * @param annotation for check
-     * @return array of methods
-     */
-    public static Method[] getMethodsWithAnnotation(Class<?> clazz, Class<? extends Annotation> annotation)
-    {
-        Asserts.nullCheckForClass(clazz);
-        Asserts.assertNotNull(annotation, "Annotation argument can not be null");
-
-        Method[] methods = SecurityUtil.doPrivilegedGetDeclaredMethods(clazz);
-        List<Method> list = new ArrayList<Method>();
-        Method[] rMethod  ;
-
-        for (Method m : methods)
-        {
-            if (hasMethodAnnotation(m, annotation))
-            {
-                list.add(m);
-            }
-        }
-
-        rMethod = new Method[list.size()];
-        rMethod = list.toArray(rMethod);
-
-        return rMethod;
-    }
 
     /**
      * Check whether or not class contains the given annotation.
@@ -865,58 +864,6 @@ public final class AnnotationUtil
         return result;
     }
 
-    public static Field[] getClazzFieldsWithGivenAnnotation(Class<?> clazz, Class<? extends Annotation> annotation)
-    {
-        Field[] fields = SecurityUtil.doPrivilegedGetDeclaredFields(clazz);
-        List<Field> list = new ArrayList<Field>();
-
-        if (fields.length != 0)
-        {
-            for (Field field : fields)
-            {
-                if (field.isAnnotationPresent(annotation))
-                {
-                    list.add(field);
-                }
-            }
-        }
-
-        fields = new Field[list.size()];
-        fields = list.toArray(fields);
-
-        return fields;
-    }
-
-    @Deprecated
-    public static void checkQualifierConditions(Annotation... qualifierAnnots)
-    {
-        WebBeansContext.getInstance().getAnnotationManager().checkQualifierConditions(qualifierAnnots);
-    }
-
-    /**
-     * This function obviously cannot check for duplicate annotations.
-     * So this must have been done before!
-     * @param qualifierAnnots
-     */
-    @Deprecated
-    public static void checkQualifierConditions(Set<Annotation> qualifierAnnots)
-    {
-        WebBeansContext.getInstance().getAnnotationManager().checkQualifierConditions(qualifierAnnots);
-    }
-
-    /**
-     * Returns true if the annotation is defined in xml or annotated with
-     * {@link javax.inject.Qualifier} false otherwise.
-     *
-     * @param clazz type of the annotation
-     * @return true if the annotation is defined in xml or annotated with
-     *         {@link javax.inject.Qualifier} false otherwise
-     */
-    @Deprecated
-    public static boolean isQualifierAnnotation(Class<? extends Annotation> clazz)
-    {
-        return WebBeansContext.getInstance().getAnnotationManager().isQualifierAnnotation(clazz);
-    }
 
     /**
      * Returns true if any binding exist

Modified: openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/util/ClassUtil.java
URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/util/ClassUtil.java?rev=1084537&r1=1084536&r2=1084537&view=diff
==============================================================================
--- openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/util/ClassUtil.java (original)
+++ openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/util/ClassUtil.java Wed Mar 23 11:10:30 2011
@@ -40,6 +40,7 @@ import javax.enterprise.inject.spi.Injec
 import javax.inject.Provider;
 
 import org.apache.webbeans.config.BeanTypeSetResolver;
+import org.apache.webbeans.config.WebBeansContext;
 import org.apache.webbeans.exception.WebBeansException;
 import org.apache.webbeans.logger.WebBeansLogger;
 
@@ -77,13 +78,13 @@ public final class ClassUtil
         throw new UnsupportedOperationException();
     }
 
-    public static Object newInstance(Class<?> clazz)
+    public static Object newInstance(WebBeansContext webBeansContext, Class<?> clazz)
     {
         try
         {
             if(System.getSecurityManager() != null)
             {
-                return SecurityUtil.doPrivilegedObjectCreate(clazz);
+                return webBeansContext.getSecurityService().doPrivilegedObjectCreate(clazz);
             }            
             
             return clazz.newInstance();
@@ -1249,13 +1250,13 @@ public final class ClassUtil
         return true;
     }
 
-    public static Field[] getFieldsWithType(Class<?> clazz, Type type)
+    public static Field[] getFieldsWithType(WebBeansContext webBeansContext, Class<?> clazz, Type type)
     {
         Asserts.nullCheckForClass(clazz);
         Asserts.assertNotNull(type, "type parameter can not be null");
 
         List<Field> fieldsWithType = new ArrayList<Field>();
-        Field[] fields = SecurityUtil.doPrivilegedGetDeclaredFields(clazz);
+        Field[] fields = webBeansContext.getSecurityService().doPrivilegedGetDeclaredFields(clazz);
         for (Field field : fields)
         {
             if(field.getType().equals(type))
@@ -1267,32 +1268,7 @@ public final class ClassUtil
         return fieldsWithType.toArray(new Field[fieldsWithType.size()]);
 
     }
-    
-    public static void setField(Object instance, Field field, Object value)
-    {
-        Asserts.assertNotNull(instance);
-        Asserts.assertNotNull(field);
-        
-        if(!field.isAccessible())
-        {
-            SecurityUtil.doPrivilegedSetAccessible(field, true);
-        }
-        
-        try
-        {
-            field.set(instance, value);
-        }
-        catch (IllegalArgumentException e)
-        {
-            throw new WebBeansException(e);
-        }
-        catch (IllegalAccessException e)
-        {
-            throw new WebBeansException(e);
-        }
-        
-    }
- 
+
     /**
      * Returns injection point raw type.
      * 

Modified: openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/util/SecurityUtil.java
URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/util/SecurityUtil.java?rev=1084537&r1=1084536&r2=1084537&view=diff
==============================================================================
--- openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/util/SecurityUtil.java (original)
+++ openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/util/SecurityUtil.java Wed Mar 23 11:10:30 2011
@@ -18,13 +18,9 @@
  */
 package org.apache.webbeans.util;
 
-import java.lang.reflect.AccessibleObject;
-import java.lang.reflect.Field;
 import java.lang.reflect.Method;
 import java.security.AccessController;
 import java.security.PrivilegedAction;
-import java.security.PrivilegedActionException;
-import java.security.PrivilegedExceptionAction;
 
 import javassist.util.proxy.ProxyFactory;
 import org.apache.webbeans.exception.WebBeansException;
@@ -32,14 +28,9 @@ import org.apache.webbeans.exception.Web
 /** @deprecated  use SecurityService instead */
 public class SecurityUtil
 {
-    private static final int METHOD_CLASS_GETDECLAREDMETHOD = 0x03;
 
     private static final int METHOD_CLASS_GETDECLAREDMETHODS = 0x04;
 
-    private static final int METHOD_CLASS_GETDECLAREDFIELD = 0x05;
-
-    private static final int METHOD_CLASS_GETDECLAREDFIELDS = 0x06;
-    
     public static <T> Method[] doPrivilegedGetDeclaredMethods(Class<T> clazz)
     {
         Object obj = AccessController.doPrivileged(
@@ -47,25 +38,15 @@ public class SecurityUtil
         return (Method[])obj;
     }
 
-    public static <T> Field[] doPrivilegedGetDeclaredFields(Class<T> clazz)
-    {
-        Object obj = AccessController.doPrivileged(
-                new PrivilegedActionForClass(clazz, null, METHOD_CLASS_GETDECLAREDFIELDS));
-        return (Field[])obj;
-    }
-
     protected static class PrivilegedActionForClass implements PrivilegedAction<Object>
     {
         private Class<?> clazz;
 
-        private Object parameters;
-
         private int method;
 
         protected PrivilegedActionForClass(Class<?> clazz, Object parameters, int method)
         {
             this.clazz = clazz;
-            this.parameters = parameters;
             this.method = method;
         }
 
@@ -75,16 +56,8 @@ public class SecurityUtil
             {
                 switch (method)
                 {
-                    case METHOD_CLASS_GETDECLAREDMETHOD:
-                        String name = (String)((Object[])parameters)[0];
-                        Class<?>[] realParameters = (Class<?>[])((Object[])parameters)[1];
-                        return clazz.getDeclaredMethod(name, realParameters);
                     case METHOD_CLASS_GETDECLAREDMETHODS:
                         return clazz.getDeclaredMethods();
-                    case METHOD_CLASS_GETDECLAREDFIELD:
-                        return clazz.getDeclaredField((String)parameters);
-                    case METHOD_CLASS_GETDECLAREDFIELDS:
-                        return clazz.getDeclaredFields();
 
                     default:
                         return new WebBeansException("unknown security method: " + method);
@@ -98,72 +71,12 @@ public class SecurityUtil
 
     }
 
-    public static Object doPrivilegedSetAccessible(AccessibleObject obj, boolean flag)
-    {
-        AccessController.doPrivileged(new PrivilegedActionForAccessibleObject(obj, flag));
-        return null;
-    }
-
-    protected static class PrivilegedActionForAccessibleObject implements PrivilegedAction<Object>
-    {
-
-        private AccessibleObject object;
-
-        private boolean flag;
-
-        protected PrivilegedActionForAccessibleObject(AccessibleObject object, boolean flag)
-        {
-            this.object = object;
-            this.flag = flag;
-        }
-
-        public Object run()
-        {
-            object.setAccessible(flag);
-            return null;
-        }
-    }
-
-
     public static Class<?> doPrivilegedCreateClass(ProxyFactory factory)
     {
         Class<?> ret = (Class<?>)AccessController.doPrivileged(new PrivilegedActionForProxyFactory(factory));
         return ret;
     }
 
-    public static Object doPrivilegedObjectCreate(Class<?> clazz) throws PrivilegedActionException
-    {
-        return AccessController.doPrivileged(new PrivilegedActionForObjectCreation(clazz));
-    }
-
-
-    protected static class PrivilegedActionForObjectCreation implements PrivilegedExceptionAction<Object>
-    {
-        private Class<?> clazz;
-        
-        protected PrivilegedActionForObjectCreation(Class<?> clazz)
-        {
-            this.clazz = clazz;
-        }
-
-        @Override
-        public Object run() throws Exception
-        {
-            try
-            {
-                return clazz.newInstance();
-            }
-            catch (InstantiationException e)
-            {
-                throw e;
-            }
-            catch (IllegalAccessException e)
-            {
-                throw e;
-            }
-        }
-        
-    }
 
     protected static class PrivilegedActionForProxyFactory implements PrivilegedAction<Object>
     {

Modified: openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/util/WebBeansAnnotatedTypeUtil.java
URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/util/WebBeansAnnotatedTypeUtil.java?rev=1084537&r1=1084536&r2=1084537&view=diff
==============================================================================
--- openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/util/WebBeansAnnotatedTypeUtil.java (original)
+++ openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/util/WebBeansAnnotatedTypeUtil.java Wed Mar 23 11:10:30 2011
@@ -73,10 +73,12 @@ import static org.apache.webbeans.util.I
 public final class WebBeansAnnotatedTypeUtil
 {
     private static final WebBeansLogger logger = WebBeansLogger.getLogger(WebBeansAnnotatedTypeUtil.class);
-    
-    private WebBeansAnnotatedTypeUtil()
+
+    private final WebBeansContext webBeansContext;
+
+    public WebBeansAnnotatedTypeUtil(WebBeansContext webBeansContext)
     {
-        
+        this.webBeansContext = webBeansContext;
     }
     
     public static <T> AnnotatedConstructor<T> getBeanConstructor(AnnotatedType<T> type)
@@ -142,23 +144,23 @@ public final class WebBeansAnnotatedType
         return result;
     }
     
-    public static <T> void addConstructorInjectionPointMetaData(AbstractOwbBean<T> owner, AnnotatedConstructor<T> constructor)
+    public <T> void addConstructorInjectionPointMetaData(AbstractOwbBean<T> owner, AnnotatedConstructor<T> constructor)
     {
         InjectionPointFactory injectionPointFactory = owner.getWebBeansContext().getInjectionPointFactory();
         List<InjectionPoint> injectionPoints = injectionPointFactory.getConstructorInjectionPointData(owner, constructor);
         for (InjectionPoint injectionPoint : injectionPoints)
         {
-            DefinitionUtil.addImplicitComponentForInjectionPoint(injectionPoint);
+            webBeansContext.getDefinitionUtil().addImplicitComponentForInjectionPoint(injectionPoint);
             owner.addInjectionPoint(injectionPoint);
         }
     }
     
-    public static <T,X> void addMethodInjectionPointMetaData(OwbBean<T> owner, AnnotatedMethod<X> method)
+    public <T,X> void addMethodInjectionPointMetaData(OwbBean<T> owner, AnnotatedMethod<X> method)
     {
         List<InjectionPoint> injectionPoints = owner.getWebBeansContext().getInjectionPointFactory().getMethodInjectionPointData(owner, method);
         for (InjectionPoint injectionPoint : injectionPoints)
         {
-            DefinitionUtil.addImplicitComponentForInjectionPoint(injectionPoint);
+            webBeansContext.getDefinitionUtil().addImplicitComponentForInjectionPoint(injectionPoint);
             owner.addInjectionPoint(injectionPoint);
         }
     }
@@ -169,7 +171,7 @@ public final class WebBeansAnnotatedType
     }
     
     @SuppressWarnings("unchecked")
-    public static <X> Set<ObserverMethod<?>> defineObserverMethods(AbstractInjectionTargetBean<X> bean,AnnotatedType<X> annotatedType)
+    public <X> Set<ObserverMethod<?>> defineObserverMethods(AbstractInjectionTargetBean<X> bean,AnnotatedType<X> annotatedType)
     {
         WebBeansContext webBeansContext = bean.getWebBeansContext();
         Set<ObserverMethod<?>> definedObservers = new HashSet<ObserverMethod<?>>();
@@ -223,7 +225,7 @@ public final class WebBeansAnnotatedType
     }
     
     @SuppressWarnings("unchecked")
-    public static <X> void defineDisposalMethods(AbstractInjectionTargetBean<X> bean,AnnotatedType<X> annotatedType)
+    public <X> void defineDisposalMethods(AbstractInjectionTargetBean<X> bean,AnnotatedType<X> annotatedType)
     {
         final AnnotationManager annotationManager = bean.getWebBeansContext().getAnnotationManager();
         Set<AnnotatedMethod<? super X>> annotatedMethods = annotatedType.getMethods();    
@@ -298,7 +300,7 @@ public final class WebBeansAnnotatedType
     }
     
     @SuppressWarnings("unchecked")
-    public static <X> void defineInjectedMethods(AbstractInjectionTargetBean<X> bean,AnnotatedType<X> annotatedType)
+    public <X> void defineInjectedMethods(AbstractInjectionTargetBean<X> bean,AnnotatedType<X> annotatedType)
     {
         Set<AnnotatedMethod<? super X>> annotatedMethods = annotatedType.getMethods();
         
@@ -330,7 +332,7 @@ public final class WebBeansAnnotatedType
             }
         }
         
-        DefinitionUtil.defineInternalInjectedMethodsRecursively(bean, annotatedType.getJavaClass());
+        webBeansContext.getDefinitionUtil().defineInternalInjectedMethodsRecursively(bean, annotatedType.getJavaClass());
     }
     
     public static <X> void defineInjectedFields(AbstractInjectionTargetBean<X> bean,AnnotatedType<X> annotatedType)
@@ -381,14 +383,14 @@ public final class WebBeansAnnotatedType
             }                                    
         }
         
-        DefinitionUtil.defineInternalInjectedFieldsRecursively(bean, annotatedType.getJavaClass());
+        bean.getWebBeansContext().getDefinitionUtil().defineInternalInjectedFieldsRecursively(bean, annotatedType.getJavaClass());
     }
     
     
     @SuppressWarnings("unchecked")
-    public static <X> Set<ProducerFieldBean<?>> defineProducerFields(InjectionTargetBean<X> bean, AnnotatedType<X> annotatedType)
+    public <X> Set<ProducerFieldBean<?>> defineProducerFields(InjectionTargetBean<X> bean, AnnotatedType<X> annotatedType)
     {
-        WebBeansContext webBeansContext = bean.getWebBeansContext();
+        DefinitionUtil definitionUtil = webBeansContext.getDefinitionUtil();
         Set<ProducerFieldBean<?>> producerBeans = new HashSet<ProducerFieldBean<?>>();
         Set<AnnotatedField<? super X>> annotatedFields = annotatedType.getFields();        
         for(AnnotatedField<? super X> annotatedField: annotatedFields)
@@ -429,7 +431,7 @@ public final class WebBeansAnnotatedType
                         ResourceBean<X,Annotation> resourceBean = new ResourceBean((Class<X>)field.getType(),bean, resourceRef);
                         
                         resourceBean.getTypes().addAll(annotatedField.getTypeClosure());
-                        DefinitionUtil.defineQualifiers(resourceBean, anns);                    
+                        definitionUtil.defineQualifiers(resourceBean, anns);
                         resourceBean.setImplScopeType(new DependentScopeLiteral());
                         resourceBean.setProducerField(field);
                         
@@ -445,20 +447,20 @@ public final class WebBeansAnnotatedType
                     {
                         producerFieldBean.setNullable(false);
                     }                    
-                    
-                    DefinitionUtil.defineSerializable(producerFieldBean);
-                    DefinitionUtil.defineStereoTypes(producerFieldBean, anns);
+
+                    definitionUtil.defineSerializable(producerFieldBean);
+                    definitionUtil.defineStereoTypes(producerFieldBean, anns);
                     webBeansContext.getWebBeansUtil().setBeanEnableFlagForProducerBean(bean,
                                                                                                       producerFieldBean,
                                                                                                       anns);
                     Set<Type> types = annotatedField.getTypeClosure();
                     producerFieldBean.getTypes().addAll(types);
-                    DefinitionUtil.defineScopeType(producerFieldBean, anns, "Annotated producer field: " + annotatedField +  "must declare default @Scope annotation", false);
+                    definitionUtil.defineScopeType(producerFieldBean, anns, "Annotated producer field: " + annotatedField +  "must declare default @Scope annotation", false);
                     webBeansContext.getWebBeansUtil().checkUnproxiableApiType(producerFieldBean,
                                                                                              producerFieldBean.getScope());
                     WebBeansUtil.checkProducerGenericType(producerFieldBean,annotatedField.getJavaMember());
-                    DefinitionUtil.defineQualifiers(producerFieldBean, anns);
-                    DefinitionUtil.defineName(producerFieldBean, anns, WebBeansUtil.getProducerDefaultName(annotatedField.getJavaMember().getName()));
+                    definitionUtil.defineQualifiers(producerFieldBean, anns);
+                    definitionUtil.defineName(producerFieldBean, anns, WebBeansUtil.getProducerDefaultName(annotatedField.getJavaMember().getName()));
                     
                     producerBeans.add(producerFieldBean);
                 }
@@ -470,10 +472,9 @@ public final class WebBeansAnnotatedType
     
     
     @SuppressWarnings("unchecked")
-    public static <X> Set<ProducerMethodBean<?>> defineProducerMethods(InjectionTargetBean<X> bean, AnnotatedType<X> annotatedType)
+    public <X> Set<ProducerMethodBean<?>> defineProducerMethods(InjectionTargetBean<X> bean, AnnotatedType<X> annotatedType)
     {
-        WebBeansContext webBeansContext = bean.getWebBeansContext();
-
+        DefinitionUtil definitionUtil = webBeansContext.getDefinitionUtil();
         Set<ProducerMethodBean<?>> producerBeans = new HashSet<ProducerMethodBean<?>>();
         Set<AnnotatedMethod<? super X>> annotatedMethods = annotatedType.getMethods();
         
@@ -506,8 +507,8 @@ public final class WebBeansAnnotatedType
                     producerMethodBean.setNullable(false);
                 }
                 
-                DefinitionUtil.defineSerializable(producerMethodBean);
-                DefinitionUtil.defineStereoTypes(producerMethodBean, AnnotationUtil.getAnnotationsFromSet(annotatedMethod.getAnnotations()));
+                definitionUtil.defineSerializable(producerMethodBean);
+                definitionUtil.defineStereoTypes(producerMethodBean, AnnotationUtil.getAnnotationsFromSet(annotatedMethod.getAnnotations()));
                 webBeansContext.getWebBeansUtil().setBeanEnableFlagForProducerBean(bean,
                                                                                                   producerMethodBean,
                                                                                                   AnnotationUtil.getAnnotationsFromSet(annotatedMethod.getAnnotations()));
@@ -521,8 +522,8 @@ public final class WebBeansAnnotatedType
                 webBeansContext.getWebBeansUtil().checkUnproxiableApiType(producerMethodBean,
                                                                                          producerMethodBean.getScope());
                 WebBeansUtil.checkProducerGenericType(producerMethodBean,annotatedMethod.getJavaMember());
-                DefinitionUtil.defineQualifiers(producerMethodBean, AnnotationUtil.getAnnotationsFromSet(annotatedMethod.getAnnotations()));
-                DefinitionUtil.defineName(producerMethodBean,
+                definitionUtil.defineQualifiers(producerMethodBean, AnnotationUtil.getAnnotationsFromSet(annotatedMethod.getAnnotations()));
+                definitionUtil.defineName(producerMethodBean,
                                           AnnotationUtil.getAnnotationsFromSet(annotatedMethod.getAnnotations()),
                                                                                WebBeansUtil.getProducerDefaultName(annotatedMethod.getJavaMember().getName()));
                 

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=1084537&r1=1084536&r2=1084537&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 Wed Mar 23 11:10:30 2011
@@ -576,17 +576,19 @@ public final class WebBeansUtil
     {
         Asserts.nullCheckForClass(clazz);
 
-        NewBean<T> comp = null;
+        NewBean<T> comp;
+        DefinitionUtil definitionUtil = webBeansContext.getDefinitionUtil();
+
 
         if (webBeansContext.getManagedBeanConfigurator().isManagedBean(clazz))
         {
             comp = new NewBean<T>(clazz, WebBeansType.MANAGED, webBeansContext);
             comp.setImplScopeType(new DependentScopeLiteral());
             comp.setConstructor(defineConstructor(clazz));
-            DefinitionUtil.addConstructorInjectionPointMetaData(comp, comp.getConstructor());
+            definitionUtil.addConstructorInjectionPointMetaData(comp, comp.getConstructor());
 
-            DefinitionUtil.defineInjectedFields(comp);
-            DefinitionUtil.defineInjectedMethods(comp);
+            definitionUtil.defineInjectedFields(comp);
+            definitionUtil.defineInjectedMethods(comp);
         }
         else if (EJBWebBeansConfigurator.isSessionBean(clazz, webBeansContext))
         {
@@ -630,12 +632,13 @@ public final class WebBeansUtil
         comp = new ExtensionBean<T>(clazz, webBeansContext);
         comp.setEnabled(true);
 
-        DefinitionUtil.defineApiTypes(comp, clazz);
+        DefinitionUtil definitionUtil = webBeansContext.getDefinitionUtil();
+        definitionUtil.defineApiTypes(comp, clazz);
 
         comp.setImplScopeType(new ApplicationScopeLiteral());
         comp.addQualifier(new DefaultLiteral());
 
-        DefinitionUtil.defineObserverMethods(comp, clazz);
+        definitionUtil.defineObserverMethods(comp, clazz);
 
         return comp;
     }
@@ -2930,8 +2933,10 @@ public final class WebBeansUtil
         managedBeanCreator.defineInjectedFields();
         managedBeanCreator.defineInjectedMethods();
         managedBeanCreator.defineObserverMethods();
-        DefinitionUtil.defineDecoratorStack(managedBean);
-        webBeansContext.getDefinitionUtil().defineBeanInterceptorStack(managedBean);
+
+        DefinitionUtil definitionUtil = webBeansContext.getDefinitionUtil();
+        definitionUtil.defineDecoratorStack(managedBean);
+        definitionUtil.defineBeanInterceptorStack(managedBean);
 
         managedBeanCreator.defineDisposalMethods();//Define disposal method after adding producers
 

Modified: openwebbeans/trunk/webbeans-porting/src/main/java/org/apache/webbeans/test/tck/BeansImpl.java
URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-porting/src/main/java/org/apache/webbeans/test/tck/BeansImpl.java?rev=1084537&r1=1084536&r2=1084537&view=diff
==============================================================================
--- openwebbeans/trunk/webbeans-porting/src/main/java/org/apache/webbeans/test/tck/BeansImpl.java (original)
+++ openwebbeans/trunk/webbeans-porting/src/main/java/org/apache/webbeans/test/tck/BeansImpl.java Wed Mar 23 11:10:30 2011
@@ -42,7 +42,8 @@ public class BeansImpl implements Beans
     @SuppressWarnings("unchecked")
     public <T> Bean<T> createProducerMethodBean(Method method, Bean<?> declaringBean)
     {
-        return DefinitionUtil.createProducerComponent((Class<T>)method.getReturnType(), method, (InjectionTargetBean<?>)declaringBean, false);
+        DefinitionUtil definitionUtil = ((InjectionTargetBean<?>)declaringBean).getWebBeansContext().getDefinitionUtil();
+        return definitionUtil.createProducerComponent((Class<T>)method.getReturnType(), method, (InjectionTargetBean<?>)declaringBean, false);
         
     }