[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