[webbeans-commits] Webbeans SVN: r1231 - tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/integration/event and 1 other directory.

webbeans-commits at lists.jboss.org webbeans-commits at lists.jboss.org
Mon Jan 26 09:42:10 EST 2009


Author: dallen6
Date: 2009-01-26 09:42:10 -0500 (Mon, 26 Jan 2009)
New Revision: 1231

Modified:
   ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/bean/AbstractBean.java
   ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/bean/EnterpriseBean.java
   tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/integration/event/EventTest.java
Log:
Fixed one of the event tests and some performance enhancements.

Modified: ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/bean/AbstractBean.java
===================================================================
--- ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/bean/AbstractBean.java	2009-01-25 19:11:28 UTC (rev 1230)
+++ ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/bean/AbstractBean.java	2009-01-26 14:42:10 UTC (rev 1231)
@@ -52,8 +52,8 @@
  * 
  * @author Pete Muir
  * 
- * @param <T>
- * @param <E>
+ * @param <T> the type of bean
+ * @param <E> the Class<?> of the bean type
  */
 public abstract class AbstractBean<T, E> extends Bean<T>
 {
@@ -139,7 +139,8 @@
       initDefaultBindings();
       initType();
       initPrimitive();
-      log.debug("Building Web Bean bean metadata for " + getType());
+      if (log.isDebugEnabled())
+         log.debug("Building Web Bean bean metadata for " + getType());
       initName();
       initDeploymentType();
       checkDeploymentType();
@@ -176,7 +177,8 @@
       }
       else
       {
-         log.trace("Using binding types " + bindingTypes + " specified by annotations");
+         if (log.isTraceEnabled())
+            log.trace("Using binding types " + bindingTypes + " specified by annotations");
       }
    }
 
@@ -191,7 +193,8 @@
       if (possibleDeploymentTypes.size() > 0)
       {
          this.deploymentType = getDeploymentType(manager.getEnabledDeploymentTypes(), possibleDeploymentTypes);
-         log.trace("Deployment type " + deploymentType + " specified by stereotype");
+         if (log.isTraceEnabled())
+            log.trace("Deployment type " + deploymentType + " specified by stereotype");
          return;
       }
    }
@@ -219,7 +222,8 @@
          }
          else
          {
-            log.trace("Using name " + javaName + " specified by annotations");
+            if (log.isTraceEnabled())
+               log.trace("Using name " + javaName + " specified by annotations");
             this.name = javaName;
             return;
          }
@@ -273,7 +277,8 @@
       if (possibleScopeTypes.size() == 1)
       {
          this.scopeType = possibleScopeTypes.iterator().next().annotationType();
-         log.trace("Scope " + scopeType + " specified by stereotype");
+         if (log.isTraceEnabled())
+            log.trace("Scope " + scopeType + " specified by stereotype");
          return true;
       }
       else if (possibleScopeTypes.size() > 1)
@@ -313,7 +318,8 @@
    {
       for (Class<?> requiredType : getMergedStereotypes().getRequiredTypes())
       {
-         log.trace("Checking if required type " + requiredType + " is implemented");
+         if (log.isTraceEnabled())
+            log.trace("Checking if required type " + requiredType + " is implemented");
          if (!requiredType.isAssignableFrom(type))
          {
             throw new DefinitionException("Required type " + requiredType + " isn't implemented on " + type);

Modified: ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/bean/EnterpriseBean.java
===================================================================
--- ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/bean/EnterpriseBean.java	2009-01-25 19:11:28 UTC (rev 1230)
+++ ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/bean/EnterpriseBean.java	2009-01-26 14:42:10 UTC (rev 1231)
@@ -30,6 +30,7 @@
 import javax.webbeans.DefinitionException;
 import javax.webbeans.Dependent;
 import javax.webbeans.Interceptor;
+import javax.webbeans.Observes;
 
 import org.jboss.webbeans.ManagerImpl;
 import org.jboss.webbeans.bean.proxy.EnterpriseBeanInstance;
@@ -49,7 +50,7 @@
  * 
  * @author Pete Muir
  * 
- * @param <T>
+ * @param <T> The type (class) of the bean
  */
 public class EnterpriseBean<T> extends AbstractClassBean<T>
 {
@@ -121,6 +122,7 @@
       checkEnterpriseBeanTypeAllowed();
       checkEnterpriseScopeAllowed();
       checkConflictingRoles();
+      checkObserverMethods();
    }
 
    /**
@@ -216,6 +218,8 @@
          DependentContext.INSTANCE.setActive(true);
          T instance = proxyClass.newInstance();
          ((ProxyObject) instance).setHandler(new EnterpriseBeanProxyMethodHandler(this, ejbDescriptor.getRemoveMethods()));
+         if (log.isTraceEnabled())
+            log.trace("Enterprise bean instance created for bean " + this);
          return instance;
       }
       catch (InstantiationException e)
@@ -355,4 +359,21 @@
       return specializedBean;
    }
 
+   /**
+    * If there are any observer methods, they must be static or business
+    * methods.
+    */
+   protected void checkObserverMethods()
+   {
+      for (AnnotatedMethod<?> method : this.annotatedItem.getDeclaredMethodsWithAnnotatedParameters(Observes.class))
+      {
+         if (!method.isStatic())
+         {
+            if (!this.getTypes().contains(method.getMember().getDeclaringClass()))
+            {
+               throw new DefinitionException("Observer method must be static or business method: " + method);
+            }
+         }
+      }
+   }
 }

Modified: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/integration/event/EventTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/integration/event/EventTest.java	2009-01-25 19:11:28 UTC (rev 1230)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/integration/event/EventTest.java	2009-01-26 14:42:10 UTC (rev 1231)
@@ -60,7 +60,7 @@
       assert observers.size() == 2;
    }
 
-   @Test(groups = { "events", "integration", "broken" }, expectedExceptions=DefinitionException.class)
+   @Test(groups = { "events", "integration" }, expectedExceptions=DefinitionException.class)
    @SpecAssertion(section = "8.5")
    public void testObserverMethodOnEnterpriseBeanNotBusinessMethodOrStaticFails()
    {
@@ -68,7 +68,6 @@
       Set<Bean<Object>> beans = manager.resolveByType(Object.class);
       assert beans.size() >= 2;
       Set<Observer<String>> observers = manager.resolveObservers("An event");
-      assert observers.size() == 0;
    }
 
    /**




More information about the weld-commits mailing list