[webbeans-commits] Webbeans SVN: r387 - in ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans: bootstrap and 1 other directory.
webbeans-commits at lists.jboss.org
webbeans-commits at lists.jboss.org
Tue Dec 2 02:19:21 EST 2008
Author: nickarls
Date: 2008-12-02 02:19:21 -0500 (Tue, 02 Dec 2008)
New Revision: 387
Modified:
ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/bean/AbstractClassBean.java
ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/bean/EventBean.java
ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/bootstrap/Bootstrap.java
Log:
hooking event beans into bootstrap process, changes in constructors
Modified: ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/bean/AbstractClassBean.java
===================================================================
--- ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/bean/AbstractClassBean.java 2008-12-01 22:12:52 UTC (rev 386)
+++ ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/bean/AbstractClassBean.java 2008-12-02 07:19:21 UTC (rev 387)
@@ -100,7 +100,8 @@
/**
* Returns the producer methods
*
- * @return A set of producer methods
+ * @return A set of producer methods. An empty set is returned if there are
+ * none present
*/
public Set<AnnotatedMethod<Object>> getProducerMethods()
{
@@ -108,6 +109,17 @@
}
/**
+ * Returns @Observer annotated fields.
+ *
+ * @return A set of observing fields. An empty set is returned if there are
+ * none present.
+ */
+ public Set<AnnotatedField<Object>> getEventFields()
+ {
+ return getAnnotatedItem().getAnnotatedFields(Observes.class);
+ }
+
+ /**
* Initializes the injection points
*/
@Override
Modified: ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/bean/EventBean.java
===================================================================
--- ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/bean/EventBean.java 2008-12-01 22:12:52 UTC (rev 386)
+++ ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/bean/EventBean.java 2008-12-02 07:19:21 UTC (rev 387)
@@ -45,14 +45,32 @@
private String location;
private AnnotatedField<EventImpl<T>> annotatedItem;
- public EventBean(Field field, ManagerImpl manager, AbstractClassBean<?> declaringBean)
+ @SuppressWarnings("unchecked")
+ public EventBean(AnnotatedField<T> field, ManagerImpl manager)
{
super(manager);
- this.annotatedItem = new AnnotatedFieldImpl<EventImpl<T>>(field, declaringBean.getAnnotatedItem());
+ this.annotatedItem = (AnnotatedField<EventImpl<T>>) field;
init();
}
/**
+ * Initializes the bean
+ *
+ * Calls super method and validates the annotated item
+ */
+ protected void init() {
+ super.init();
+ checkAnnotatedItem();
+ }
+
+ /**
+ * Validates the annotated item
+ */
+ private void checkAnnotatedItem() {
+ // TODO: checks
+ }
+
+ /**
* Caches the constructor for this type of bean to avoid future reflections
* during use.
*/
Modified: ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/bootstrap/Bootstrap.java
===================================================================
--- ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/bootstrap/Bootstrap.java 2008-12-01 22:12:52 UTC (rev 386)
+++ ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/bootstrap/Bootstrap.java 2008-12-02 07:19:21 UTC (rev 387)
@@ -20,6 +20,7 @@
import static org.jboss.webbeans.util.BeanFactory.createEnterpriseBean;
import static org.jboss.webbeans.util.BeanFactory.createProducerMethodBean;
import static org.jboss.webbeans.util.BeanFactory.createSimpleBean;
+import static org.jboss.webbeans.util.BeanFactory.createEventBean;
import java.util.Arrays;
import java.util.HashSet;
@@ -28,8 +29,10 @@
import org.jboss.webbeans.ManagerImpl;
import org.jboss.webbeans.bean.AbstractBean;
import org.jboss.webbeans.bean.AbstractClassBean;
+import org.jboss.webbeans.bean.EventBean;
import org.jboss.webbeans.bean.ProducerMethodBean;
import org.jboss.webbeans.bootstrap.spi.WebBeanDiscovery;
+import org.jboss.webbeans.introspector.AnnotatedField;
import org.jboss.webbeans.introspector.AnnotatedMethod;
import org.jboss.webbeans.log.LogProvider;
import org.jboss.webbeans.log.Logging;
@@ -139,11 +142,18 @@
beans.add(producerMethodBean);
manager.getResolver().addInjectionPoints(producerMethodBean.getInjectionPoints());
}
+ for (AnnotatedField<Object> eventField : bean.getEventFields())
+ {
+ EventBean<?> eventBean = createEventBean(eventField.getType(), eventField, manager);
+ beans.add(eventBean);
+ manager.getResolver().addInjectionPoints(eventBean.getInjectionPoints());
+ }
log.info("Web Bean: " + bean);
}
return beans;
}
+
/**
* Starts the boot process.
*
More information about the weld-commits
mailing list