[webbeans-commits] Webbeans SVN: r3486 - ri/trunk/impl/src/main/java/org/jboss/webbeans/bean and 3 other directories.

webbeans-commits at lists.jboss.org webbeans-commits at lists.jboss.org
Thu Aug 13 17:32:35 EDT 2009


Author: pete.muir at jboss.org
Date: 2009-08-13 17:32:35 -0400 (Thu, 13 Aug 2009)
New Revision: 3486

Modified:
   ri/trunk/impl/src/main/java/org/jboss/webbeans/BeanManagerImpl.java
   ri/trunk/impl/src/main/java/org/jboss/webbeans/bean/AbstractBean.java
   ri/trunk/impl/src/main/java/org/jboss/webbeans/bean/AbstractClassBean.java
   ri/trunk/impl/src/main/java/org/jboss/webbeans/bean/DisposalMethodBean.java
   ri/trunk/impl/src/main/java/org/jboss/webbeans/bean/ProducerFieldBean.java
   ri/trunk/impl/src/main/java/org/jboss/webbeans/bean/ProducerMethodBean.java
   ri/trunk/impl/src/main/java/org/jboss/webbeans/bootstrap/AbstractBeanDeployer.java
   ri/trunk/impl/src/main/java/org/jboss/webbeans/util/Beans.java
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/event/observer/resolve/ResolveEventObserversTest.java
Log:
WBRI-317

Modified: ri/trunk/impl/src/main/java/org/jboss/webbeans/BeanManagerImpl.java
===================================================================
--- ri/trunk/impl/src/main/java/org/jboss/webbeans/BeanManagerImpl.java	2009-08-13 20:21:13 UTC (rev 3485)
+++ ri/trunk/impl/src/main/java/org/jboss/webbeans/BeanManagerImpl.java	2009-08-13 21:32:35 UTC (rev 3486)
@@ -613,6 +613,11 @@
    {
       return Collections.unmodifiableCollection(enabledPolicyStereotypes);
    }
