You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openwebbeans.apache.org by ar...@apache.org on 2013/01/04 18:38:40 UTC

svn commit: r1428995 - in /openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans: component/creation/ config/ util/

Author: arne
Date: Fri Jan  4 17:38:40 2013
New Revision: 1428995

URL: http://svn.apache.org/viewvc?rev=1428995&view=rev
Log:
OWB-745: Removed DefinitionUtil.defineInjectedFields

Modified:
    openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/creation/AbstractInjectedTargetBeanCreator.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/util/WebBeansAnnotatedTypeUtil.java
    openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/util/WebBeansUtil.java

Modified: openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/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=1428995&r1=1428994&r2=1428995&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 Fri Jan  4 17:38:40 2013
@@ -26,7 +26,6 @@ import org.apache.webbeans.component.Abs
 import org.apache.webbeans.component.ProducerFieldBean;
 import org.apache.webbeans.component.ProducerMethodBean;
 import org.apache.webbeans.config.WebBeansContext;
-import org.apache.webbeans.util.WebBeansAnnotatedTypeUtil;
 
 /**
  * Abstract implementation of {@link InjectedTargetBeanCreator}.
@@ -65,16 +64,7 @@ public abstract class AbstractInjectedTa
      */
     public void defineInjectedFields()
     {
-        AbstractInjectionTargetBean bean = getBean();
-        if(isDefaultMetaDataProvider())
-        {
-            bean.getWebBeansContext().getDefinitionUtil().defineInjectedFields(bean);
-        }
-        else
-        {
-            WebBeansAnnotatedTypeUtil.defineInjectedFields(bean, getAnnotatedType());
-        }
-        
+        webBeansContext.getAnnotatedTypeUtil().defineInjectedFields(getBean(), getAnnotatedType());
     }
 
     /**

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=1428995&r1=1428994&r2=1428995&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 Fri Jan  4 17:38:40 2013
@@ -829,97 +829,6 @@ public final class DefinitionUtil
         return component;
     }
 
-    public <T> void defineInjectedFields(AbstractInjectionTargetBean<T> component)
-    {
-        Class<T> clazz = component.getReturnType();
-
-        // From component
-        defineInternalInjectedFields(component, clazz, false);
-
-        // From inherited super class
-        defineInternalInjectedFieldsRecursively(component, clazz);
-
-    }
-
-    public <T> void defineInternalInjectedFieldsRecursively(AbstractInjectionTargetBean<T> component, Class<T> clazz)
-    {
-        // From inheritance
-        Class<?> superClazz = clazz.getSuperclass();
-        
-        if (!superClazz.equals(Object.class))
-        {
-            // From super class
-            defineInternalInjectedFields(component, (Class<T>) superClazz, true);
-
-            // From super class type hierarchy
-            defineInternalInjectedFieldsRecursively(component, (Class<T>) superClazz);
-        }
-
-    }
-
-    public <T> void defineInternalInjectedFields(AbstractInjectionTargetBean<T> component, Class<T> clazz, boolean fromSuperClazz)
-    {
-
-        final AnnotationManager annotationManager = webBeansContext.getAnnotationManager();
-
-        Field[] fields = webBeansContext.getSecurityService().doPrivilegedGetDeclaredFields(clazz);
-
-        if (fields.length != 0)
-        {
-            for (Field field : fields)
-            {
-                //Check for public fields
-                if(Modifier.isPublic(field.getModifiers()) && !Modifier.isStatic(field.getModifiers()))
-                {
-                    if(webBeansContext.getBeanManagerImpl().isNormalScope(component.getScope()))
-                    {
-                        throw new WebBeansConfigurationException("If bean has a public field, bean scope must be defined as @Scope. Bean is : "
-                                                                 + component.toString());
-                    }
-                }                
-                                
-                if(!field.isAnnotationPresent(Inject.class))
-                {
-                    continue;
-                }
-
-                Annotation[] anns = field.getDeclaredAnnotations();
-
-                // Injected fields can not be @Produces
-                if (AnnotationUtil.hasAnnotation(anns, Produces.class))
-                {
-                    throw new WebBeansConfigurationException("Injection fields can not be annotated with @Produces");
-                }
-
-                Annotation[] qualifierAnns = annotationManager.getQualifierAnnotations(anns);
-
-                if (qualifierAnns.length > 0)
-                {
-                    if (qualifierAnns.length > 0)
-                    {
-                        annotationManager.checkForNewQualifierForDeployment(field.getGenericType(), clazz, field.getName(), anns);
-                    }
-
-                    int mod = field.getModifiers();
-                    
-                    if (!Modifier.isStatic(mod) && !Modifier.isFinal(mod))
-                    {
-                        if(fromSuperClazz)
-                        {
-                            component.addInjectedFieldToSuper(field);    
-                        }
-                        else
-                        {
-                            component.addInjectedField(field);
-                        }
-                        
-                        addFieldInjectionPointMetaData(component, field);                                
-                    }
-                }                                    
-            }
-        }
-    }
-
     public <T> void defineInjectedMethods(AbstractInjectionTargetBean<T> bean)
     {
         Asserts.assertNotNull(bean, "bean parameter can not be null");

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=1428995&r1=1428994&r2=1428995&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 Fri Jan  4 17:38:40 2013
@@ -177,7 +177,7 @@ public final class ManagedBeanConfigurat
 
 
         webBeansContext.getAnnotatedTypeUtil().defineDisposalMethods(component, component.getAnnotatedType());
-        definitionUtil.defineInjectedFields(component);
+        webBeansContext.getAnnotatedTypeUtil().defineInjectedFields(component, component.getAnnotatedType());
         definitionUtil.defineInjectedMethods(component);
         definitionUtil.defineObserverMethods(component, clazz);
 

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=1428995&r1=1428994&r2=1428995&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 Fri Jan  4 17:38:40 2013
@@ -36,7 +36,6 @@ import org.apache.webbeans.inject.impl.I
 import org.apache.webbeans.logger.WebBeansLoggerFacade;
 import org.apache.webbeans.spi.api.ResourceReference;
 
-import javax.decorator.Delegate;
 import javax.enterprise.context.Dependent;
 import javax.enterprise.event.Observes;
 import javax.enterprise.event.Reception;
@@ -165,9 +164,14 @@ public final class WebBeansAnnotatedType
         }
     }
     
-    public static <T,X> void addFieldInjectionPointMetaData(AbstractOwbBean<T> owner, AnnotatedField<X> annotField)
+    public <T,X> void addFieldInjectionPointMetaData(AbstractOwbBean<T> owner, AnnotatedField<X> annotField)
     {
-        owner.addInjectionPoint(owner.getWebBeansContext().getInjectionPointFactory().getFieldInjectionPointData(owner, annotField));
+        InjectionPoint injectionPoint = owner.getWebBeansContext().getInjectionPointFactory().getFieldInjectionPointData(owner, annotField);
+        if (injectionPoint != null)
+        {
+            webBeansContext.getDefinitionUtil().addImplicitComponentForInjectionPoint(injectionPoint);
+            owner.addInjectionPoint(injectionPoint);
+        }
     }
     
     @SuppressWarnings("unchecked")
@@ -335,24 +339,32 @@ public final class WebBeansAnnotatedType
         webBeansContext.getDefinitionUtil().defineInternalInjectedMethodsRecursively(bean, annotatedType.getJavaClass());
     }
     
-    public static <X> void defineInjectedFields(AbstractInjectionTargetBean<X> bean,AnnotatedType<X> annotatedType)
+    public <X> void defineInjectedFields(AbstractInjectionTargetBean<X> bean,AnnotatedType<X> annotatedType)
     {
         AnnotationManager annotationManager = bean.getWebBeansContext().getAnnotationManager();
 
         Set<AnnotatedField<? super X>> annotatedFields = annotatedType.getFields();   
         for(AnnotatedField<? super X> annotatedField: annotatedFields)
         {
+            if(Modifier.isPublic(annotatedField.getJavaMember().getModifiers()) && !annotatedField.isStatic())
+            {
+                if(webBeansContext.getBeanManagerImpl().isNormalScope(bean.getScope()))
+                {
+                    throw new WebBeansConfigurationException("If bean has a public field, bean scope must be defined as @Scope. Bean is : "
+                            + bean.toString());
+                }
+            }                
+            
             if(!annotatedField.isAnnotationPresent(Inject.class))
             {
                 continue;
             }
 
-            if (annotatedField.isAnnotationPresent(Produces.class) || annotatedField.isAnnotationPresent(Delegate.class))
+            if (annotatedField.isAnnotationPresent(Produces.class))
             {
-                continue;
+                throw new WebBeansConfigurationException("Injection fields can not be annotated with @Produces");
             }
             
-            
             Field field = annotatedField.getJavaMember();
             Annotation[] anns = AnnotationUtil.getAnnotationsFromSet(annotatedField.getAnnotations());
             if(Modifier.isPublic(field.getModifiers()))
@@ -382,8 +394,6 @@ public final class WebBeansAnnotatedType
                 }
             }                                    
         }
-        
-        bean.getWebBeansContext().getDefinitionUtil().defineInternalInjectedFieldsRecursively(bean, annotatedType.getJavaClass());
     }
     
     

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=1428995&r1=1428994&r2=1428995&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 Fri Jan  4 17:38:40 2013
@@ -585,7 +585,7 @@ public final class WebBeansUtil
             comp.setConstructor(defineConstructor(clazz));
             definitionUtil.addConstructorInjectionPointMetaData(comp, comp.getConstructor());
 
-            definitionUtil.defineInjectedFields(comp);
+            webBeansContext.getAnnotatedTypeUtil().defineInjectedFields(comp, comp.getAnnotatedType());
             definitionUtil.defineInjectedMethods(comp);
         }
         else if (EJBWebBeansConfigurator.isSessionBean(clazz, webBeansContext))