[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