Author: pete.muir(a)jboss.org
Date: 2008-11-13 07:17:36 -0500 (Thu, 13 Nov 2008)
New Revision: 303
Modified:
ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/bootstrap/Bootstrap.java
ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/BoostrapTest.java
Log:
Add register methods
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-11-13
12:06:36 UTC (rev 302)
+++
ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/bootstrap/Bootstrap.java 2008-11-13
12:17:36 UTC (rev 303)
@@ -7,6 +7,8 @@
import java.util.HashSet;
import java.util.Set;
+import javax.webbeans.manager.Bean;
+
import org.jboss.webbeans.ManagerImpl;
import org.jboss.webbeans.bean.AbstractBean;
import org.jboss.webbeans.bean.AbstractClassBean;
@@ -27,6 +29,23 @@
this.manager = manager;
}
+ /**
+ * Register any beans defined by the provided classes with the manager
+ */
+ public void registerBeans(Class<?>...classes)
+ {
+ Set<AbstractBean<?, ?>> beans = discoverBeans(classes);
+ for (Bean<?> bean : beans)
+ {
+ manager.addBean(bean);
+ }
+ }
+
+ /**
+ * Discover any beans defined by the provided classes
+ *
+ * Beans discovered are not registered with the manager
+ */
public Set<AbstractBean<?, ?>> discoverBeans(Class<?>... classes)
{
Set<AbstractBean<?, ?>> beans = new HashSet<AbstractBean<?,
?>>();
Modified: ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/BoostrapTest.java
===================================================================
---
ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/BoostrapTest.java 2008-11-13
12:06:36 UTC (rev 302)
+++
ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/BoostrapTest.java 2008-11-13
12:17:36 UTC (rev 303)
@@ -1,9 +1,16 @@
package org.jboss.webbeans.test;
-import java.util.HashSet;
+import java.util.HashMap;
+import java.util.Map;
import java.util.Set;
+import javax.webbeans.manager.Bean;
+
import org.jboss.webbeans.bean.AbstractBean;
+import org.jboss.webbeans.bean.EnterpriseBean;
+import org.jboss.webbeans.bean.ProducerMethodBean;
+import org.jboss.webbeans.bean.SimpleBean;
+import org.jboss.webbeans.ejb.DefaultEnterpriseBeanLookup;
import org.jboss.webbeans.test.beans.Elephant;
import org.jboss.webbeans.test.beans.Panther;
import org.jboss.webbeans.test.beans.Salmon;
@@ -39,15 +46,20 @@
{
Set<AbstractBean<?, ?>> beans = bootstrap.discoverBeans(Tuna.class,
Salmon.class, SeaBass.class, Sole.class);
assert beans.size() == 4;
- Set<Class<?>> classes = new HashSet<Class<?>>();
+ Map<Class<?>, Bean<?>> classes = new HashMap<Class<?>,
Bean<?>>();
for (AbstractBean<?, ?> bean : beans)
{
- classes.add(bean.getType());
+ classes.put(bean.getType(), bean);
}
- assert classes.contains(Tuna.class);
- assert classes.contains(Salmon.class);
- assert classes.contains(SeaBass.class);
- assert classes.contains(Sole.class);
+ assert classes.containsKey(Tuna.class);
+ assert classes.containsKey(Salmon.class);
+ assert classes.containsKey(SeaBass.class);
+ assert classes.containsKey(Sole.class);
+
+ assert classes.get(Tuna.class) instanceof SimpleBean;
+ assert classes.get(Salmon.class) instanceof SimpleBean;
+ assert classes.get(SeaBass.class) instanceof SimpleBean;
+ assert classes.get(Sole.class) instanceof SimpleBean;
}
@Test(groups="bootstrap")
@@ -55,13 +67,16 @@
{
Set<AbstractBean<?, ?>> beans =
bootstrap.discoverBeans(TarantulaProducer.class);
assert beans.size() == 2;
- Set<Class<?>> classes = new HashSet<Class<?>>();
+ Map<Class<?>, Bean<?>> classes = new HashMap<Class<?>,
Bean<?>>();
for (AbstractBean<?, ?> bean : beans)
{
- classes.add(bean.getType());
+ classes.put(bean.getType(), bean);
}
- assert classes.contains(TarantulaProducer.class);
- assert classes.contains(Tarantula.class);
+ assert classes.containsKey(TarantulaProducer.class);
+ assert classes.containsKey(Tarantula.class);
+
+ assert classes.get(TarantulaProducer.class) instanceof SimpleBean;
+ assert classes.get(Tarantula.class) instanceof ProducerMethodBean;
}
@Test(groups="bootstrap")
@@ -69,15 +84,20 @@
{
Set<AbstractBean<?, ?>> beans = bootstrap.discoverBeans(Hound.class,
Elephant.class, Panther.class, Tiger.class);
assert beans.size() == 4;
- Set<Class<?>> classes = new HashSet<Class<?>>();
+ Map<Class<?>, Bean<?>> classes = new HashMap<Class<?>,
Bean<?>>();
for (AbstractBean<?, ?> bean : beans)
{
- classes.add(bean.getType());
+ classes.put(bean.getType(), bean);
}
- assert classes.contains(Hound.class);
- assert classes.contains(Elephant.class);
- assert classes.contains(Panther.class);
- assert classes.contains(Tiger.class);
+ assert classes.containsKey(Hound.class);
+ assert classes.containsKey(Elephant.class);
+ assert classes.containsKey(Panther.class);
+ assert classes.containsKey(Tiger.class);
+
+ assert classes.get(Hound.class) instanceof EnterpriseBean;
+ assert classes.get(Elephant.class) instanceof EnterpriseBean;
+ assert classes.get(Panther.class) instanceof EnterpriseBean;
+ assert classes.get(Tiger.class) instanceof EnterpriseBean;
}
@Test(groups="bootstrap")
@@ -85,18 +105,76 @@
{
Set<AbstractBean<?, ?>> beans = bootstrap.discoverBeans(Hound.class,
Elephant.class, Panther.class, Tiger.class, Tuna.class, Salmon.class, SeaBass.class,
Sole.class);
assert beans.size() == 8;
- Set<Class<?>> classes = new HashSet<Class<?>>();
+ Map<Class<?>, Bean<?>> classes = new HashMap<Class<?>,
Bean<?>>();
for (AbstractBean<?, ?> bean : beans)
{
- classes.add(bean.getType());
+ classes.put(bean.getType(), bean);
}
- assert classes.contains(Hound.class);
- assert classes.contains(Elephant.class);
- assert classes.contains(Panther.class);
- assert classes.contains(Tiger.class);
- assert classes.contains(Tuna.class);
- assert classes.contains(Salmon.class);
- assert classes.contains(SeaBass.class);
- assert classes.contains(Sole.class);
+ assert classes.containsKey(Hound.class);
+ assert classes.containsKey(Elephant.class);
+ assert classes.containsKey(Panther.class);
+ assert classes.containsKey(Tiger.class);
+ assert classes.containsKey(Tuna.class);
+ assert classes.containsKey(Salmon.class);
+ assert classes.containsKey(SeaBass.class);
+ assert classes.containsKey(Sole.class);
+
+ assert classes.get(Hound.class) instanceof EnterpriseBean;
+ assert classes.get(Elephant.class) instanceof EnterpriseBean;
+ assert classes.get(Panther.class) instanceof EnterpriseBean;
+ assert classes.get(Tiger.class) instanceof EnterpriseBean;
+ assert classes.get(Tuna.class) instanceof SimpleBean;
+ assert classes.get(Salmon.class) instanceof SimpleBean;
+ assert classes.get(SeaBass.class) instanceof SimpleBean;
+ assert classes.get(Sole.class) instanceof SimpleBean;
}
+
+ @Test(groups="bootstrap")
+ public void testRegisterProducerMethodBean()
+ {
+ bootstrap.registerBeans(TarantulaProducer.class);
+ assert manager.getBeans().size() == 3;
+ Map<Class<?>, Bean<?>> classes = new HashMap<Class<?>,
Bean<?>>();
+ for (Bean<?> bean : manager.getBeans())
+ {
+ classes.put(((AbstractBean<?, ?>) bean).getType(), bean);
+ }
+ assert classes.containsKey(TarantulaProducer.class);
+ assert classes.containsKey(Tarantula.class);
+
+
+ assert classes.get(TarantulaProducer.class) instanceof SimpleBean;
+ assert classes.get(Tarantula.class) instanceof ProducerMethodBean;
+ }
+
+ @Test(groups="bootstrap")
+ public void testRegisterMultipleEnterpriseAndSimpleBean()
+ {
+ bootstrap.registerBeans(Hound.class, Elephant.class, Panther.class, Tiger.class,
Tuna.class, Salmon.class, SeaBass.class, Sole.class);
+ assert manager.getBeans().size() == 9;
+ Map<Class<?>, Bean<?>> classes = new HashMap<Class<?>,
Bean<?>>();
+ for (Bean<?> bean : manager.getBeans())
+ {
+
+ classes.put(((AbstractBean<?, ?>) bean).getType(), bean);
+ }
+ assert classes.containsKey(DefaultEnterpriseBeanLookup.class);
+ assert classes.containsKey(Hound.class);
+ assert classes.containsKey(Elephant.class);
+ assert classes.containsKey(Panther.class);
+ assert classes.containsKey(Tiger.class);
+ assert classes.containsKey(Tuna.class);
+ assert classes.containsKey(Salmon.class);
+ assert classes.containsKey(SeaBass.class);
+ assert classes.containsKey(Sole.class);
+
+ assert classes.get(Hound.class) instanceof EnterpriseBean;
+ assert classes.get(Elephant.class) instanceof EnterpriseBean;
+ assert classes.get(Panther.class) instanceof EnterpriseBean;
+ assert classes.get(Tiger.class) instanceof EnterpriseBean;
+ assert classes.get(Tuna.class) instanceof SimpleBean;
+ assert classes.get(Salmon.class) instanceof SimpleBean;
+ assert classes.get(SeaBass.class) instanceof SimpleBean;
+ assert classes.get(Sole.class) instanceof SimpleBean;
+ }
}