+   
+   public boolean isBeanEnabled(Bean<?> bean)
+   {
+      return Beans.isBeanEnabled(bean, getEnabledPolicyClasses(), getEnabledPolicyStereotypes());   
+   }
 
    /**
     * @return the enabledDecoratorClasses

Modified: ri/trunk/impl/src/main/java/org/jboss/webbeans/bean/AbstractBean.java
===================================================================
--- ri/trunk/impl/src/main/java/org/jboss/webbeans/bean/AbstractBean.java	2009-08-13 20:21:13 UTC (rev 3485)
+++ ri/trunk/impl/src/main/java/org/jboss/webbeans/bean/AbstractBean.java	2009-08-13 21:32:35 UTC (rev 3486)
@@ -115,7 +115,6 @@
    @Override
    public void initialize(BeanDeployerEnvironment environment)
    {
-      mergedStereotypes = new MergedStereotypes<T, E>(getAnnotatedItem().getMetaAnnotations(Stereotype.class), manager);
       if (isSpecializing())
       {
          preSpecialize(environment);
@@ -126,12 +125,16 @@
       initPrimitive();
       log.trace("Building Web Bean bean metadata for #0", getType());
       initName();
-      initPolicy();
       initScopeType();
       initSerializable();
       initProxyable();
       checkDelegateInjectionPoints();
    }
+   
+   protected void initStereotypes()
+   {
+      mergedStereotypes = new MergedStereotypes<T, E>(getAnnotatedItem().getMetaAnnotations(Stereotype.class), manager);
+   }
 
    protected void checkDelegateInjectionPoints()
    {

Modified: ri/trunk/impl/src/main/java/org/jboss/webbeans/bean/AbstractClassBean.java
===================================================================
--- ri/trunk/impl/src/main/java/org/jboss/webbeans/bean/AbstractClassBean.java	2009-08-13 20:21:13 UTC (rev 3485)
+++ ri/trunk/impl/src/main/java/org/jboss/webbeans/bean/AbstractClassBean.java	2009-08-13 21:32:35 UTC (rev 3486)
@@ -97,6 +97,8 @@
          }
          
       };
+      initStereotypes();
+      initPolicy();
    }
 
    /**

Modified: ri/trunk/impl/src/main/java/org/jboss/webbeans/bean/DisposalMethodBean.java
===================================================================
--- ri/trunk/impl/src/main/java/org/jboss/webbeans/bean/DisposalMethodBean.java	2009-08-13 20:21:13 UTC (rev 3485)
+++ ri/trunk/impl/src/main/java/org/jboss/webbeans/bean/DisposalMethodBean.java	2009-08-13 21:32:35 UTC (rev 3486)
@@ -49,6 +49,8 @@
       initBindings();
       initType();
       initTypes();
+      initStereotypes();
+      initPolicy();
    }
    
    @Override

Modified: ri/trunk/impl/src/main/java/org/jboss/webbeans/bean/ProducerFieldBean.java
===================================================================
--- ri/trunk/impl/src/main/java/org/jboss/webbeans/bean/ProducerFieldBean.java	2009-08-13 20:21:13 UTC (rev 3485)
+++ ri/trunk/impl/src/main/java/org/jboss/webbeans/bean/ProducerFieldBean.java	2009-08-13 21:32:35 UTC (rev 3486)
@@ -69,6 +69,8 @@
       initTypes();
       initBindings();
       this.id = createId("ProducerField-" + declaringBean.getType().getName() + "-"+ field.getName());
+      initStereotypes();
+      initPolicy();
    }
    
    @Override

Modified: ri/trunk/impl/src/main/java/org/jboss/webbeans/bean/ProducerMethodBean.java
===================================================================
--- ri/trunk/impl/src/main/java/org/jboss/webbeans/bean/ProducerMethodBean.java	2009-08-13 20:21:13 UTC (rev 3485)
+++ ri/trunk/impl/src/main/java/org/jboss/webbeans/bean/ProducerMethodBean.java	2009-08-13 21:32:35 UTC (rev 3486)
@@ -75,6 +75,8 @@
       initTypes();
       initBindings();
       this.id = createId("ProducerMethod-" + declaringBean.getType().getName() + "-" + method.getSignature().toString());
+      initStereotypes();
+      initPolicy();
    }
 
    public T produce(CreationalContext<T> creationalContext)

Modified: ri/trunk/impl/src/main/java/org/jboss/webbeans/bootstrap/AbstractBeanDeployer.java
===================================================================
--- ri/trunk/impl/src/main/java/org/jboss/webbeans/bootstrap/AbstractBeanDeployer.java	2009-08-13 20:21:13 UTC (rev 3485)
+++ ri/trunk/impl/src/main/java/org/jboss/webbeans/bootstrap/AbstractBeanDeployer.java	2009-08-13 21:32:35 UTC (rev 3486)
@@ -106,7 +106,10 @@
    {
       createProducerMethods(bean, bean.getAnnotatedItem());
       createProducerFields(bean, bean.getAnnotatedItem());
-      createObserverMethods(bean, bean.getAnnotatedItem());
+      if (manager.isBeanEnabled(bean))
+      {
+         createObserverMethods(bean, bean.getAnnotatedItem());
+      }
       createDisposalMethods(bean, bean.getAnnotatedItem());
       
    }

Modified: ri/trunk/impl/src/main/java/org/jboss/webbeans/util/Beans.java
===================================================================
--- ri/trunk/impl/src/main/java/org/jboss/webbeans/util/Beans.java	2009-08-13 20:21:13 UTC (rev 3485)
+++ ri/trunk/impl/src/main/java/org/jboss/webbeans/util/Beans.java	2009-08-13 21:32:35 UTC (rev 3486)
@@ -301,25 +301,8 @@
          Set<T> enabledBeans = new HashSet<T>();
          for (T bean : beans)
          {
-            if (bean.isPolicy())
+            if (isBeanEnabled(bean, enabledPolicyClasses, enabledPolicySterotypes))
             {
-               if (enabledPolicyClasses.contains(bean.getBeanClass()))
-               {
-                  enabledBeans.add(bean);
-               }
-               else
-               {
-                  for (Class<? extends Annotation> stereotype : bean.getStereotypes())
-                  {
-                     if (enabledPolicySterotypes.contains(stereotype))
-                     {
-                        enabledBeans.add(bean);
-                     }
-                  }
-               }
-            }
-            else
-            {
                enabledBeans.add(bean);
             }
          }
@@ -327,6 +310,32 @@
       }
    }
    
+   public static boolean isBeanEnabled(Bean<?> bean, Collection<Class<?>> enabledPolicyClasses, Collection<Class<? extends Annotation>> enabledPolicySterotypes)
+   {
+      if (bean.isPolicy())
+      {
+         if (enabledPolicyClasses.contains(bean.getBeanClass()))
+         {
+            return true;
+         }
+         else
+         {
+            for (Class<? extends Annotation> stereotype : bean.getStereotypes())
+            {
+               if (enabledPolicySterotypes.contains(stereotype))
+               {
+                  return true;
+               }
+            }
+         }
+      }
+      else
+      {
+         return true;
+      }
+      return false;
+   }
+   
    public static boolean isTypePresent(Bean<?> bean, Type type)
    {
       type = Types.boxedType(type);

Modified: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/event/observer/resolve/ResolveEventObserversTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/event/observer/resolve/ResolveEventObserversTest.java	2009-08-13 20:21:13 UTC (rev 3485)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/event/observer/resolve/ResolveEventObserversTest.java	2009-08-13 21:32:35 UTC (rev 3486)
@@ -96,13 +96,10 @@
    @SpecAssertion(section = "12.3", id = "oa")
    public void testObserverMethodAutomaticallyRegistered()
    {
-      assert !getCurrentManager().resolveObserverMethods(new Ghost()).isEmpty();
       assert !getCurrentManager().resolveObserverMethods(new String(), new AnnotationLiteral<Secret>() {}).isEmpty();
    }
    
-   // WBRI-317
-   // when this bug is fixed, also add a test that verifies that if a policy is enabled, the obserer methods on the bean also get registered
-   @Test(groups = { "events", "ri-broken" })
+   @Test(groups = { "events" })
    @SpecAssertion(section = "12.3", id = "oa")
    public void testObserverMethodNotAutomaticallyRegisteredForDisabledBeans()
    {




More information about the weld-commits mailing list