[webbeans-commits] Webbeans SVN: r291 - in ri/trunk/webbeans-ri/src: main/java/org/jboss/webbeans/ejb and 3 other directories.
by webbeans-commits@lists.jboss.org
Author: nickarls
Date: 2008-11-12 05:22:01 -0500 (Wed, 12 Nov 2008)
New Revision: 291
Added:
ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/bean/XmlEnterpriseBean.java
ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/ejb/model/invalid/ChowChow.java
Modified:
ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/bean/EnterpriseBean.java
ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/ejb/EjbMetaData.java
ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/ejb/model/EnterpriseBeanDeclarationTest.java
ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/ejb/model/EnterpriseBeanRemoveMethodTest.java
ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/util/Util.java
Log:
Minor. Handling of multiple no-args remove methods
XmlEnterpriseBean + creators in Util
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 2008-11-11 15:47:51 UTC (rev 290)
+++ ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/bean/EnterpriseBean.java 2008-11-12 10:22:01 UTC (rev 291)
@@ -143,10 +143,6 @@
// <1 (0) @Destructors
if (getEjbMetaData().getNoArgsRemoveMethod() != null)
{
- if (getEjbMetaData().getRemoveMethods().size() > 1)
- {
- throw new DefinitionException("Multiple @Remove methods but no @Destructor found");
- }
super.removeMethod = checkRemoveMethod(getEjbMetaData().getNoArgsRemoveMethod());
return;
}
@@ -155,65 +151,9 @@
{
throw new DefinitionException("Only @Dependent scoped enterprise beans can be without remove methods");
}
-
-/*
- if (getEjbMetaData().isStateful())
- {
- if (getEjbMetaData().getRemoveMethods().size() == 1)
- {
- super.removeMethod = checkRemoveMethod(getEjbMetaData().getRemoveMethods().iterator().next());
- }
- else if (getEjbMetaData().getRemoveMethods().size() > 1)
- {
- List<Method> possibleRemoveMethods = new ArrayList<Method>();
- for (Method removeMethod : getEjbMetaData().getRemoveMethods())
- {
- if (removeMethod.isAnnotationPresent(Destructor.class))
- {
- possibleRemoveMethods.add(removeMethod);
- }
- }
- if (possibleRemoveMethods.size() == 1)
- {
- super.removeMethod = checkRemoveMethod(possibleRemoveMethods.iterator().next());
- }
- else if (possibleRemoveMethods.size() == 2)
- {
- Method firstMethod = possibleRemoveMethods.get(0);
- Method secondMethod = possibleRemoveMethods.get(1);
- // If the method has both the @Remove and @Destructor annotation, it gets added twice in
- // the EjbMetaData constructor.
- if (!firstMethod.equals(secondMethod)) {
- throw new DefinitionException("Multiple remove methods are annotated @Remove/@Destructor for " + getType());
- }
- super.removeMethod = checkRemoveMethod(possibleRemoveMethods.iterator().next());
- }
- else if (possibleRemoveMethods.size() > 2)
- {
- throw new DefinitionException("Multiple remove methods are annotated @Remove/@Destructor for " + getType());
- }
- else if (possibleRemoveMethods.size() == 0)
- {
- throw new RuntimeException("Multiple remove methods are declared, and none are annotated @Destructor for " + getType());
- }
- }
- else if (getEjbMetaData().getRemoveMethods().isEmpty() && !getScopeType().equals(Dependent.class))
- {
- throw new DefinitionException("No remove methods declared for non-dependent scoped bean " + getType());
- }
- }
- else
- {
- List<Method> destroysMethods = Reflections.getMethods(getType(), Destructor.class);
- if (destroysMethods.size() > 0)
- {
- throw new DefinitionException("Only stateful enterprise beans can have methods annotated @Destructor; " + getType() + " is not a stateful enterprise bean");
- }
- }
- */
+
}
-
private InjectableMethod<?> checkRemoveMethod(Method method)
{
if (method.isAnnotationPresent(Destructor.class) && !method.isAnnotationPresent(EJB.REMOVE_ANNOTATION)) {
Added: ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/bean/XmlEnterpriseBean.java
===================================================================
--- ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/bean/XmlEnterpriseBean.java (rev 0)
+++ ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/bean/XmlEnterpriseBean.java 2008-11-12 10:22:01 UTC (rev 291)
@@ -0,0 +1,17 @@
+package org.jboss.webbeans.bean;
+
+import org.jboss.webbeans.ManagerImpl;
+
+public class XmlEnterpriseBean<T> extends EnterpriseBean<T>
+{
+
+ public XmlEnterpriseBean(Class<T> type, ManagerImpl manager)
+ {
+ super(type, manager);
+ }
+
+ protected boolean isDefinedInXml()
+ {
+ return true;
+ }
+}
Modified: ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/ejb/EjbMetaData.java
===================================================================
--- ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/ejb/EjbMetaData.java 2008-11-11 15:47:51 UTC (rev 290)
+++ ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/ejb/EjbMetaData.java 2008-11-12 10:22:01 UTC (rev 291)
@@ -33,7 +33,7 @@
private EjbType ejbType;
private List<Method> removeMethods = new ArrayList<Method>();
private List<Method> destructorMethods = new ArrayList<Method>();
- private Method noArgsRemoveMethod;
+ private List<Method> noArgsRemoveMethods = new ArrayList<Method>();
// TODO Populate this from web.xml
private String ejbLinkJndiName;
@@ -66,7 +66,7 @@
{
removeMethods.add(removeMethod);
if (removeMethod.getParameterTypes().length == 0) {
- noArgsRemoveMethod = removeMethod;
+ noArgsRemoveMethods.add(removeMethod);
}
}
for (Method destructorMethod : Reflections.getMethods(type, Destructor.class))
@@ -136,12 +136,7 @@
public Method getNoArgsRemoveMethod()
{
- return noArgsRemoveMethod;
+ return noArgsRemoveMethods.size() == 1 ? noArgsRemoveMethods.iterator().next() : null;
}
- public void setNoArgsRemoveMethod(Method noArgsRemoveMethod)
- {
- this.noArgsRemoveMethod = noArgsRemoveMethod;
- }
-
}
Modified: ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/ejb/model/EnterpriseBeanDeclarationTest.java
===================================================================
--- ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/ejb/model/EnterpriseBeanDeclarationTest.java 2008-11-11 15:47:51 UTC (rev 290)
+++ ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/ejb/model/EnterpriseBeanDeclarationTest.java 2008-11-12 10:22:01 UTC (rev 291)
@@ -126,9 +126,6 @@
assert false;
}
-
-
-
@Test(groups="enterpriseBeans")
@SpecAssertion(section = "3.3.1")
public void testAnnotatedEnterpriseBean()
Modified: ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/ejb/model/EnterpriseBeanRemoveMethodTest.java
===================================================================
--- ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/ejb/model/EnterpriseBeanRemoveMethodTest.java 2008-11-11 15:47:51 UTC (rev 290)
+++ ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/ejb/model/EnterpriseBeanRemoveMethodTest.java 2008-11-12 10:22:01 UTC (rev 291)
@@ -5,11 +5,13 @@
import javax.webbeans.UnremovedException;
import org.jboss.webbeans.bean.EnterpriseBean;
+import org.jboss.webbeans.bean.XmlEnterpriseBean;
import org.jboss.webbeans.contexts.RequestContext;
import org.jboss.webbeans.test.AbstractTest;
import org.jboss.webbeans.test.SpecAssertion;
import org.jboss.webbeans.test.SpecVersion;
import org.jboss.webbeans.test.ejb.model.invalid.Armant;
+import org.jboss.webbeans.test.ejb.model.invalid.ChowChow;
import org.jboss.webbeans.test.ejb.model.invalid.GoldenRetriever;
import org.jboss.webbeans.test.ejb.model.invalid.JackRussellTerrier;
import org.jboss.webbeans.test.ejb.model.invalid.Poodle;
@@ -31,14 +33,14 @@
public static boolean tickle = false;
- @Test(groups={"ejb3", "removeMethod"}, expectedExceptions = DefinitionException.class)
+ @Test(groups={"enterpriseBeans", "removeMethod"}, expectedExceptions = DefinitionException.class)
@SpecAssertion(section = "3.3.5")
public void testStatelessEnterpriseBeansWithRemoveMethodsFails()
{
EnterpriseBean<Armant> bean = Util.createEnterpriseBean(Armant.class, manager);
}
- @Test(groups={"ejb3", "removeMethod", "lifecycle"})
+ @Test(groups={"enterpriseBeans", "removeMethod", "lifecycle"})
@SpecAssertion(section = "3.3.5")
public void testStatefulEnterpriseBeanRemoveMethodCalledWhenDestroyedByManager()
{
@@ -50,21 +52,21 @@
assert EnterpriseBeanRemoveMethodTest.tickle;
}
- @Test(groups={"ejb3", "removeMethod"}, expectedExceptions = DefinitionException.class)
+ @Test(groups={"enterpriseBeans", "removeMethod"}, expectedExceptions = DefinitionException.class)
@SpecAssertion(section = "3.3.5")
public void testStatefulEnterpriseBeanWithoutRemoveMethodMustBeDependentScoped()
{
EnterpriseBean<Pumi> bean = Util.createEnterpriseBean(Pumi.class, manager);
}
- @Test(groups={"ejb3", "removeMethod"})
+ @Test(groups={"enterpriseBeans", "removeMethod"})
@SpecAssertion(section = "3.3.5")
public void testStatefulEnterpriseBeanWithoutRemoveMethodMustBeDependentScoped2()
{
EnterpriseBean<WelshCorgie> bean = Util.createEnterpriseBean(WelshCorgie.class, manager);
}
- @Test(groups={"ejb3", "removeMethod"}, expectedExceptions = UnremovedException.class)
+ @Test(groups={"enterpriseBeans", "removeMethod"}, expectedExceptions = UnremovedException.class)
@SpecAssertion(section = "3.3.5")
public void testStatefulEnterpriseBeanWithoutRemoveMethodMustBeRemovedByApplicationBeforeManager()
{
@@ -75,7 +77,7 @@
context.destroy(manager);
}
- @Test(groups={"ejb3", "removeMethod", "lifecycle"})
+ @Test(groups={"enterpriseBeans", "removeMethod", "lifecycle"})
@SpecAssertion(section = "3.3.5")
public void testApplicationRemoveMethodCallRemovesInstanceFromContext()
{
@@ -87,7 +89,7 @@
assert instance == null;
}
- @Test(groups={"ejb3", "removeMethod"})
+ @Test(groups={"enterpriseBeans", "removeMethod"})
@SpecAssertion(section = {"3.3.5.1", "3.3.5.2"})
public void testEnterpriseBeanWithoutDestructorUsesNoArgsRemoveAnnotatedMethodAsRemoveMethod()
{
@@ -96,7 +98,7 @@
.getAnnotatedMethod().getName());
}
- @Test(groups={"ejb3", "removeMethod"})
+ @Test(groups={"enterpriseBeans", "removeMethod"})
@SpecAssertion(section = {"3.3.5.1", "3.3.5.2"})
public void testEnterpriseBeanWithoutDestructorAndNoArgsRemoveAnnotatedMethodHasNoRemoveMethod()
{
@@ -104,49 +106,49 @@
assert bean.getRemoveMethod() == null;
}
- @Test(groups={"ejb3", "removeMethod"}, expectedExceptions = DefinitionException.class)
+ @Test(groups={"enterpriseBeans", "removeMethod"}, expectedExceptions = DefinitionException.class)
@SpecAssertion(section = {"3.3.5.1", "3.3.5.2"})
public void testMultipleDestructorAnnotatedMethodsFails()
{
EnterpriseBean<Rottweiler> bean = Util.createEnterpriseBean(Rottweiler.class, manager);
}
- @Test(groups={"ejb3", "removeMethod"}, expectedExceptions = DefinitionException.class)
+ @Test(groups={"enterpriseBeans", "removeMethod"}, expectedExceptions = DefinitionException.class)
@SpecAssertion(section = {"3.3.5.1", "3.3.5.2"})
public void testDestructorAnnotatedMethodNotRemoveAnnotatedFails()
{
EnterpriseBean<RussellTerrier> bean = Util.createEnterpriseBean(RussellTerrier.class, manager);
}
- @Test(groups={"ejb3", "removeMethod"}, expectedExceptions = DefinitionException.class)
+ @Test(groups={"enterpriseBeans", "removeMethod"}, expectedExceptions = DefinitionException.class)
@SpecAssertion(section = {"3.3.5.1", "3.3.5.2"})
public void testRemoveMethodIsInitializerFails()
{
EnterpriseBean<Saluki> bean = Util.createEnterpriseBean(Saluki.class, manager);
}
- @Test(groups={"ejb3", "removeMethod"}, expectedExceptions = DefinitionException.class)
+ @Test(groups={"enterpriseBeans", "removeMethod"}, expectedExceptions = DefinitionException.class)
@SpecAssertion(section = {"3.3.5.1", "3.3.5.2"})
public void testRemoveMethodIsProducerFails()
{
EnterpriseBean<Spitz> bean = Util.createEnterpriseBean(Spitz.class, manager);
}
- @Test(groups={"ejb3", "removeMethod"}, expectedExceptions = DefinitionException.class)
+ @Test(groups={"enterpriseBeans", "removeMethod"}, expectedExceptions = DefinitionException.class)
@SpecAssertion(section = {"3.3.5.1", "3.3.5.2"})
public void testRemoveMethodWithDisposesParameterFails()
{
EnterpriseBean<GoldenRetriever> bean = Util.createEnterpriseBean(GoldenRetriever.class, manager);
}
- @Test(groups={"ejb3", "removeMethod"}, expectedExceptions = DefinitionException.class)
+ @Test(groups={"enterpriseBeans", "removeMethod"}, expectedExceptions = DefinitionException.class)
@SpecAssertion(section = {"3.3.5.1", "3.3.5.2"})
public void testRemoveMethodWithObservesParameterFails()
{
EnterpriseBean<JackRussellTerrier> bean = Util.createEnterpriseBean(JackRussellTerrier.class, manager);
}
- @Test(groups={"ejb3", "removeMethod"}, expectedExceptions = DefinitionException.class)
+ @Test(groups={"enterpriseBeans", "removeMethod"}, expectedExceptions = DefinitionException.class)
@SpecAssertion(section = {"3.3.5.1", "3.3.5.2"})
public void testMultipleRemoveAnnotationsButNoDestructorFails()
{
@@ -154,21 +156,22 @@
}
- @Test(groups={"ejb3", "removeMethod"})
+ @Test(groups={"enterpriseBeans", "removeMethod"})
@SpecAssertion(section = "3.3.5.2")
- public void testXMLDefinedEnterpriseBeanWithMatchingRemoveMethodFails()
+ public void testXMLDefinedEnterpriseBeanWithoutMatchingRemoveMethodFails()
{
assert false;
}
- @Test(groups={"ejb3", "removeMethod"})
+ @Test(groups={"enterpriseBeans", "removeMethod"})
@SpecAssertion(section = "3.3.5.2")
public void testXMLDefinedEnterpriseBeanWithMultipleRemoveMethodsFails()
{
+ XmlEnterpriseBean<ChowChow> bean = Util.createXmlEnterpriseBean(ChowChow.class, manager);
assert false;
}
- @Test(groups={"ejb3", "removeMethod"})
+ @Test(groups={"enterpriseBeans", "removeMethod"})
@SpecAssertion(section = "3.3.5.2")
public void testXMLDefinedEnterpriseBeanIgnoresBindingAnnotationOnParameters()
{
Added: ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/ejb/model/invalid/ChowChow.java
===================================================================
--- ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/ejb/model/invalid/ChowChow.java (rev 0)
+++ ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/ejb/model/invalid/ChowChow.java 2008-11-12 10:22:01 UTC (rev 291)
@@ -0,0 +1,11 @@
+package org.jboss.webbeans.test.ejb.model.invalid;
+
+import javax.ejb.Stateful;
+import javax.webbeans.RequestScoped;
+
+@Stateful
+@RequestScoped
+public class ChowChow
+{
+
+}
Modified: ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/util/Util.java
===================================================================
--- ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/util/Util.java 2008-11-11 15:47:51 UTC (rev 290)
+++ ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/util/Util.java 2008-11-12 10:22:01 UTC (rev 291)
@@ -7,6 +7,8 @@
import org.jboss.webbeans.bean.EnterpriseBean;
import org.jboss.webbeans.bean.ProducerMethodBean;
import org.jboss.webbeans.bean.SimpleBean;
+import org.jboss.webbeans.bean.XmlEnterpriseBean;
+import org.jboss.webbeans.bean.XmlSimpleBean;
public class Util
{
@@ -15,11 +17,21 @@
return new SimpleBean<T>(clazz, manager);
}
+ public static <T> XmlSimpleBean<T> createXmlSimpleBean(Class<T> clazz, ManagerImpl manager)
+ {
+ return new XmlSimpleBean<T>(clazz, manager);
+ }
+
public static <T> EnterpriseBean<T> createEnterpriseBean(Class<T> clazz, ManagerImpl manager)
{
return new EnterpriseBean<T>(clazz, manager);
}
-
+
+ public static <T> XmlEnterpriseBean<T> createXmlEnterpriseBean(Class<T> clazz, ManagerImpl manager)
+ {
+ return new XmlEnterpriseBean<T>(clazz, manager);
+ }
+
public static <T> ProducerMethodBean<T> createProducerMethodBean(Class<T> type, Method method, ManagerImpl manager, AbstractClassBean<?> declaringBean)
{
return new ProducerMethodBean<T>(method, declaringBean, manager);
15 years, 5 months
[webbeans-commits] Webbeans SVN: r290 - in ri/trunk/webbeans-ri/src: main/java/org/jboss/webbeans/ejb and 5 other directories.
by webbeans-commits@lists.jboss.org
Author: nickarls
Date: 2008-11-11 10:47:51 -0500 (Tue, 11 Nov 2008)
New Revision: 290
Added:
ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/ejb/model/valid/Koirus.java
ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/ejb/model/valid/Toller.java
ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/ejb/model/valid/WelshCorgie.java
Removed:
ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/ejb/model/invalid/RequestScopedStateless.java
ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/ejb/model/invalid/Toller.java
ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/ejb/model/invalid/WelshCorgie.java
ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/ejb/model/invalid/Whippet.java
Modified:
ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/bean/EnterpriseBean.java
ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/ejb/EjbMetaData.java
ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/EjbMetaDataTest.java
ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/ejb/lifecycle/EnterpriseBeanLifecycleTest.java
ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/ejb/model/EnterpriseBeanRemoveMethodTest.java
ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/ejb/model/invalid/Armant.java
ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/ejb/model/invalid/GoldenRetriever.java
ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/ejb/model/invalid/JackRussellTerrier.java
ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/ejb/model/invalid/Poodle.java
ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/ejb/model/invalid/Pumi.java
ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/ejb/model/invalid/Rottweiler.java
ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/ejb/model/invalid/RussellTerrier.java
ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/ejb/model/invalid/Saluki.java
ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/ejb/model/invalid/Spitz.java
ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/ejb/model/valid/Hound.java
ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/ejb/model/valid/Pitbull.java
Log:
Look over ejb remove method tests ->
changes in ejb remove method validation
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 2008-11-11 07:20:01 UTC (rev 289)
+++ ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/bean/EnterpriseBean.java 2008-11-11 15:47:51 UTC (rev 290)
@@ -2,8 +2,6 @@
import java.lang.annotation.Annotation;
import java.lang.reflect.Method;
-import java.util.ArrayList;
-import java.util.List;
import javax.webbeans.ApplicationScoped;
import javax.webbeans.Decorator;
@@ -24,7 +22,6 @@
import org.jboss.webbeans.introspector.impl.InjectableField;
import org.jboss.webbeans.introspector.impl.InjectableMethod;
import org.jboss.webbeans.introspector.impl.InjectableParameter;
-import org.jboss.webbeans.util.Reflections;
public class EnterpriseBean<T> extends AbstractClassBean<T>
{
@@ -130,12 +127,41 @@
// TODO logging
protected void initRemoveMethod()
{
+ if (!getEjbMetaData().isStateful())
+ {
+ // Nothing to do for stateless enterprise beans;
+ return;
+ }
+
+ // >1 @Destructor
+ if (getEjbMetaData().getDestructorMethods().size() > 1)
+ {
+ throw new DefinitionException("Multiple @Destructor methods not allowed");
+ }
+
+
+ // <1 (0) @Destructors
+ if (getEjbMetaData().getNoArgsRemoveMethod() != null)
+ {
+ if (getEjbMetaData().getRemoveMethods().size() > 1)
+ {
+ throw new DefinitionException("Multiple @Remove methods but no @Destructor found");
+ }
+ super.removeMethod = checkRemoveMethod(getEjbMetaData().getNoArgsRemoveMethod());
+ return;
+ }
+
+ if (!getScopeType().equals(Dependent.class))
+ {
+ throw new DefinitionException("Only @Dependent scoped enterprise beans can be without remove methods");
+ }
+
+/*
if (getEjbMetaData().isStateful())
{
if (getEjbMetaData().getRemoveMethods().size() == 1)
{
-// super.removeMethod = new InjectableMethod<Object>(getEjbMetaData().getRemoveMethods().get(0));
- super.removeMethod = checkRemoveMethod(getEjbMetaData().getRemoveMethods().get(0));
+ super.removeMethod = checkRemoveMethod(getEjbMetaData().getRemoveMethods().iterator().next());
}
else if (getEjbMetaData().getRemoveMethods().size() > 1)
{
@@ -149,7 +175,7 @@
}
if (possibleRemoveMethods.size() == 1)
{
- super.removeMethod = checkRemoveMethod(possibleRemoveMethods.get(0));
+ super.removeMethod = checkRemoveMethod(possibleRemoveMethods.iterator().next());
}
else if (possibleRemoveMethods.size() == 2)
{
@@ -160,6 +186,7 @@
if (!firstMethod.equals(secondMethod)) {
throw new DefinitionException("Multiple remove methods are annotated @Remove/@Destructor for " + getType());
}
+ super.removeMethod = checkRemoveMethod(possibleRemoveMethods.iterator().next());
}
else if (possibleRemoveMethods.size() > 2)
{
@@ -183,6 +210,7 @@
throw new DefinitionException("Only stateful enterprise beans can have methods annotated @Destructor; " + getType() + " is not a stateful enterprise bean");
}
}
+ */
}
Modified: ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/ejb/EjbMetaData.java
===================================================================
--- ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/ejb/EjbMetaData.java 2008-11-11 07:20:01 UTC (rev 289)
+++ ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/ejb/EjbMetaData.java 2008-11-11 15:47:51 UTC (rev 290)
@@ -14,6 +14,7 @@
import java.util.ArrayList;
import java.util.List;
+import javax.webbeans.DefinitionException;
import javax.webbeans.Destructor;
import org.jboss.webbeans.util.Reflections;
@@ -30,7 +31,9 @@
}
private EjbType ejbType;
- private List<Method> removeMethods;
+ private List<Method> removeMethods = new ArrayList<Method>();
+ private List<Method> destructorMethods = new ArrayList<Method>();
+ private Method noArgsRemoveMethod;
// TODO Populate this from web.xml
private String ejbLinkJndiName;
@@ -51,18 +54,24 @@
if (type.isAnnotationPresent(STATELESS_ANNOTATION))
{
this.ejbType = STATELESS;
+ // TODO Has to be done here? If they are not parsed, they can't be detected later on (EnterpriseBean remove method init)
+ if (!Reflections.getMethods(type, Destructor.class).isEmpty()) {
+ throw new DefinitionException("Stateless enterprise beans cannot have @Destructor methods");
+ }
}
else if (type.isAnnotationPresent(STATEFUL_ANNOTATION))
{
this.ejbType = STATEFUL;
- this.removeMethods = new ArrayList<Method>();
for (Method removeMethod : Reflections.getMethods(type, REMOVE_ANNOTATION))
{
removeMethods.add(removeMethod);
+ if (removeMethod.getParameterTypes().length == 0) {
+ noArgsRemoveMethod = removeMethod;
+ }
}
for (Method destructorMethod : Reflections.getMethods(type, Destructor.class))
{
- removeMethods.add(destructorMethod);
+ destructorMethods.add(destructorMethod);
}
}
else if (type.isAnnotationPresent(MESSAGE_DRIVEN_ANNOTATION))
@@ -119,5 +128,20 @@
{
return type;
}
+
+ public List<Method> getDestructorMethods()
+ {
+ return destructorMethods;
+ }
+
+ public Method getNoArgsRemoveMethod()
+ {
+ return noArgsRemoveMethod;
+ }
+
+ public void setNoArgsRemoveMethod(Method noArgsRemoveMethod)
+ {
+ this.noArgsRemoveMethod = noArgsRemoveMethod;
+ }
}
Modified: ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/EjbMetaDataTest.java
===================================================================
--- ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/EjbMetaDataTest.java 2008-11-11 07:20:01 UTC (rev 289)
+++ ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/EjbMetaDataTest.java 2008-11-11 15:47:51 UTC (rev 290)
@@ -14,7 +14,7 @@
{
EjbMetaData<Lion> lion = new EjbMetaData<Lion>(Lion.class);
assert lion.isStateless();
- assert lion.getRemoveMethods() == null;
+ assert lion.getRemoveMethods().isEmpty();
}
@Test
@@ -30,7 +30,7 @@
{
EjbMetaData<Leopard> leopard = new EjbMetaData<Leopard>(Leopard.class);
assert leopard.isMessageDriven();
- assert leopard.getRemoveMethods() == null;
+ assert leopard.getRemoveMethods().isEmpty();
}
}
Modified: ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/ejb/lifecycle/EnterpriseBeanLifecycleTest.java
===================================================================
--- ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/ejb/lifecycle/EnterpriseBeanLifecycleTest.java 2008-11-11 07:20:01 UTC (rev 289)
+++ ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/ejb/lifecycle/EnterpriseBeanLifecycleTest.java 2008-11-11 15:47:51 UTC (rev 290)
@@ -12,14 +12,12 @@
@Test(groups="removeMethod") @SpecAssertion(section="3.2.3")
public void testInjectonOfParametersIntoRemoveMethod()
{
- // TODO Placeholder
assert false;
}
@Test(groups="specialization") @SpecAssertion(section="3.2.4")
public void testSpecializedBeanAlwaysUsed()
{
- // TODO Placeholder
assert false;
}
Modified: ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/ejb/model/EnterpriseBeanRemoveMethodTest.java
===================================================================
--- ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/ejb/model/EnterpriseBeanRemoveMethodTest.java 2008-11-11 07:20:01 UTC (rev 289)
+++ ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/ejb/model/EnterpriseBeanRemoveMethodTest.java 2008-11-11 15:47:51 UTC (rev 290)
@@ -1,8 +1,11 @@
package org.jboss.webbeans.test.ejb.model;
import javax.webbeans.DefinitionException;
+import javax.webbeans.RequestScoped;
+import javax.webbeans.UnremovedException;
import org.jboss.webbeans.bean.EnterpriseBean;
+import org.jboss.webbeans.contexts.RequestContext;
import org.jboss.webbeans.test.AbstractTest;
import org.jboss.webbeans.test.SpecAssertion;
import org.jboss.webbeans.test.SpecVersion;
@@ -15,11 +18,9 @@
import org.jboss.webbeans.test.ejb.model.invalid.RussellTerrier;
import org.jboss.webbeans.test.ejb.model.invalid.Saluki;
import org.jboss.webbeans.test.ejb.model.invalid.Spitz;
-import org.jboss.webbeans.test.ejb.model.invalid.Toller;
-import org.jboss.webbeans.test.ejb.model.invalid.WelshCorgie;
-import org.jboss.webbeans.test.ejb.model.invalid.Whippet;
-import org.jboss.webbeans.test.ejb.model.valid.Laika;
-import org.jboss.webbeans.test.ejb.model.valid.Pitbull;
+import org.jboss.webbeans.test.ejb.model.valid.Toller;
+import org.jboss.webbeans.test.ejb.model.valid.WelshCorgie;
+import org.jboss.webbeans.test.ejb.model.valid.Koirus;
import org.jboss.webbeans.test.util.Util;
import org.testng.annotations.Test;
@@ -28,105 +29,150 @@
public class EnterpriseBeanRemoveMethodTest extends AbstractTest
{
- @Test
+ public static boolean tickle = false;
+
+ @Test(groups={"ejb3", "removeMethod"}, expectedExceptions = DefinitionException.class)
@SpecAssertion(section = "3.3.5")
- public void testStatefulEnterpriseBeanWithoutRemoveMethodInDependentScopeOK()
+ public void testStatelessEnterpriseBeansWithRemoveMethodsFails()
{
- EnterpriseBean<Pitbull> pitbull = Util.createEnterpriseBean(Pitbull.class, manager);
+ EnterpriseBean<Armant> bean = Util.createEnterpriseBean(Armant.class, manager);
}
- @Test(expectedExceptions = DefinitionException.class)
+ @Test(groups={"ejb3", "removeMethod", "lifecycle"})
@SpecAssertion(section = "3.3.5")
- public void testStatefulEnterpriseBeanWithoutRemoveMethodInApplicationScopeFails()
+ public void testStatefulEnterpriseBeanRemoveMethodCalledWhenDestroyedByManager()
{
- EnterpriseBean<Poodle> poodle = Util.createEnterpriseBean(Poodle.class, manager);
+ EnterpriseBeanRemoveMethodTest.tickle = false;
+ EnterpriseBean<Toller> bena = Util.createEnterpriseBean(Toller.class, manager);
+ RequestContext context = (RequestContext) manager.getContext(RequestScoped.class);
+ Toller instance = context.get(bena, true);
+ context.destroy(manager);
+ assert EnterpriseBeanRemoveMethodTest.tickle;
}
- @Test(expectedExceptions = DefinitionException.class)
+ @Test(groups={"ejb3", "removeMethod"}, expectedExceptions = DefinitionException.class)
@SpecAssertion(section = "3.3.5")
- public void testStatefulEnterpriseBeanWithoutRemoveMethodInSessionScopeFails()
+ public void testStatefulEnterpriseBeanWithoutRemoveMethodMustBeDependentScoped()
{
- EnterpriseBean<Rottweiler> rottweiler = Util.createEnterpriseBean(Rottweiler.class, manager);
+ EnterpriseBean<Pumi> bean = Util.createEnterpriseBean(Pumi.class, manager);
}
- @Test(expectedExceptions = DefinitionException.class)
+ @Test(groups={"ejb3", "removeMethod"})
@SpecAssertion(section = "3.3.5")
- public void testStatefulEnterpriseBeanWithoutRemoveMethodInConversationScopeFails()
+ public void testStatefulEnterpriseBeanWithoutRemoveMethodMustBeDependentScoped2()
{
- EnterpriseBean<Spitz> spitz = Util.createEnterpriseBean(Spitz.class, manager);
+ EnterpriseBean<WelshCorgie> bean = Util.createEnterpriseBean(WelshCorgie.class, manager);
}
- @Test(expectedExceptions = DefinitionException.class)
+ @Test(groups={"ejb3", "removeMethod"}, expectedExceptions = UnremovedException.class)
@SpecAssertion(section = "3.3.5")
- public void testStatefulEnterpriseBeanWithoutRemoveMethodInRequestScopeFails()
+ public void testStatefulEnterpriseBeanWithoutRemoveMethodMustBeRemovedByApplicationBeforeManager()
{
- EnterpriseBean<Saluki> saluki = Util.createEnterpriseBean(Saluki.class, manager);
+ EnterpriseBean<Toller> bean = Util.createEnterpriseBean(Toller.class, manager);
+ Toller instance = manager.getInstance(bean);
+ RequestContext context = (RequestContext) manager
+ .getContext(RequestScoped.class);
+ context.destroy(manager);
}
- @Test
- @SpecAssertion(section = "3.3.5.1")
- public void testAnnotationDefinedEnterpriseBeanWithoutDestructorUsesRemoveMethodWithoutParamsAsWebBeansRemoveMethod()
+ @Test(groups={"ejb3", "removeMethod", "lifecycle"})
+ @SpecAssertion(section = "3.3.5")
+ public void testApplicationRemoveMethodCallRemovesInstanceFromContext()
{
- EnterpriseBean<Armant> whippet = Util.createEnterpriseBean(Armant.class, manager);
- assert whippet.getRemoveMethod().getAnnotatedItem().getName().equals("destroy");
+ EnterpriseBean<Toller> bean = Util.createEnterpriseBean(Toller.class, manager);
+ RequestContext context = (RequestContext) manager.getContext(RequestScoped.class);
+ Toller instance = context.get(bean, true);
+ instance.bye();
+ instance = context.get(bean, false);
+ assert instance == null;
}
- @Test
- @SpecAssertion(section = "3.3.5.1")
- public void testAnnotationDefinedEnterpriseBeanWithoutDestructorAndRemoveMethodWithoutParamsHasNoWebBeansRemoveMethod()
+ @Test(groups={"ejb3", "removeMethod"})
+ @SpecAssertion(section = {"3.3.5.1", "3.3.5.2"})
+ public void testEnterpriseBeanWithoutDestructorUsesNoArgsRemoveAnnotatedMethodAsRemoveMethod()
{
- EnterpriseBean<Laika> laika = Util.createEnterpriseBean(Laika.class, manager);
- assert laika.getRemoveMethod() == null;
+ EnterpriseBean<Toller> bean = Util.createEnterpriseBean(Toller.class, manager);
+ assert "bye".equals(bean.getRemoveMethod().getAnnotatedItem()
+ .getAnnotatedMethod().getName());
}
- @Test(expectedExceptions = DefinitionException.class)
- @SpecAssertion(section = "3.3.5.1")
- public void testEnterpriseBeanWithMultipleDestructorAnnotationsFail()
+ @Test(groups={"ejb3", "removeMethod"})
+ @SpecAssertion(section = {"3.3.5.1", "3.3.5.2"})
+ public void testEnterpriseBeanWithoutDestructorAndNoArgsRemoveAnnotatedMethodHasNoRemoveMethod()
{
- EnterpriseBean<Whippet> whippet = Util.createEnterpriseBean(Whippet.class, manager);
+ EnterpriseBean<Koirus> bean = Util.createEnterpriseBean(Koirus.class, manager);
+ assert bean.getRemoveMethod() == null;
}
- @Test(expectedExceptions = DefinitionException.class)
- @SpecAssertion(section = "3.3.5.1")
- public void testAnnotationDefinedEnterpriseBeanWithDestructorAnnotationOnMethodNotAnEJBRemoveMethodFails()
+ @Test(groups={"ejb3", "removeMethod"}, expectedExceptions = DefinitionException.class)
+ @SpecAssertion(section = {"3.3.5.1", "3.3.5.2"})
+ public void testMultipleDestructorAnnotatedMethodsFails()
{
- EnterpriseBean<GoldenRetriever> goldenRetriever = Util.createEnterpriseBean(GoldenRetriever.class, manager);
+ EnterpriseBean<Rottweiler> bean = Util.createEnterpriseBean(Rottweiler.class, manager);
}
- @Test(expectedExceptions = DefinitionException.class)
- @SpecAssertion(section = "3.3.5.1")
- public void testAnnotationDefinedEnterpriseBeanWithDestructorWithDisposesParameterFails()
+ @Test(groups={"ejb3", "removeMethod"}, expectedExceptions = DefinitionException.class)
+ @SpecAssertion(section = {"3.3.5.1", "3.3.5.2"})
+ public void testDestructorAnnotatedMethodNotRemoveAnnotatedFails()
{
- EnterpriseBean<Pumi> pumi = Util.createEnterpriseBean(Pumi.class, manager);
+ EnterpriseBean<RussellTerrier> bean = Util.createEnterpriseBean(RussellTerrier.class, manager);
}
- @Test(expectedExceptions = DefinitionException.class)
- @SpecAssertion(section = "3.3.5.1")
- public void testEnterpriseBeanWithInitializerAnnotationOnRemoveMethodFails()
+ @Test(groups={"ejb3", "removeMethod"}, expectedExceptions = DefinitionException.class)
+ @SpecAssertion(section = {"3.3.5.1", "3.3.5.2"})
+ public void testRemoveMethodIsInitializerFails()
{
- EnterpriseBean<JackRussellTerrier> jackRussellTerrier = Util.createEnterpriseBean(JackRussellTerrier.class, manager);
+ EnterpriseBean<Saluki> bean = Util.createEnterpriseBean(Saluki.class, manager);
}
- @Test(expectedExceptions = DefinitionException.class)
- @SpecAssertion(section = "3.3.5.1")
- public void testEnterpriseBeanWithProducerAnnotationOnRemoveMethodFails()
+ @Test(groups={"ejb3", "removeMethod"}, expectedExceptions = DefinitionException.class)
+ @SpecAssertion(section = {"3.3.5.1", "3.3.5.2"})
+ public void testRemoveMethodIsProducerFails()
{
- EnterpriseBean<RussellTerrier> russellTerrier = Util.createEnterpriseBean(RussellTerrier.class, manager);
+ EnterpriseBean<Spitz> bean = Util.createEnterpriseBean(Spitz.class, manager);
}
- @Test(expectedExceptions = DefinitionException.class)
- @SpecAssertion(section = "3.3.5.1")
- public void testEnterpriseBeanWithRemoveMethodTakingObserverAnnotatedParameterFails()
+ @Test(groups={"ejb3", "removeMethod"}, expectedExceptions = DefinitionException.class)
+ @SpecAssertion(section = {"3.3.5.1", "3.3.5.2"})
+ public void testRemoveMethodWithDisposesParameterFails()
{
- EnterpriseBean<Toller> toller = Util.createEnterpriseBean(Toller.class, manager);
+ EnterpriseBean<GoldenRetriever> bean = Util.createEnterpriseBean(GoldenRetriever.class, manager);
}
- @Test(expectedExceptions=DefinitionException.class)
- public void testStatelessEnterpriseBeansWithDestructorAnnotationFails()
+ @Test(groups={"ejb3", "removeMethod"}, expectedExceptions = DefinitionException.class)
+ @SpecAssertion(section = {"3.3.5.1", "3.3.5.2"})
+ public void testRemoveMethodWithObservesParameterFails()
{
- EnterpriseBean<WelshCorgie> welshCorgie = Util.createEnterpriseBean(WelshCorgie.class, manager);
+ EnterpriseBean<JackRussellTerrier> bean = Util.createEnterpriseBean(JackRussellTerrier.class, manager);
}
+
+ @Test(groups={"ejb3", "removeMethod"}, expectedExceptions = DefinitionException.class)
+ @SpecAssertion(section = {"3.3.5.1", "3.3.5.2"})
+ public void testMultipleRemoveAnnotationsButNoDestructorFails()
+ {
+ EnterpriseBean<Poodle> bean = Util.createEnterpriseBean(Poodle.class, manager);
+ }
-
+ @Test(groups={"ejb3", "removeMethod"})
+ @SpecAssertion(section = "3.3.5.2")
+ public void testXMLDefinedEnterpriseBeanWithMatchingRemoveMethodFails()
+ {
+ assert false;
+ }
+
+ @Test(groups={"ejb3", "removeMethod"})
+ @SpecAssertion(section = "3.3.5.2")
+ public void testXMLDefinedEnterpriseBeanWithMultipleRemoveMethodsFails()
+ {
+ assert false;
+ }
+
+ @Test(groups={"ejb3", "removeMethod"})
+ @SpecAssertion(section = "3.3.5.2")
+ public void testXMLDefinedEnterpriseBeanIgnoresBindingAnnotationOnParameters()
+ {
+ assert false;
+ }
+
}
Modified: ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/ejb/model/invalid/Armant.java
===================================================================
--- ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/ejb/model/invalid/Armant.java 2008-11-11 07:20:01 UTC (rev 289)
+++ ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/ejb/model/invalid/Armant.java 2008-11-11 15:47:51 UTC (rev 290)
@@ -1,13 +1,13 @@
package org.jboss.webbeans.test.ejb.model.invalid;
-import javax.ejb.Remove;
-import javax.ejb.Stateful;
+import javax.ejb.Stateless;
+import javax.webbeans.Destructor;
-@Stateful
+@Stateless
public class Armant
{
- @Remove
- public void destroy() {
+ @Destructor
+ public void bye() {
}
}
Modified: ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/ejb/model/invalid/GoldenRetriever.java
===================================================================
--- ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/ejb/model/invalid/GoldenRetriever.java 2008-11-11 07:20:01 UTC (rev 289)
+++ ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/ejb/model/invalid/GoldenRetriever.java 2008-11-11 15:47:51 UTC (rev 290)
@@ -1,13 +1,18 @@
package org.jboss.webbeans.test.ejb.model.invalid;
+import javax.ejb.Remove;
import javax.ejb.Stateful;
import javax.webbeans.Destructor;
+import javax.webbeans.Disposes;
+import javax.webbeans.RequestScoped;
@Stateful
+@RequestScoped
public class GoldenRetriever
{
- @Destructor
- public void destroy() {
+ @Remove @Destructor
+ public void bye(@Disposes Object something) {
}
+
}
Modified: ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/ejb/model/invalid/JackRussellTerrier.java
===================================================================
--- ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/ejb/model/invalid/JackRussellTerrier.java 2008-11-11 07:20:01 UTC (rev 289)
+++ ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/ejb/model/invalid/JackRussellTerrier.java 2008-11-11 15:47:51 UTC (rev 290)
@@ -2,14 +2,17 @@
import javax.ejb.Remove;
import javax.ejb.Stateful;
-import javax.webbeans.Initializer;
+import javax.webbeans.Destructor;
+import javax.webbeans.Observes;
+import javax.webbeans.RequestScoped;
@Stateful
+@RequestScoped
public class JackRussellTerrier
{
- @Remove
- @Initializer
- public void destroy() {
+ @Remove @Destructor
+ public void bye(@Observes Object something) {
}
+
}
Modified: ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/ejb/model/invalid/Poodle.java
===================================================================
--- ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/ejb/model/invalid/Poodle.java 2008-11-11 07:20:01 UTC (rev 289)
+++ ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/ejb/model/invalid/Poodle.java 2008-11-11 15:47:51 UTC (rev 290)
@@ -1,11 +1,22 @@
package org.jboss.webbeans.test.ejb.model.invalid;
+import javax.ejb.Remove;
import javax.ejb.Stateful;
-import javax.webbeans.ApplicationScoped;
+import javax.webbeans.Observes;
+import javax.webbeans.RequestScoped;
@Stateful
-@ApplicationScoped
+@RequestScoped
public class Poodle
{
-
+ @Remove
+ public void bye() {
+
+ }
+
+ @Remove
+ public void byebye(@Observes Object something) {
+
+ }
+
}
Modified: ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/ejb/model/invalid/Pumi.java
===================================================================
--- ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/ejb/model/invalid/Pumi.java 2008-11-11 07:20:01 UTC (rev 289)
+++ ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/ejb/model/invalid/Pumi.java 2008-11-11 15:47:51 UTC (rev 290)
@@ -1,17 +1,11 @@
package org.jboss.webbeans.test.ejb.model.invalid;
-import javax.ejb.Remove;
import javax.ejb.Stateful;
-import javax.webbeans.Disposes;
+import javax.webbeans.RequestScoped;
-import org.jboss.webbeans.test.annotations.Tame;
-import org.jboss.webbeans.test.beans.Horse;
-
@Stateful
+@RequestScoped
public class Pumi
{
- @Remove
- public void destroy(@Disposes @Tame Horse horse) {
-
- }
+
}
Deleted: ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/ejb/model/invalid/RequestScopedStateless.java
===================================================================
--- ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/ejb/model/invalid/RequestScopedStateless.java 2008-11-11 07:20:01 UTC (rev 289)
+++ ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/ejb/model/invalid/RequestScopedStateless.java 2008-11-11 15:47:51 UTC (rev 290)
@@ -1,11 +0,0 @@
-package org.jboss.webbeans.test.ejb.model.invalid;
-
-import javax.ejb.Stateless;
-import javax.webbeans.RequestScoped;
-
-@RequestScoped
-@Stateless
-public class RequestScopedStateless
-{
-
-}
Modified: ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/ejb/model/invalid/Rottweiler.java
===================================================================
--- ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/ejb/model/invalid/Rottweiler.java 2008-11-11 07:20:01 UTC (rev 289)
+++ ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/ejb/model/invalid/Rottweiler.java 2008-11-11 15:47:51 UTC (rev 290)
@@ -1,11 +1,21 @@
package org.jboss.webbeans.test.ejb.model.invalid;
import javax.ejb.Stateful;
-import javax.webbeans.SessionScoped;
+import javax.webbeans.Destructor;
+import javax.webbeans.RequestScoped;
@Stateful
-@SessionScoped
+@RequestScoped
public class Rottweiler
{
+ @Destructor
+ public void bye() {
+
+ }
+
+ @Destructor
+ public void bye2() {
+
+ }
}
Modified: ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/ejb/model/invalid/RussellTerrier.java
===================================================================
--- ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/ejb/model/invalid/RussellTerrier.java 2008-11-11 07:20:01 UTC (rev 289)
+++ ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/ejb/model/invalid/RussellTerrier.java 2008-11-11 15:47:51 UTC (rev 290)
@@ -1,15 +1,16 @@
package org.jboss.webbeans.test.ejb.model.invalid;
-import javax.ejb.Remove;
import javax.ejb.Stateful;
-import javax.webbeans.Produces;
+import javax.webbeans.Destructor;
+import javax.webbeans.RequestScoped;
@Stateful
+@RequestScoped
public class RussellTerrier
{
- @Remove
- @Produces
- public void destroy() {
+ @Destructor
+ public void bye() {
}
+
}
Modified: ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/ejb/model/invalid/Saluki.java
===================================================================
--- ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/ejb/model/invalid/Saluki.java 2008-11-11 07:20:01 UTC (rev 289)
+++ ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/ejb/model/invalid/Saluki.java 2008-11-11 15:47:51 UTC (rev 290)
@@ -1,11 +1,17 @@
package org.jboss.webbeans.test.ejb.model.invalid;
+import javax.ejb.Remove;
import javax.ejb.Stateful;
+import javax.webbeans.Initializer;
import javax.webbeans.RequestScoped;
@Stateful
@RequestScoped
public class Saluki
{
-
+ @Remove @Initializer
+ public void bye() {
+
+ }
+
}
Modified: ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/ejb/model/invalid/Spitz.java
===================================================================
--- ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/ejb/model/invalid/Spitz.java 2008-11-11 07:20:01 UTC (rev 289)
+++ ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/ejb/model/invalid/Spitz.java 2008-11-11 15:47:51 UTC (rev 290)
@@ -1,11 +1,17 @@
package org.jboss.webbeans.test.ejb.model.invalid;
+import javax.ejb.Remove;
import javax.ejb.Stateful;
-import javax.webbeans.ConversationScoped;
+import javax.webbeans.Produces;
+import javax.webbeans.RequestScoped;
@Stateful
-@ConversationScoped
+@RequestScoped
public class Spitz
{
-
+ @Remove @Produces
+ public void bye() {
+
+ }
+
}
Deleted: ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/ejb/model/invalid/Toller.java
===================================================================
--- ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/ejb/model/invalid/Toller.java 2008-11-11 07:20:01 UTC (rev 289)
+++ ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/ejb/model/invalid/Toller.java 2008-11-11 15:47:51 UTC (rev 290)
@@ -1,17 +0,0 @@
-package org.jboss.webbeans.test.ejb.model.invalid;
-
-import javax.ejb.Remove;
-import javax.ejb.Stateful;
-import javax.webbeans.Observes;
-
-import org.jboss.webbeans.test.annotations.Tame;
-import org.jboss.webbeans.test.beans.Horse;
-
-@Stateful
-public class Toller
-{
- @Remove
- public void destroy(@Observes @Tame Horse horse) {
-
- }
-}
Deleted: ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/ejb/model/invalid/WelshCorgie.java
===================================================================
--- ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/ejb/model/invalid/WelshCorgie.java 2008-11-11 07:20:01 UTC (rev 289)
+++ ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/ejb/model/invalid/WelshCorgie.java 2008-11-11 15:47:51 UTC (rev 290)
@@ -1,13 +0,0 @@
-package org.jboss.webbeans.test.ejb.model.invalid;
-
-import javax.ejb.Stateless;
-import javax.webbeans.Destructor;
-
-@Stateless
-public class WelshCorgie
-{
- @Destructor
- public void destroy() {
-
- }
-}
Deleted: ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/ejb/model/invalid/Whippet.java
===================================================================
--- ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/ejb/model/invalid/Whippet.java 2008-11-11 07:20:01 UTC (rev 289)
+++ ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/ejb/model/invalid/Whippet.java 2008-11-11 15:47:51 UTC (rev 290)
@@ -1,18 +0,0 @@
-package org.jboss.webbeans.test.ejb.model.invalid;
-
-import javax.ejb.Stateful;
-import javax.webbeans.Destructor;
-
-@Stateful
-public class Whippet
-{
- @Destructor
- public void destroy1() {
-
- }
-
- @Destructor
- public void destroy2() {
-
- }
-}
Modified: ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/ejb/model/valid/Hound.java
===================================================================
--- ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/ejb/model/valid/Hound.java 2008-11-11 07:20:01 UTC (rev 289)
+++ ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/ejb/model/valid/Hound.java 2008-11-11 15:47:51 UTC (rev 290)
@@ -1,5 +1,6 @@
package org.jboss.webbeans.test.ejb.model.valid;
+import javax.ejb.Remove;
import javax.ejb.Stateful;
import javax.webbeans.Named;
@@ -9,6 +10,9 @@
@Tame
@Named("Pongo")
public class Hound
-{
+{
+ @Remove
+ public void bye() {
+ }
}
Added: ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/ejb/model/valid/Koirus.java
===================================================================
--- ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/ejb/model/valid/Koirus.java (rev 0)
+++ ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/ejb/model/valid/Koirus.java 2008-11-11 15:47:51 UTC (rev 290)
@@ -0,0 +1,14 @@
+package org.jboss.webbeans.test.ejb.model.valid;
+
+import javax.ejb.Remove;
+import javax.ejb.Stateful;
+import javax.webbeans.Dependent;
+
+@Stateful
+@Dependent
+public class Koirus
+{
+ @Remove
+ public void bye(Object param) {
+ }
+}
\ No newline at end of file
Modified: ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/ejb/model/valid/Pitbull.java
===================================================================
--- ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/ejb/model/valid/Pitbull.java 2008-11-11 07:20:01 UTC (rev 289)
+++ ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/ejb/model/valid/Pitbull.java 2008-11-11 15:47:51 UTC (rev 290)
@@ -1,11 +1,21 @@
package org.jboss.webbeans.test.ejb.model.valid;
+import javax.ejb.Remove;
import javax.ejb.Stateful;
+import javax.webbeans.ApplicationScoped;
+import javax.webbeans.Destructor;
import javax.webbeans.Named;
+import org.jboss.webbeans.test.ejb.model.EnterpriseBeanRemoveMethodTest;
+
@Stateful
+@ApplicationScoped
@Named
public class Pitbull
{
+ @Remove @Destructor
+ public void bye() {
+ EnterpriseBeanRemoveMethodTest.tickle = true;
+ }
}
Added: ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/ejb/model/valid/Toller.java
===================================================================
--- ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/ejb/model/valid/Toller.java (rev 0)
+++ ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/ejb/model/valid/Toller.java 2008-11-11 15:47:51 UTC (rev 290)
@@ -0,0 +1,17 @@
+package org.jboss.webbeans.test.ejb.model.valid;
+
+import javax.ejb.Remove;
+import javax.ejb.Stateful;
+import javax.webbeans.RequestScoped;
+
+import org.jboss.webbeans.test.ejb.model.EnterpriseBeanRemoveMethodTest;
+
+@Stateful
+@RequestScoped
+public class Toller
+{
+ @Remove
+ public void bye() {
+ EnterpriseBeanRemoveMethodTest.tickle = true;
+ }
+}
Added: ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/ejb/model/valid/WelshCorgie.java
===================================================================
--- ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/ejb/model/valid/WelshCorgie.java (rev 0)
+++ ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/ejb/model/valid/WelshCorgie.java 2008-11-11 15:47:51 UTC (rev 290)
@@ -0,0 +1,11 @@
+package org.jboss.webbeans.test.ejb.model.valid;
+
+import javax.ejb.Stateful;
+import javax.webbeans.Dependent;
+
+@Stateful
+@Dependent
+public class WelshCorgie
+{
+
+}
15 years, 5 months
[webbeans-commits] Webbeans SVN: r289 - in ri/trunk/webbeans-ri/src: main/java/org/jboss/webbeans/util and 1 other directories.
by webbeans-commits@lists.jboss.org
Author: nickarls
Date: 2008-11-11 02:20:01 -0500 (Tue, 11 Nov 2008)
New Revision: 289
Modified:
ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/bean/EnterpriseBean.java
ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/util/ProxyMethodHandler.java
ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/util/Reflections.java
ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/ejb/lifecycle/EnterpriseBeanLifecycleTest.java
Log:
Minor typos, refactoring, remove method check loosening
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 2008-11-09 14:57:41 UTC (rev 288)
+++ ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/bean/EnterpriseBean.java 2008-11-11 07:20:01 UTC (rev 289)
@@ -69,11 +69,11 @@
{
if (getType().isAnnotationPresent(Interceptor.class))
{
- throw new DefinitionException("Enterprise beans can't be interceptors");
+ throw new DefinitionException("Enterprise beans cannot be interceptors");
}
if (getType().isAnnotationPresent(Decorator.class))
{
- throw new DefinitionException("Enterprise beans can't be decorators");
+ throw new DefinitionException("Enterprise beans cannot be decorators");
}
}
@@ -151,10 +151,20 @@
{
super.removeMethod = checkRemoveMethod(possibleRemoveMethods.get(0));
}
- else if (possibleRemoveMethods.size() > 1)
+ else if (possibleRemoveMethods.size() == 2)
{
- throw new DefinitionException("Multiple remove methods are annotated @Destructor for " + getType());
+ Method firstMethod = possibleRemoveMethods.get(0);
+ Method secondMethod = possibleRemoveMethods.get(1);
+ // If the method has both the @Remove and @Destructor annotation, it gets added twice in
+ // the EjbMetaData constructor.
+ if (!firstMethod.equals(secondMethod)) {
+ throw new DefinitionException("Multiple remove methods are annotated @Remove/@Destructor for " + getType());
+ }
}
+ else if (possibleRemoveMethods.size() > 2)
+ {
+ throw new DefinitionException("Multiple remove methods are annotated @Remove/@Destructor for " + getType());
+ }
else if (possibleRemoveMethods.size() == 0)
{
throw new RuntimeException("Multiple remove methods are declared, and none are annotated @Destructor for " + getType());
Modified: ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/util/ProxyMethodHandler.java
===================================================================
--- ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/util/ProxyMethodHandler.java 2008-11-09 14:57:41 UTC (rev 288)
+++ ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/util/ProxyMethodHandler.java 2008-11-11 07:20:01 UTC (rev 289)
@@ -25,7 +25,8 @@
ProxyMethodHandler.manager = manager;
}
- public Object invoke(Object self, Method method, Method proceed, Object[] args) throws Throwable
+ public Object invoke(Object self, Method method, Method proceed,
+ Object[] args) throws Throwable
{
if (bean == null)
{
@@ -33,23 +34,10 @@
}
Context context = manager.getContext(bean.getScopeType());
Object proxiedInstance = context.get(bean, true);
- Method proxiedMethod = getMethod(method, proxiedInstance);
+ Method proxiedMethod = Reflections.lookupMethod(method, proxiedInstance);
return proxiedMethod.invoke(proxiedInstance, args);
}
- private static Method getMethod(Method method, Object instance)
- {
- for (Class<? extends Object> c = instance.getClass(); c!=Object.class; c=c.getSuperclass())
- {
- try
- {
- Method m = c.getDeclaredMethod(method.getName(), method.getParameterTypes());
- if (!m.isAccessible()) m.setAccessible(true);
- return m;
- }
- catch (NoSuchMethodException nsme) {}
- }
- throw new IllegalArgumentException("method not implemented by instance");
- }
+
}
Modified: ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/util/Reflections.java
===================================================================
--- ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/util/Reflections.java 2008-11-09 14:57:41 UTC (rev 288)
+++ ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/util/Reflections.java 2008-11-11 07:20:01 UTC (rev 289)
@@ -284,4 +284,25 @@
}
}
+ public static Method lookupMethod(Method method, Object instance)
+ {
+ for (Class<? extends Object> clazz = instance.getClass(); clazz != Object.class; clazz = clazz.getSuperclass())
+ {
+ try
+ {
+ Method targetMethod = clazz.getDeclaredMethod(method.getName(),
+ method.getParameterTypes());
+ if (!targetMethod.isAccessible())
+ {
+ targetMethod.setAccessible(true);
+ }
+ return targetMethod;
+ } catch (NoSuchMethodException nsme)
+ {
+ // Expected, nothing to see here.
+ }
+ }
+ throw new IllegalArgumentException("Method " + method.getName() + " not implemented by instance");
+ }
+
}
Modified: ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/ejb/lifecycle/EnterpriseBeanLifecycleTest.java
===================================================================
--- ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/ejb/lifecycle/EnterpriseBeanLifecycleTest.java 2008-11-09 14:57:41 UTC (rev 288)
+++ ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/ejb/lifecycle/EnterpriseBeanLifecycleTest.java 2008-11-11 07:20:01 UTC (rev 289)
@@ -2,10 +2,11 @@
import javax.webbeans.UnremovedException;
+import org.jboss.webbeans.test.AbstractTest;
import org.jboss.webbeans.test.SpecAssertion;
import org.testng.annotations.Test;
-public class EnterpriseBeanLifecycleTest
+public class EnterpriseBeanLifecycleTest extends AbstractTest
{
@Test(groups="removeMethod") @SpecAssertion(section="3.2.3")
15 years, 5 months
[webbeans-commits] Webbeans SVN: r288 - ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/ejb.
by webbeans-commits@lists.jboss.org
Author: gavin.king(a)jboss.com
Date: 2008-11-09 09:57:41 -0500 (Sun, 09 Nov 2008)
New Revision: 288
Modified:
ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/ejb/DefaultEnterpriseBeanLookup.java
Log:
wire in the lookup method
Modified: ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/ejb/DefaultEnterpriseBeanLookup.java
===================================================================
--- ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/ejb/DefaultEnterpriseBeanLookup.java 2008-11-09 08:00:48 UTC (rev 287)
+++ ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/ejb/DefaultEnterpriseBeanLookup.java 2008-11-09 14:57:41 UTC (rev 288)
@@ -12,15 +12,14 @@
@Standard
public class DefaultEnterpriseBeanLookup implements EnterpriseBeanLookup
{
+ private Map<String, EjbMetaData<?>> ejbMetaDataMap = new HashMap<String, EjbMetaData<?>>();
+
public Object lookup(String ejbName)
{
- // TODO Auto-generated method stub
- return null;
+ return lookup( ejbMetaDataMap.get(ejbName) );
}
- private Map<String, EjbMetaData<?>> ejbMetaDataMap = new HashMap<String, EjbMetaData<?>>();
-
- // TODO Should this be static?
- public <T> T lookup(EjbMetaData<T> ejb)
+
+ public static <T> T lookup(EjbMetaData<T> ejb)
{
if (ejb.getEjbLinkJndiName() != null)
{
@@ -36,20 +35,11 @@
}
}
- @SuppressWarnings("unchecked")
+ //TODO: this method needs to get called at startup
public <T> EjbMetaData<T> registerEjbMetaData(Class<? extends T> clazz)
{
- // TODO replace with an application lookup
- if (!ejbMetaDataMap.containsKey(clazz))
- {
- EjbMetaData<T> ejbMetaData = new EjbMetaData<T>(clazz);
- ejbMetaDataMap.put(ejbMetaData.getEjbName(), ejbMetaData);
- return ejbMetaData;
- }
- else
- {
- return (EjbMetaData<T>) ejbMetaDataMap.get(clazz);
- }
-
+ EjbMetaData<T> ejbMetaData = new EjbMetaData<T>(clazz);
+ ejbMetaDataMap.put(ejbMetaData.getEjbName(), ejbMetaData);
+ return ejbMetaData;
}
}
15 years, 5 months
[webbeans-commits] Webbeans SVN: r287 - ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test.
by webbeans-commits@lists.jboss.org
Author: pete.muir(a)jboss.org
Date: 2008-11-09 03:00:48 -0500 (Sun, 09 Nov 2008)
New Revision: 287
Modified:
ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/InitializerMethodTest.java
Log:
Refactor to remove *Model and *Constructor and xmlAnnotatedItem, part 4
Modified: ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/InitializerMethodTest.java
===================================================================
--- ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/InitializerMethodTest.java 2008-11-09 07:56:23 UTC (rev 286)
+++ ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/InitializerMethodTest.java 2008-11-09 08:00:48 UTC (rev 287)
@@ -1,6 +1,6 @@
package org.jboss.webbeans.test;
-import static org.jboss.webbeans.test.util.Util.createSimpleWebBean;
+import static org.jboss.webbeans.test.util.Util.createSimpleBean;
import javax.webbeans.DefinitionException;
import javax.webbeans.NonexistentMethodException;
@@ -23,7 +23,7 @@
@Test(expectedExceptions=DefinitionException.class, groups="initializerMethod") @SpecAssertion(section="3.7")
public void testStaticInitializerMethodNotAllowed()
{
- createSimpleWebBean(Dottrel.class, manager);
+ createSimpleBean(Dottrel.class, manager);
}
@Test(groups={"initializerMethod", "servlet"}) @SpecAssertion(section="3.7")
@@ -65,10 +65,10 @@
@Test(groups={"initializerMethod"}) @SpecAssertion(section={"3.7", "5.3", "3.7.2", "3.7.3"})
public void testMultipleInitializerMethodsAreCalled()
{
- manager.addBean(createSimpleWebBean(Fox.class, manager));
- manager.addBean(createSimpleWebBean(Chicken.class, manager));
+ manager.addBean(createSimpleBean(Fox.class, manager));
+ manager.addBean(createSimpleBean(Chicken.class, manager));
- Bean<ChickenHutch> chickenHutchBean = createSimpleWebBean(ChickenHutch.class, manager);
+ Bean<ChickenHutch> chickenHutchBean = createSimpleBean(ChickenHutch.class, manager);
ChickenHutch chickenHutch = chickenHutchBean.create();
assert chickenHutch.fox != null;
assert chickenHutch.chicken != null;
@@ -77,25 +77,25 @@
@Test(groups="initializerMethod", expectedExceptions=DefinitionException.class) @SpecAssertion(section={"3.7.1", "3.4.2"})
public void testInitializerMethodAnnotatedProduces()
{
- createSimpleWebBean(Pheasant.class, manager);
+ createSimpleBean(Pheasant.class, manager);
}
@Test(groups="initializerMethod", expectedExceptions=DefinitionException.class) @SpecAssertion(section="3.7.1")
public void testInitializerMethodAnnotatedDestructor()
{
- createSimpleWebBean(Shrike.class, manager);
+ createSimpleBean(Shrike.class, manager);
}
@Test(groups="initializerMethod", expectedExceptions=DefinitionException.class) @SpecAssertion(section="3.7.1")
public void testInitializerMethodHasParameterAnnotatedDisposes()
{
- createSimpleWebBean(Capercaillie.class, manager);
+ createSimpleBean(Capercaillie.class, manager);
}
@Test(groups="initializerMethod", expectedExceptions=DefinitionException.class) @SpecAssertion(section="3.7.1")
public void testInitializerMethodHasParameterAnnotatedObserves()
{
- createSimpleWebBean(Grouse.class, manager);
+ createSimpleBean(Grouse.class, manager);
}
@Test(groups={"initializerMethod", "webbeansxml"}) @SpecAssertion(section="3.7.2")
15 years, 5 months
[webbeans-commits] Webbeans SVN: r286 - ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test.
by webbeans-commits@lists.jboss.org
Author: pete.muir(a)jboss.org
Date: 2008-11-09 02:56:23 -0500 (Sun, 09 Nov 2008)
New Revision: 286
Modified:
ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/BindingTypeTest.java
ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/ClientProxyTest.java
ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/CommonWebBeanTest.java
ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/DeferredEventNotificationTest.java
ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/DependentContextTest.java
ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/DeploymentTypeTest.java
ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/EventBeanModelTest.java
ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/InjectionTests.java
ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/InstantiationByNameTest.java
ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/InstantiationByTypeTest.java
ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/NameTest.java
ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/NormalContextTest.java
ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/ObserverTest.java
ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/ProducerMethodBeanLifecycleTest.java
ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/ProducerMethodBeanModelTest.java
ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/ResolutionByNameTest.java
ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/ResolutionByTypeTest.java
ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/ScopeTypeTest.java
ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/SimpleBeanLifecycleTest.java
ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/SimpleBeanModelTest.java
ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/StereotypesTest.java
ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/TypeTest.java
Log:
Refactor to remove *Model and *Constructor and xmlAnnotatedItem, part 3
Modified: ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/BindingTypeTest.java
===================================================================
--- ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/BindingTypeTest.java 2008-11-09 07:54:33 UTC (rev 285)
+++ ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/BindingTypeTest.java 2008-11-09 07:56:23 UTC (rev 286)
@@ -1,15 +1,13 @@
package org.jboss.webbeans.test;
import static org.jboss.webbeans.test.util.Util.createProducerMethodBean;
-import static org.jboss.webbeans.test.util.Util.createSimpleModel;
-import static org.jboss.webbeans.test.util.Util.createSimpleWebBean;
+import static org.jboss.webbeans.test.util.Util.createSimpleBean;
import java.lang.annotation.Annotation;
import java.lang.reflect.Method;
import java.util.HashMap;
import java.util.Map;
-import javax.webbeans.AnnotationLiteral;
import javax.webbeans.Current;
import org.jboss.webbeans.bean.ProducerMethodBean;
@@ -17,8 +15,6 @@
import org.jboss.webbeans.bindings.CurrentAnnotationLiteral;
import org.jboss.webbeans.introspector.AnnotatedClass;
import org.jboss.webbeans.introspector.impl.SimpleAnnotatedClass;
-import org.jboss.webbeans.model.bean.BeanModel;
-import org.jboss.webbeans.model.bean.SimpleBeanModel;
import org.jboss.webbeans.test.annotations.Asynchronous;
import org.jboss.webbeans.test.annotations.Synchronous;
import org.jboss.webbeans.test.beans.Antelope;
@@ -43,7 +39,7 @@
@Test @SpecAssertion(section={"2.3.3", "2.3.1"})
public void testDefaultBindingTypeDeclaredInJava()
{
- SimpleBeanModel<Order> order = createSimpleModel(Order.class, manager);
+ SimpleBean<Order> order = createSimpleBean(Order.class, manager);
assert order.getBindingTypes().size() == 1;
order.getBindingTypes().iterator().next().annotationType().equals(Current.class);
}
@@ -70,7 +66,7 @@
@Test @SpecAssertion(section="2.3.3")
public void testBindingTypesDeclaredInJava()
{
- SimpleBeanModel<Cat> cat = createSimpleModel(Cat.class, manager);
+ SimpleBean<Cat> cat = createSimpleBean(Cat.class, manager);
assert cat.getBindingTypes().size() == 1;
assert Reflections.annotationSetMatches(cat.getBindingTypes(), Synchronous.class);
}
@@ -78,7 +74,7 @@
@Test @SpecAssertion(section="2.3.3")
public void testMultipleBindingTypes()
{
- BeanModel<?, ?> model = createSimpleModel(Cod.class, manager);
+ SimpleBean<?> model = createSimpleBean(Cod.class, manager);
assert model.getBindingTypes().size() == 2;
}
@@ -90,39 +86,43 @@
annotations.put(Asynchronous.class, new AsynchronousAnnotationLiteral());
AnnotatedClass annotatedItem = new SimpleAnnotatedClass(Antelope.class, annotations);
- SimpleBeanModel<Antelope> antelope = new SimpleBeanModel<Antelope>(null, annotatedItem, manager);
- assert Reflections.annotationSetMatches(antelope.getBindingTypes(), Asynchronous.class);
+ //SimpleBean<Antelope> antelope = createSimpleBean(Antelope.class, annotatedItem, manager);
+ // assert Reflections.annotationSetMatches(antelope.getBindingTypes(), Asynchronous.class);
+ assert false;
}
- @Test @SpecAssertion(section="2.3.4")
+ @Test(groups="webbeansxml") @SpecAssertion(section="2.3.4")
public void testXmlBindingTypeOverridesAndIgnoresJava()
{
Map<Class<? extends Annotation>, Annotation> annotations = new HashMap<Class<? extends Annotation>, Annotation>();
annotations.put(Asynchronous.class, new AsynchronousAnnotationLiteral());
AnnotatedClass<Cat> annotatedItem = new SimpleAnnotatedClass<Cat>(Cat.class, annotations);
- SimpleBeanModel<Cat> cat = createSimpleModel(Cat.class, annotatedItem, manager);
- assert cat.getBindingTypes().size() == 1;
- assert cat.getBindingTypes().contains(new AnnotationLiteral<Asynchronous>() {});
+ //SimpleBean<Cat> cat = createSimpleBean(Cat.class, annotatedItem, manager);
+ //assert cat.getBindingTypes().size() == 1;
+ //assert cat.getBindingTypes().contains(new AnnotationLiteral<Asynchronous>() {});
+ assert false;
}
- @Test @SpecAssertion(section="2.3.4")
+ @Test(groups="webbeansxml") @SpecAssertion(section="2.3.4")
public void testNoBindingTypesDeclaredInXml()
{
Map<Class<? extends Annotation>, Annotation> annotations = new HashMap<Class<? extends Annotation>, Annotation>();
AnnotatedClass<Cat> annotatedItem = new SimpleAnnotatedClass<Cat>(Cat.class, annotations);
- SimpleBeanModel<Cat> cat = createSimpleModel(Cat.class, annotatedItem, manager);
- assert cat.getBindingTypes().size() == 1;
- assert cat.getBindingTypes().contains(new AnnotationLiteral<Synchronous>() {});
+ //SimpleBean<Cat> cat = createSimpleBean(Cat.class, annotatedItem, manager);
+ //assert cat.getBindingTypes().size() == 1;
+ //assert cat.getBindingTypes().contains(new AnnotationLiteral<Synchronous>() {});
+ assert false;
}
- @Test @SpecAssertion(section={"2.3.4", "2.3.1"})
+ @Test(groups="webbeansxml") @SpecAssertion(section={"2.3.4", "2.3.1"})
public void testDefaultBindingTypeDeclaredInXml()
{
- BeanModel<?, ?> model = createSimpleModel(Tuna.class, manager);
+ SimpleBean<?> model = createSimpleBean(Tuna.class, manager);
assert model.getBindingTypes().size() == 1;
assert model.getBindingTypes().contains(new CurrentAnnotationLiteral());
+ assert false;
}
@@ -130,11 +130,11 @@
@Test(groups={"injection", "producerMethod"}) @SpecAssertion(section="2.3.5")
public void testFieldInjectedFromProducerMethod() throws Exception
{
- SimpleBean<SpiderProducer> spiderProducer = createSimpleWebBean(SpiderProducer.class, manager);
+ SimpleBean<SpiderProducer> spiderProducer = createSimpleBean(SpiderProducer.class, manager);
manager.addBean(spiderProducer);
Method method = SpiderProducer.class.getMethod("produceTameTarantula");
manager.addBean(createProducerMethodBean(Tarantula.class, method, manager, spiderProducer));
- Barn barn = createSimpleWebBean(Barn.class, manager).create();
+ Barn barn = createSimpleBean(Barn.class, manager).create();
assert barn.petSpider != null;
assert barn.petSpider instanceof DefangedTarantula;
}
@@ -154,7 +154,7 @@
@Test(groups={"injection", "producerMethod"})
public void testMethodWithBindingAnnotationsOnParametersAreInjected() throws Exception
{
- SimpleBean<SpiderProducer> spiderProducer = createSimpleWebBean(SpiderProducer.class, manager);
+ SimpleBean<SpiderProducer> spiderProducer = createSimpleBean(SpiderProducer.class, manager);
manager.addBean(spiderProducer);
Method method = SpiderProducer.class.getMethod("produceTameTarantula");
manager.addBean(createProducerMethodBean(Tarantula.class, method, manager, spiderProducer));
Modified: ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/ClientProxyTest.java
===================================================================
--- ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/ClientProxyTest.java 2008-11-09 07:54:33 UTC (rev 285)
+++ ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/ClientProxyTest.java 2008-11-09 07:56:23 UTC (rev 286)
@@ -25,7 +25,7 @@
@SpecAssertion(section = { "4.4", "4.8" })
public void testClientProxyUsedForNormalScope()
{
- Bean<Tuna> tunaBean = Util.createSimpleWebBean(Tuna.class, manager);
+ Bean<Tuna> tunaBean = Util.createSimpleBean(Tuna.class, manager);
Tuna tuna = manager.getInstance(tunaBean);
assert ClientProxy.isProxy(tuna);
}
@@ -34,7 +34,7 @@
@SpecAssertion(section = { "4.4", "4.8" })
public void testClientProxyNotUsedForPseudoScope()
{
- Bean<Fox> foxBean = Util.createSimpleWebBean(Fox.class, manager);
+ Bean<Fox> foxBean = Util.createSimpleBean(Fox.class, manager);
Fox fox = manager.getInstance(foxBean);
assert !ClientProxy.isProxy(fox);
}
@@ -55,7 +55,7 @@
@SpecAssertion(section = "4.4")
public void testSimpleWebBeanClientProxyIsSerializable() throws IOException, ClassNotFoundException
{
- Bean<TunedTuna> tunaBean = Util.createSimpleWebBean(TunedTuna.class, manager);
+ Bean<TunedTuna> tunaBean = Util.createSimpleBean(TunedTuna.class, manager);
TunedTuna tuna = manager.getInstance(tunaBean);
assert ClientProxy.isProxy(tuna);
byte[] bytes = serializeBean(tuna);
@@ -68,7 +68,7 @@
@SpecAssertion(section = "4.4.1")
public void testInjectionPointWithUnproxyableTypeWhichResolvesToNormalScopedWebBean()
{
- Bean<FinalTuna> tunaBean = Util.createSimpleWebBean(FinalTuna.class, manager);
+ Bean<FinalTuna> tunaBean = Util.createSimpleBean(FinalTuna.class, manager);
manager.addBean(tunaBean);
FinalTuna tuna = manager.getInstanceByType(FinalTuna.class);
assert false;
@@ -78,7 +78,7 @@
@SpecAssertion(section = "4.4.2")
public void testClientProxyInvocation()
{
- Bean<TunedTuna> tunaBean = Util.createSimpleWebBean(TunedTuna.class, manager);
+ Bean<TunedTuna> tunaBean = Util.createSimpleBean(TunedTuna.class, manager);
manager.addBean(tunaBean);
TunedTuna tuna = manager.getInstance(tunaBean);
assert ClientProxy.isProxy(tuna);
@@ -87,7 +87,7 @@
@Test(groups = "clientProxy")
public void testProxyCreationDoesImplicitAddBean() {
- Bean<Tuna> tunaBean = Util.createSimpleWebBean(Tuna.class, manager);
+ Bean<Tuna> tunaBean = Util.createSimpleBean(Tuna.class, manager);
Tuna tuna = manager.getInstance(tunaBean);
assert manager.getBeans().size() == 2;
}
Modified: ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/CommonWebBeanTest.java
===================================================================
--- ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/CommonWebBeanTest.java 2008-11-09 07:54:33 UTC (rev 285)
+++ ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/CommonWebBeanTest.java 2008-11-09 07:56:23 UTC (rev 286)
@@ -1,8 +1,7 @@
package org.jboss.webbeans.test;
import static org.jboss.webbeans.test.util.Util.createProducerMethodBean;
-import static org.jboss.webbeans.test.util.Util.createSimpleModel;
-import static org.jboss.webbeans.test.util.Util.createSimpleWebBean;
+import static org.jboss.webbeans.test.util.Util.createSimpleBean;
import java.lang.reflect.Method;
@@ -11,7 +10,6 @@
import javax.webbeans.manager.Bean;
import org.jboss.webbeans.bean.SimpleBean;
-import org.jboss.webbeans.model.bean.BeanModel;
import org.jboss.webbeans.test.beans.RedSnapper;
import org.jboss.webbeans.test.beans.Spider;
import org.jboss.webbeans.test.beans.SpiderProducer;
@@ -31,41 +29,41 @@
@Test @SpecAssertion(section="2")
public void testApiTypesNonEmpty()
{
- BeanModel<?, ?> model = createSimpleModel(RedSnapper.class, manager);
- assert model.getApiTypes().size() > 0;
+ Bean<?> model = createSimpleBean(RedSnapper.class, manager);
+ assert model.getTypes().size() > 0;
}
@Test @SpecAssertion(section="2")
public void testBindingTypesNonEmpty()
{
- BeanModel<?, ?> model = createSimpleModel(RedSnapper.class, manager);
+ Bean<?> model = createSimpleBean(RedSnapper.class, manager);
assert model.getBindingTypes().size() > 0;
}
@Test @SpecAssertion(section="2")
public void testHasScopeType()
{
- BeanModel<?, ?> model = createSimpleModel(RedSnapper.class, manager);
+ Bean<?> model = createSimpleBean(RedSnapper.class, manager);
assert model.getScopeType().equals(RequestScoped.class);
}
@Test @SpecAssertion(section="2")
public void testHasDeploymentType()
{
- BeanModel<?, ?> model = createSimpleModel(RedSnapper.class, manager);
+ Bean<?> model = createSimpleBean(RedSnapper.class, manager);
assert model.getDeploymentType().equals(Production.class);
}
@Test(groups="producerMethod") @SpecAssertion(section="4.2")
public void testIsNullable() throws Exception
{
- SimpleBean<SpiderProducer> spiderProducerBean = createSimpleWebBean(SpiderProducer.class, manager);
+ SimpleBean<SpiderProducer> spiderProducerBean = createSimpleBean(SpiderProducer.class, manager);
manager.addBean(spiderProducerBean);
Method method = SpiderProducer.class.getMethod("getWolfSpiderSize");
- Bean<Integer> bean = createProducerMethodBean(int.class, method, manager);
+ Bean<Integer> bean = createProducerMethodBean(int.class, method, manager, spiderProducerBean);
assert !bean.isNullable();
method = SpiderProducer.class.getMethod("makeASpider");
- Bean<Spider> spiderBean = createProducerMethodBean(Spider.class, method, manager);
+ Bean<Spider> spiderBean = createProducerMethodBean(Spider.class, method, manager, spiderProducerBean);
assert spiderBean.isNullable();
}
Modified: ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/DeferredEventNotificationTest.java
===================================================================
--- ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/DeferredEventNotificationTest.java 2008-11-09 07:54:33 UTC (rev 285)
+++ ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/DeferredEventNotificationTest.java 2008-11-09 07:56:23 UTC (rev 286)
@@ -1,25 +1,24 @@
package org.jboss.webbeans.test;
+import static org.jboss.webbeans.test.util.Util.createSimpleBean;
+
import java.lang.annotation.Annotation;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
-import javax.webbeans.Observer;
import javax.webbeans.Observes;
import javax.webbeans.Standard;
-import org.jboss.webbeans.event.DeferredEventNotification;
-import org.jboss.webbeans.injectable.InjectableMethod;
+import org.jboss.webbeans.bean.SimpleBean;
import org.jboss.webbeans.introspector.AnnotatedClass;
+import org.jboss.webbeans.introspector.impl.InjectableMethod;
import org.jboss.webbeans.introspector.impl.SimpleAnnotatedClass;
-import org.jboss.webbeans.model.bean.SimpleBeanModel;
import org.jboss.webbeans.test.annotations.AnotherDeploymentType;
import org.jboss.webbeans.test.annotations.Asynchronous;
import org.jboss.webbeans.test.beans.Tuna;
import org.jboss.webbeans.test.bindings.AsynchronousAnnotationLiteral;
-import org.jboss.webbeans.test.mock.MockObserverImpl;
import org.testng.annotations.Test;
/**
@@ -68,7 +67,7 @@
// When the transaction is committed, the beforeCompletion() method is
// invoked which in turn invokes the observer. Here the mock observer
// is used to keep track of the event being fired.
- SimpleBeanModel<Tuna> tuna;
+ SimpleBean<Tuna> tuna;
InjectableMethod<Object> om;
@@ -76,15 +75,15 @@
Map<Class<? extends Annotation>, Annotation> annotations = new HashMap<Class<? extends Annotation>, Annotation>();
annotations.put(Asynchronous.class, new AsynchronousAnnotationLiteral());
AnnotatedClass<Tuna> annotatedItem = new SimpleAnnotatedClass<Tuna>(Tuna.class, annotations);
- tuna = new SimpleBeanModel<Tuna>(new SimpleAnnotatedClass<Tuna>(Tuna.class), annotatedItem, manager);
+ tuna = createSimpleBean(Tuna.class, manager);
om = new InjectableMethod<Object>(AnObserver.class.getMethod("observe", new Class[] { Event.class }));
AnObserver observerInstance = new AnObserver();
- Observer<Event> observer = new MockObserverImpl<Event>(tuna, om, Event.class);
- ((MockObserverImpl<Event>) observer).setInstance(observerInstance);
+ // TODO Fix this Observer<Event> observer = new MockObserverImpl<Event>(tuna, om, Event.class);
+ //((MockObserverImpl<Event>) observer).setInstance(observerInstance);
Event event = new Event();
- DeferredEventNotification<Event> deferredNotification = new DeferredEventNotification<Event>(event, observer);
- deferredNotification.beforeCompletion();
+ //DeferredEventNotification<Event> deferredNotification = new DeferredEventNotification<Event>(event, observer);
+ //deferredNotification.beforeCompletion();
assert observerInstance.notified;
}
Modified: ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/DependentContextTest.java
===================================================================
--- ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/DependentContextTest.java 2008-11-09 07:54:33 UTC (rev 285)
+++ ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/DependentContextTest.java 2008-11-09 07:56:23 UTC (rev 286)
@@ -1,7 +1,7 @@
package org.jboss.webbeans.test;
import static org.jboss.webbeans.test.util.Util.createProducerMethodBean;
-import static org.jboss.webbeans.test.util.Util.createSimpleWebBean;
+import static org.jboss.webbeans.test.util.Util.createSimpleBean;
import java.lang.reflect.Method;
@@ -25,8 +25,8 @@
@Test(groups={"contexts", "injection"}) @SpecAssertion(section="8.3")
public void testInstanceNotSharedBetweenInjectionPoints()
{
- Bean<FoxRun> foxRunBean = createSimpleWebBean(FoxRun.class, manager);
- Bean<Fox> foxBean = createSimpleWebBean(Fox.class, manager);
+ Bean<FoxRun> foxRunBean = createSimpleBean(FoxRun.class, manager);
+ Bean<Fox> foxBean = createSimpleBean(Fox.class, manager);
manager.addBean(foxBean);
FoxRun foxRun = foxRunBean.create();
assert !foxRun.fox.equals(foxRun.anotherFox);
@@ -41,7 +41,7 @@
@Test(groups={"contexts", "producerMethod"}) @SpecAssertion(section="8.3")
public void testInstanceUsedForProducerMethodNotShared() throws Exception
{
- SimpleBean<SpiderProducer> spiderProducer = createSimpleWebBean(SpiderProducer.class, manager);
+ SimpleBean<SpiderProducer> spiderProducer = createSimpleBean(SpiderProducer.class, manager);
manager.addBean(spiderProducer);
Method method = SpiderProducer.class.getMethod("produceTarantula");
ProducerMethodBean<Tarantula> tarantulaBean = createProducerMethodBean(Tarantula.class, method, manager, spiderProducer);
@@ -61,7 +61,7 @@
@Test(groups="contexts") @SpecAssertion(section="8.3")
public void testContextGetWithCreateTrueReturnsNewInstance()
{
- Bean<Fox> foxBean = createSimpleWebBean(Fox.class, manager);
+ Bean<Fox> foxBean = createSimpleBean(Fox.class, manager);
manager.addBean(foxBean);
DependentContext context = new DependentContext();
context.setActive(true);
@@ -72,7 +72,7 @@
@Test(groups="contexts") @SpecAssertion(section="8.3")
public void testContextGetWithCreateFalseReturnsNull()
{
- Bean<Fox> foxBean = createSimpleWebBean(Fox.class, manager);
+ Bean<Fox> foxBean = createSimpleBean(Fox.class, manager);
manager.addBean(foxBean);
DependentContext context = new DependentContext();
context.setActive(true);
@@ -102,8 +102,8 @@
public void testContextIsActiveDuringBeanCreation()
{
// Slightly roundabout, but I can't see a better way to test atm
- Bean<FoxRun> foxRunBean = createSimpleWebBean(FoxRun.class, manager);
- Bean<Fox> foxBean = createSimpleWebBean(Fox.class, manager);
+ Bean<FoxRun> foxRunBean = createSimpleBean(FoxRun.class, manager);
+ Bean<Fox> foxBean = createSimpleBean(Fox.class, manager);
manager.addBean(foxBean);
FoxRun foxRun = foxRunBean.create();
assert foxRun.fox != null;
@@ -118,8 +118,8 @@
@Test(groups={"contexts", "injection"}) @SpecAssertion(section="8.3")
public void testContextIsActiveDuringInjection()
{
- Bean<FoxRun> foxRunBean = createSimpleWebBean(FoxRun.class, manager);
- Bean<Fox> foxBean = createSimpleWebBean(Fox.class, manager);
+ Bean<FoxRun> foxRunBean = createSimpleBean(FoxRun.class, manager);
+ Bean<Fox> foxBean = createSimpleBean(Fox.class, manager);
manager.addBean(foxBean);
FoxRun foxRun = foxRunBean.create();
assert foxRun.fox != null;
Modified: ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/DeploymentTypeTest.java
===================================================================
--- ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/DeploymentTypeTest.java 2008-11-09 07:54:33 UTC (rev 285)
+++ ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/DeploymentTypeTest.java 2008-11-09 07:56:23 UTC (rev 286)
@@ -1,7 +1,6 @@
package org.jboss.webbeans.test;
-import static org.jboss.webbeans.test.util.Util.createSimpleModel;
-import static org.jboss.webbeans.test.util.Util.createSimpleWebBean;
+import static org.jboss.webbeans.test.util.Util.createSimpleBean;
import java.lang.annotation.Annotation;
import java.util.ArrayList;
@@ -12,14 +11,12 @@
import javax.webbeans.DefinitionException;
import javax.webbeans.DeploymentException;
import javax.webbeans.Production;
-import javax.webbeans.RequestScoped;
import javax.webbeans.Standard;
import javax.webbeans.UnsatisfiedDependencyException;
import javax.webbeans.manager.Bean;
import org.jboss.webbeans.introspector.AnnotatedClass;
import org.jboss.webbeans.introspector.impl.SimpleAnnotatedClass;
-import org.jboss.webbeans.model.bean.SimpleBeanModel;
import org.jboss.webbeans.test.annotations.AnotherDeploymentType;
import org.jboss.webbeans.test.annotations.FishStereotype;
import org.jboss.webbeans.test.annotations.HornedAnimalDeploymentType;
@@ -42,7 +39,7 @@
@Test(expectedExceptions=DefinitionException.class) @SpecAssertion(section="2.5.1")
public void testNonBuiltInComponentUsesStandard()
{
- createSimpleWebBean(Gazelle.class, manager);
+ createSimpleBean(Gazelle.class, manager);
}
@Test(groups="annotationDefinition") @SpecAssertion(section="2.5.2")
@@ -66,53 +63,57 @@
@Test(expectedExceptions=DefinitionException.class) @SpecAssertion(section="2.5.3")
public void testTooManyDeploymentTypes()
{
- createSimpleModel(BeanWithTooManyDeploymentTypes.class, manager);
+ createSimpleBean(BeanWithTooManyDeploymentTypes.class, manager);
}
- @Test @SpecAssertion(section="2.5.4")
+ @Test(groups="webbeansxml") @SpecAssertion(section="2.5.4")
public void testXmlDeploymentTypeOverridesJava()
{
Map<Class<? extends Annotation>, Annotation> xmlDefinedDeploymentTypeAnnotations = new HashMap<Class<? extends Annotation>, Annotation>();
xmlDefinedDeploymentTypeAnnotations.put(AnotherDeploymentType.class, new AnotherDeploymentTypeAnnotationLiteral());
AnnotatedClass<BeanWithTooManyDeploymentTypes> xmlDefinedDeploymentTypeAnnotatedItem = new SimpleAnnotatedClass<BeanWithTooManyDeploymentTypes>(BeanWithTooManyDeploymentTypes.class, xmlDefinedDeploymentTypeAnnotations);
- SimpleBeanModel<BeanWithTooManyDeploymentTypes> model = new SimpleBeanModel<BeanWithTooManyDeploymentTypes>(new SimpleAnnotatedClass<BeanWithTooManyDeploymentTypes>(BeanWithTooManyDeploymentTypes.class), xmlDefinedDeploymentTypeAnnotatedItem, manager);
- assert model.getDeploymentType().equals(AnotherDeploymentType.class);
+ //SimpleBean<BeanWithTooManyDeploymentTypes> model = createSimpleBean(BeanWithTooManyDeploymentTypes.class, xmlDefinedDeploymentTypeAnnotatedItem, manager);
+ //assert model.getDeploymentType().equals(AnotherDeploymentType.class);
+ assert false;
}
- @Test @SpecAssertion(section="2.5.4")
+ @Test(groups="webbeansxml") @SpecAssertion(section="2.5.4")
public void testXmlRespectsJavaDeploymentType()
{
AnnotatedClass<Tuna> annotatedItem = new SimpleAnnotatedClass<Tuna>(Tuna.class, new HashMap<Class<? extends Annotation>, Annotation>());
- SimpleBeanModel<Tuna> tuna = new SimpleBeanModel<Tuna>(new SimpleAnnotatedClass<Tuna>(Tuna.class), annotatedItem, manager);
- assert tuna.getDeploymentType().equals(AnotherDeploymentType.class);
+ //SimpleBean<Tuna> tuna = createSimpleBean(Tuna.class, annotatedItem, manager);
+ //assert tuna.getDeploymentType().equals(AnotherDeploymentType.class);
+ assert false;
}
@Test(groups="webbeansxml") @SpecAssertion(section="2.5.5")
public void testXmlDefaultDeploymentType()
{
AnnotatedClass<Antelope> antelopeAnnotatedItem = new SimpleAnnotatedClass<Antelope>(Antelope.class, new HashMap<Class<? extends Annotation>, Annotation>());
- SimpleBeanModel<Antelope> antelope = new SimpleBeanModel<Antelope>(null, antelopeAnnotatedItem, manager);
- assert antelope.getDeploymentType().equals(Production.class);
+ //SimpleBean<Antelope> antelope = createSimpleBean(Antelope.class, antelopeAnnotatedItem, manager);
+ // assert antelope.getDeploymentType().equals(Production.class);
+ assert false;
}
@Test @SpecAssertion(section="2.5.5")
public void testHighestPrecedenceDeploymentTypeFromStereotype()
{
- Bean<?> bean = createSimpleWebBean(Rhinoceros.class, manager);
+ Bean<?> bean = createSimpleBean(Rhinoceros.class, manager);
assert bean.getDeploymentType().equals(HornedAnimalDeploymentType.class);
}
- @Test @SpecAssertion(section="2.5.5")
+ @Test(groups="webbeansxml") @SpecAssertion(section="2.5.5")
public void testDeploymentTypeSpecifiedAndStereotyped()
{
Map<Class<? extends Annotation>, Annotation> annotations = new HashMap<Class<? extends Annotation>, Annotation>();
annotations.put(FishStereotype.class, new FishStereotypeAnnotationLiteral());
AnnotatedClass<SeaBass> annotatedItem = new SimpleAnnotatedClass<SeaBass>(SeaBass.class, annotations);
- SimpleBeanModel<SeaBass> trout = new SimpleBeanModel<SeaBass>(new SimpleAnnotatedClass<SeaBass>(SeaBass.class), annotatedItem, manager);
- assert trout.getScopeType().equals(RequestScoped.class);
+ //SimpleBean<SeaBass> trout = createSimpleBean(SeaBass.class, annotatedItem, manager);
+ //assert trout.getScopeType().equals(RequestScoped.class);
+ assert false;
}
@Test(groups="beanLifecycle", expectedExceptions=UnsatisfiedDependencyException.class) @SpecAssertion(section="2.5.6")
@@ -124,7 +125,7 @@
enabledDeploymentTypes.add(HornedAnimalDeploymentType.class);
manager.setEnabledDeploymentTypes(enabledDeploymentTypes);
- Bean<RedSnapper> bean = createSimpleWebBean(RedSnapper.class, manager);
+ Bean<RedSnapper> bean = createSimpleBean(RedSnapper.class, manager);
manager.addBean(bean);
manager.getInstanceByType(RedSnapper.class);
}
@@ -170,7 +171,7 @@
@Test @SpecAssertion(section="2.7.2")
public void testWebBeanDeploymentTypeOverridesStereotype()
{
- Bean<Reindeer> bean = createSimpleWebBean(Reindeer.class, manager);
+ Bean<Reindeer> bean = createSimpleBean(Reindeer.class, manager);
assert bean.getDeploymentType().equals(Production.class);
}
}
Modified: ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/EventBeanModelTest.java
===================================================================
--- ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/EventBeanModelTest.java 2008-11-09 07:54:33 UTC (rev 285)
+++ ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/EventBeanModelTest.java 2008-11-09 07:56:23 UTC (rev 286)
@@ -4,16 +4,10 @@
import java.lang.reflect.Field;
import java.util.ArrayList;
import java.util.List;
-import java.util.Set;
-import javax.webbeans.Dependent;
-import javax.webbeans.Event;
import javax.webbeans.Standard;
import org.jboss.webbeans.event.EventImpl;
-import org.jboss.webbeans.injectable.BeanConstructor;
-import org.jboss.webbeans.introspector.impl.SimpleAnnotatedField;
-import org.jboss.webbeans.model.bean.EventBeanModel;
import org.jboss.webbeans.test.annotations.AnotherDeploymentType;
import org.jboss.webbeans.test.beans.DangerCall;
import org.jboss.webbeans.test.mock.MockManagerImpl;
@@ -30,7 +24,7 @@
public class EventBeanModelTest
{
private MockManagerImpl manager = null;
- private EventBeanModel<EventImpl<DangerCall>> eventBeanModel = null;
+ //private EventBeanModel<EventImpl<DangerCall>> eventBeanModel = null;
EventImpl<DangerCall> eventModelField = null;
@BeforeMethod
@@ -42,10 +36,10 @@
manager = new MockManagerImpl();
manager.setEnabledDeploymentTypes(enabledDeploymentTypes);
Field eventModelField = this.getClass().getDeclaredField("eventModelField");
- eventBeanModel = new EventBeanModel<EventImpl<DangerCall>>(
+ /*eventBeanModel = new EventBeanModel<EventImpl<DangerCall>>(
new SimpleAnnotatedField<EventImpl<DangerCall>>(eventModelField),
new SimpleAnnotatedField<EventImpl<DangerCall>>(eventModelField),
- manager);
+ manager);*/
}
@@ -55,7 +49,7 @@
@Test(groups = "event")
public void testName()
{
- assert eventBeanModel.getName() == null;
+ //assert eventBeanModel.getName() == null;
}
/**
@@ -64,7 +58,7 @@
@Test(groups = "event")
public void testScopeType()
{
- assert eventBeanModel.getScopeType().equals(Dependent.class);
+ //assert eventBeanModel.getScopeType().equals(Dependent.class);
}
/**
@@ -73,26 +67,26 @@
@Test(groups = "event")
public void testDeploymentType()
{
- assert eventBeanModel.getDeploymentType().equals(Standard.class);
+ //assert eventBeanModel.getDeploymentType().equals(Standard.class);
}
@Test(groups = "event")
public void testApiTypes()
{
- Set<Class<?>> apis = eventBeanModel.getApiTypes();
- assert apis.size() >= 1;
- for (Class<?> api : apis)
- {
- api.equals(Event.class);
- }
+ //Set<Class<?>> apis = eventBeanModel.getApiTypes();
+ //assert apis.size() >= 1;
+ //for (Class<?> api : apis)
+ //{
+ // api.equals(Event.class);
+ //}
}
// TODO Fix this @Test(groups = "event")
public void testConstructor()
{
- BeanConstructor<EventImpl<DangerCall>, ?> constructor = eventBeanModel.getConstructor();
+ /*BeanConstructor<EventImpl<DangerCall>, ?> constructor = eventBeanModel.getConstructor();
assert constructor != null;
Event<DangerCall> event = constructor.invoke(manager, null);
- assert event != null;
+ assert event != null;*/
}
}
Modified: ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/InjectionTests.java
===================================================================
--- ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/InjectionTests.java 2008-11-09 07:54:33 UTC (rev 285)
+++ ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/InjectionTests.java 2008-11-09 07:56:23 UTC (rev 286)
@@ -2,7 +2,7 @@
import static org.jboss.webbeans.test.util.Util.createProducerMethodBean;
-import static org.jboss.webbeans.test.util.Util.createSimpleWebBean;
+import static org.jboss.webbeans.test.util.Util.createSimpleBean;
import javax.webbeans.ContextNotActiveException;
import javax.webbeans.DefinitionException;
@@ -32,9 +32,9 @@
@Test(groups={"injection", "producerMethod"}) @SpecAssertion(section="4.2")
public void testInjectionPerformsBoxingIfNecessary() throws Exception
{
- SimpleBean<SpiderProducer> spiderProducer = createSimpleWebBean(SpiderProducer.class, manager);
+ SimpleBean<SpiderProducer> spiderProducer = createSimpleBean(SpiderProducer.class, manager);
manager.addBean(spiderProducer);
- Bean<SpiderNest> spiderNestBean = createSimpleWebBean(SpiderNest.class, manager);
+ Bean<SpiderNest> spiderNestBean = createSimpleBean(SpiderNest.class, manager);
manager.addBean(createProducerMethodBean(Integer.class, SpiderProducer.class.getMethod("getWolfSpiderSize"), manager, spiderProducer));
SpiderNest spiderNest = spiderNestBean.create();
assert spiderNest.numberOfSpiders != null;
@@ -44,16 +44,17 @@
@Test(groups={"injection", "producerMethod"}, expectedExceptions=NullableDependencyException.class) @SpecAssertion(section="4.2")
public void testPrimitiveInjectionPointResolvesToNullableWebBean() throws Exception
{
- Bean<FarmHouse> farmHouseBean = createSimpleWebBean(FarmHouse.class, manager);
- manager.addBean(createProducerMethodBean(Integer.class, FarmHouseProducer.class.getMethod("getNumberOfBedrooms"), manager));
+ Bean<FarmHouse> farmHouseBean = createSimpleBean(FarmHouse.class, manager);
+ SimpleBean<FarmHouseProducer> farmHouseProducerBean = createSimpleBean(FarmHouseProducer.class, manager);
+ manager.addBean(createProducerMethodBean(Integer.class, FarmHouseProducer.class.getMethod("getNumberOfBedrooms"), manager, farmHouseProducerBean));
farmHouseBean.create();
}
@Test(groups={"injection", "clientProxy"}, expectedExceptions=ContextNotActiveException.class) @SpecAssertion(section="4.3")
public void testInvokeNormalInjectedWebBeanWhenContextNotActive()
{
- SimpleBean<TunaFarm> tunaFarmBean = createSimpleWebBean(TunaFarm.class, manager);
- Bean<Tuna> tunaBean = createSimpleWebBean(Tuna.class, manager);
+ SimpleBean<TunaFarm> tunaFarmBean = createSimpleBean(TunaFarm.class, manager);
+ Bean<Tuna> tunaBean = createSimpleBean(Tuna.class, manager);
manager.addBean(tunaBean);
TunaFarm tunaFarm = tunaFarmBean.create();
assert tunaFarm.tuna != null;
@@ -65,8 +66,8 @@
@Test(groups="injection") @SpecAssertion(section="4.3")
public void testInvokeDependentScopeWhenContextNotActive()
{
- Bean<FoxRun> foxRunBean = createSimpleWebBean(FoxRun.class, manager);
- Bean<Fox> foxBean = createSimpleWebBean(Fox.class, manager);
+ Bean<FoxRun> foxRunBean = createSimpleBean(FoxRun.class, manager);
+ Bean<Fox> foxBean = createSimpleBean(Fox.class, manager);
manager.addBean(foxBean);
FoxRun foxRun = foxRunBean.create();
assert foxRun.fox.getName().equals("gavin");
@@ -75,8 +76,8 @@
@Test(groups="injection", expectedExceptions=DefinitionException.class) @SpecAssertion(section="3.6")
public void testInjectingStaticField()
{
- SimpleBean<BeanWithStaticBoundField> bean = createSimpleWebBean(BeanWithStaticBoundField.class, manager);
- Bean<Tuna> tunaBean = createSimpleWebBean(Tuna.class, manager);
+ SimpleBean<BeanWithStaticBoundField> bean = createSimpleBean(BeanWithStaticBoundField.class, manager);
+ Bean<Tuna> tunaBean = createSimpleBean(Tuna.class, manager);
manager.addBean(tunaBean);
BeanWithStaticBoundField instance = bean.create();
}
@@ -84,8 +85,8 @@
@Test(groups="injection",expectedExceptions=DefinitionException.class) @SpecAssertion(section="3.6")
public void testInjectingFinalField()
{
- SimpleBean<BeanWithFinalBoundField> bean = createSimpleWebBean(BeanWithFinalBoundField.class, manager);
- Bean<Tuna> tunaBean = createSimpleWebBean(Tuna.class, manager);
+ SimpleBean<BeanWithFinalBoundField> bean = createSimpleBean(BeanWithFinalBoundField.class, manager);
+ Bean<Tuna> tunaBean = createSimpleBean(Tuna.class, manager);
manager.addBean(tunaBean);
BeanWithFinalBoundField instance = bean.create();
}
Modified: ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/InstantiationByNameTest.java
===================================================================
--- ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/InstantiationByNameTest.java 2008-11-09 07:54:33 UTC (rev 285)
+++ ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/InstantiationByNameTest.java 2008-11-09 07:56:23 UTC (rev 286)
@@ -1,12 +1,12 @@
package org.jboss.webbeans.test;
-import static org.jboss.webbeans.test.util.Util.createSimpleWebBean;
+import static org.jboss.webbeans.test.util.Util.createSimpleBean;
import javax.webbeans.AmbiguousDependencyException;
import javax.webbeans.manager.Bean;
import org.jboss.webbeans.ResolutionManager;
-import org.jboss.webbeans.injectable.InjectableField;
+import org.jboss.webbeans.introspector.impl.InjectableField;
import org.jboss.webbeans.test.beans.Cod;
import org.jboss.webbeans.test.beans.FishFarm;
import org.jboss.webbeans.test.beans.Haddock;
@@ -25,8 +25,8 @@
public void testNoWebBeansFound() throws Exception
{
InjectableField<ScottishFish> whiteScottishFishField = new InjectableField<ScottishFish>(FishFarm.class.getDeclaredField("whiteScottishFish"));
- Bean<Cod> codBean = createSimpleWebBean(Cod.class, manager);
- Bean<Salmon> salmonBean = createSimpleWebBean(Salmon.class, manager);
+ Bean<Cod> codBean = createSimpleBean(Cod.class, manager);
+ Bean<Salmon> salmonBean = createSimpleBean(Salmon.class, manager);
manager.addBean(codBean);
manager.addBean(salmonBean);
@@ -40,9 +40,9 @@
public void testAmbiguousDependencies() throws Exception
{
InjectableField<ScottishFish> whiteScottishFishField = new InjectableField<ScottishFish>(FishFarm.class.getDeclaredField("whiteScottishFish"));
- Bean<Cod> codBean = createSimpleWebBean(Cod.class, manager);
- Bean<Salmon> salmonBean = createSimpleWebBean(Salmon.class, manager);
- Bean<Sole> soleBean = createSimpleWebBean(Sole.class, manager);
+ Bean<Cod> codBean = createSimpleBean(Cod.class, manager);
+ Bean<Salmon> salmonBean = createSimpleBean(Salmon.class, manager);
+ Bean<Sole> soleBean = createSimpleBean(Sole.class, manager);
manager.addBean(codBean);
manager.addBean(salmonBean);
manager.addBean(soleBean);
@@ -56,13 +56,13 @@
@Test(groups={"resolution", "beanLifecycle"}) @SpecAssertion(section="4.10.1")
public void testGetInstanceByName()
{
- Bean<Tuna> tunaBean = createSimpleWebBean(Tuna.class, manager);
- Bean<Cod> codBean = createSimpleWebBean(Cod.class, manager);
- Bean<Salmon> salmonBean = createSimpleWebBean(Salmon.class, manager);
- Bean<Sole> soleBean = createSimpleWebBean(Sole.class, manager);
- Bean<SeaBass> seaBassBean = createSimpleWebBean(SeaBass.class, manager);
- Bean<Haddock> haddockBean = createSimpleWebBean(Haddock.class, manager);
- Bean<Plaice> plaiceBean = createSimpleWebBean(Plaice.class, manager);
+ Bean<Tuna> tunaBean = createSimpleBean(Tuna.class, manager);
+ Bean<Cod> codBean = createSimpleBean(Cod.class, manager);
+ Bean<Salmon> salmonBean = createSimpleBean(Salmon.class, manager);
+ Bean<Sole> soleBean = createSimpleBean(Sole.class, manager);
+ Bean<SeaBass> seaBassBean = createSimpleBean(SeaBass.class, manager);
+ Bean<Haddock> haddockBean = createSimpleBean(Haddock.class, manager);
+ Bean<Plaice> plaiceBean = createSimpleBean(Plaice.class, manager);
manager.addBean(tunaBean);
manager.addBean(codBean);
Modified: ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/InstantiationByTypeTest.java
===================================================================
--- ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/InstantiationByTypeTest.java 2008-11-09 07:54:33 UTC (rev 285)
+++ ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/InstantiationByTypeTest.java 2008-11-09 07:56:23 UTC (rev 286)
@@ -1,6 +1,6 @@
package org.jboss.webbeans.test;
-import static org.jboss.webbeans.test.util.Util.createSimpleWebBean;
+import static org.jboss.webbeans.test.util.Util.createSimpleBean;
import javax.webbeans.AmbiguousDependencyException;
import javax.webbeans.AnnotationLiteral;
@@ -11,7 +11,7 @@
import org.jboss.webbeans.ResolutionManager;
import org.jboss.webbeans.bindings.CurrentAnnotationLiteral;
-import org.jboss.webbeans.injectable.InjectableField;
+import org.jboss.webbeans.introspector.impl.InjectableField;
import org.jboss.webbeans.test.annotations.Whitefish;
import org.jboss.webbeans.test.beans.Cod;
import org.jboss.webbeans.test.beans.FishFarm;
@@ -31,7 +31,7 @@
@Test(groups={"resolution", "beanLifecycle"}) @SpecAssertion(section="4.9")
public void testCurrentBindingTypeAssumed()
{
- Bean<Tuna> tunaBean = createSimpleWebBean(Tuna.class, manager);
+ Bean<Tuna> tunaBean = createSimpleBean(Tuna.class, manager);
manager.addBean(tunaBean);
assert manager.getInstanceByType(Tuna.class) != null;
}
@@ -52,9 +52,9 @@
public void testAmbiguousDependencies() throws Exception
{
InjectableField<ScottishFish> whiteScottishFishField = new InjectableField<ScottishFish>(FishFarm.class.getDeclaredField("whiteScottishFish"));
- Bean<Cod> codBean = createSimpleWebBean(Cod.class, manager);
- Bean<Salmon> salmonBean = createSimpleWebBean(Salmon.class, manager);
- Bean<Sole> soleBean = createSimpleWebBean(Sole.class, manager);
+ Bean<Cod> codBean = createSimpleBean(Cod.class, manager);
+ Bean<Salmon> salmonBean = createSimpleBean(Salmon.class, manager);
+ Bean<Sole> soleBean = createSimpleBean(Sole.class, manager);
manager.addBean(codBean);
manager.addBean(salmonBean);
manager.addBean(soleBean);
@@ -70,9 +70,9 @@
public void testUnsatisfiedDependencies() throws Exception
{
InjectableField<ScottishFish> whiteScottishFishField = new InjectableField<ScottishFish>(FishFarm.class.getDeclaredField("whiteScottishFish"));
- Bean<Cod> codBean = createSimpleWebBean(Cod.class, manager);
- Bean<Salmon> salmonBean = createSimpleWebBean(Salmon.class, manager);
- Bean<Sole> soleBean = createSimpleWebBean(Sole.class, manager);
+ Bean<Cod> codBean = createSimpleBean(Cod.class, manager);
+ Bean<Salmon> salmonBean = createSimpleBean(Salmon.class, manager);
+ Bean<Sole> soleBean = createSimpleBean(Sole.class, manager);
manager.addBean(codBean);
manager.addBean(salmonBean);
manager.addBean(soleBean);
@@ -88,7 +88,7 @@
public void testUnproxyableDependencies() throws Exception
{
InjectableField<Plaice> plaiceField = new InjectableField<Plaice>(PlaiceFarm.class.getDeclaredField("plaice"));
- Bean<Plaice> plaiceBean = createSimpleWebBean(Plaice.class, manager);
+ Bean<Plaice> plaiceBean = createSimpleBean(Plaice.class, manager);
manager.addBean(plaiceBean);
ResolutionManager resolutionManager = manager.getResolutionManager();
Modified: ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/NameTest.java
===================================================================
--- ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/NameTest.java 2008-11-09 07:54:33 UTC (rev 285)
+++ ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/NameTest.java 2008-11-09 07:56:23 UTC (rev 286)
@@ -1,6 +1,6 @@
package org.jboss.webbeans.test;
-import static org.jboss.webbeans.test.util.Util.createSimpleModel;
+import static org.jboss.webbeans.test.util.Util.createSimpleBean;
import java.lang.annotation.Annotation;
import java.util.HashMap;
@@ -9,11 +9,10 @@
import javax.webbeans.DefinitionException;
import javax.webbeans.Named;
+import org.jboss.webbeans.bean.SimpleBean;
import org.jboss.webbeans.bindings.NamedAnnotationLiteral;
import org.jboss.webbeans.introspector.AnnotatedClass;
import org.jboss.webbeans.introspector.impl.SimpleAnnotatedClass;
-import org.jboss.webbeans.model.bean.BeanModel;
-import org.jboss.webbeans.model.bean.SimpleBeanModel;
import org.jboss.webbeans.test.annotations.RiverFishStereotype;
import org.jboss.webbeans.test.beans.Cod;
import org.jboss.webbeans.test.beans.Haddock;
@@ -36,11 +35,11 @@
@Test @SpecAssertion(section="2.6.1")
public void testNonDefaultNamed()
{
- SimpleBeanModel<Moose> moose = createSimpleModel(Moose.class, manager);
+ SimpleBean<Moose> moose = createSimpleBean(Moose.class, manager);
assert moose.getName().equals("aMoose");
}
- @Test @SpecAssertion(section="2.6.2")
+ @Test(groups="webbeansxml") @SpecAssertion(section="2.6.2")
public void testNonDefaultXmlNamed()
{
Map<Class<? extends Annotation>, Annotation> annotations = new HashMap<Class<? extends Annotation>, Annotation>();
@@ -53,12 +52,13 @@
});
AnnotatedClass<SeaBass> annotatedItem = new SimpleAnnotatedClass<SeaBass>(SeaBass.class, annotations);
- SimpleBeanModel<SeaBass> trout = new SimpleBeanModel<SeaBass>(new SimpleAnnotatedClass<SeaBass>(SeaBass.class), annotatedItem, manager);
+ //SimpleBean<SeaBass> trout = createSimpleBean(SeaBass.class, annotatedItem, manager);
- assert trout.getName().equals("aTrout");
+ //assert trout.getName().equals("aTrout");
+ assert false;
}
- @Test @SpecAssertion(section="2.6.2")
+ @Test(groups="webbeansxml") @SpecAssertion(section="2.6.2")
public void testXmlNamedOverridesJavaNamed()
{
Map<Class<? extends Annotation>, Annotation> annotations = new HashMap<Class<? extends Annotation>, Annotation>();
@@ -71,30 +71,32 @@
});
AnnotatedClass<Cod> annotatedItem = new SimpleAnnotatedClass<Cod>(Cod.class, annotations);
- SimpleBeanModel<Cod> cod = new SimpleBeanModel<Cod>(new SimpleAnnotatedClass<Cod>(Cod.class), annotatedItem, manager);
+ //SimpleBean<Cod> cod = createSimpleBean(Cod.class, annotatedItem, manager);
- assert cod.getName().equals("aTrout");
+ //assert cod.getName().equals("aTrout");
+ assert false;
}
- @Test @SpecAssertion(section={"2.6.2", "2.6.3"})
+ @Test(groups="webbeansxml") @SpecAssertion(section={"2.6.2", "2.6.3"})
public void testJavaNamedUsedWhenNoXmlSpecified()
{
Map<Class<? extends Annotation>, Annotation> annotations = new HashMap<Class<? extends Annotation>, Annotation>();
AnnotatedClass<Cod> annotatedItem = new SimpleAnnotatedClass<Cod>(Cod.class, annotations);
- SimpleBeanModel<Cod> cod = new SimpleBeanModel<Cod>(new SimpleAnnotatedClass<Cod>(Cod.class), annotatedItem, manager);
+ //SimpleBean<Cod> cod = createSimpleBean(Cod.class, annotatedItem, manager);
- assert cod.getName().equals("whitefish");
+ //assert cod.getName().equals("whitefish");
+ assert false;
}
@Test @SpecAssertion(section={"2.6.3", "3.2.7"})
public void testDefaultNamed()
{
- SimpleBeanModel<Haddock> haddock = createSimpleModel(Haddock.class, manager);
+ SimpleBean<Haddock> haddock = createSimpleBean(Haddock.class, manager);
assert haddock.getName() != null;
assert haddock.getName().equals("haddock");
}
- @Test @SpecAssertion(section="2.6.3")
+ @Test(groups="webbeansxml") @SpecAssertion(section="2.6.3")
public void testDefaultXmlNamed()
{
Map<Class<? extends Annotation>, Annotation> annotations = new HashMap<Class<? extends Annotation>, Annotation>();
@@ -107,16 +109,17 @@
});
AnnotatedClass<SeaBass> annotatedItem = new SimpleAnnotatedClass<SeaBass>(SeaBass.class, annotations);
- SimpleBeanModel<SeaBass> trout = new SimpleBeanModel<SeaBass>(new SimpleAnnotatedClass<SeaBass>(SeaBass.class), annotatedItem, manager);
+ //SimpleBean<SeaBass> trout = createSimpleBean(SeaBass.class, annotatedItem, manager);
- assert trout.getName() != null;
- assert trout.getName().equals("seaBass");
+ //assert trout.getName() != null;
+ //assert trout.getName().equals("seaBass");
+ assert false;
}
@Test @SpecAssertion(section={"2.6.3", "2.7"})
public void testSterotypeDefaultsName()
{
- BeanModel<?, ?> model = createSimpleModel(RedSnapper.class, manager);
+ SimpleBean<RedSnapper> model = createSimpleBean(RedSnapper.class, manager);
assert model.getMergedStereotypes().isBeanNameDefaulted();
assert model.getName().equals("redSnapper");
}
@@ -124,25 +127,26 @@
@Test @SpecAssertion(section="2.6.4")
public void testNotNamedInJava()
{
- SimpleBeanModel<SeaBass> model = createSimpleModel(SeaBass.class, manager);
+ SimpleBean<SeaBass> model = createSimpleBean(SeaBass.class, manager);
assert model.getName() == null;
}
@Test @SpecAssertion(section="2.6.4")
public void testNotNamedInXml()
{
- SimpleBeanModel<SeaBass> model = createSimpleModel(SeaBass.class, manager);
+ SimpleBean<SeaBass> model = createSimpleBean(SeaBass.class, manager);
assert model.getName() == null;
}
- @Test @SpecAssertion(section="2.6.4")
+ @Test(groups="webbeansxml") @SpecAssertion(section="2.6.4")
public void testNotNamedInStereotype()
{
Map<Class<? extends Annotation>, Annotation> annotations = new HashMap<Class<? extends Annotation>, Annotation>();
annotations.put(RiverFishStereotype.class, new RiverFishStereotypeAnnotationLiteral());
AnnotatedClass<SeaBass> annotatedItem = new SimpleAnnotatedClass<SeaBass>(SeaBass.class, annotations);
- SimpleBeanModel<SeaBass> model = new SimpleBeanModel<SeaBass>(new SimpleAnnotatedClass<SeaBass>(SeaBass.class), annotatedItem, manager);
- assert model.getName() == null;
+ //SimpleBean<SeaBass> model = createSimpleBean(SeaBass.class, annotatedItem, manager);
+ //assert model.getName() == null;
+ assert false;
}
}
Modified: ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/NormalContextTest.java
===================================================================
--- ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/NormalContextTest.java 2008-11-09 07:54:33 UTC (rev 285)
+++ ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/NormalContextTest.java 2008-11-09 07:56:23 UTC (rev 286)
@@ -1,7 +1,7 @@
package org.jboss.webbeans.test;
import static org.jboss.webbeans.test.util.Util.createProducerMethodBean;
-import static org.jboss.webbeans.test.util.Util.createSimpleModel;
+import static org.jboss.webbeans.test.util.Util.createSimpleBean;
import java.lang.reflect.Method;
@@ -10,9 +10,9 @@
import javax.webbeans.manager.Context;
import org.jboss.webbeans.bean.ProducerMethodBean;
+import org.jboss.webbeans.bean.SimpleBean;
import org.jboss.webbeans.contexts.AbstractContext;
import org.jboss.webbeans.contexts.RequestContext;
-import org.jboss.webbeans.model.bean.SimpleBeanModel;
import org.jboss.webbeans.test.beans.SpiderProducer;
import org.jboss.webbeans.test.beans.Tarantula;
import org.jboss.webbeans.test.beans.Tuna;
@@ -40,13 +40,13 @@
@Test(groups="contexts") @SpecAssertion(section="8.1")
public void testGetWithCreateFalseReturnsNull() {
- Bean<Tuna> tunaBean = Util.createSimpleWebBean(Tuna.class, manager);
+ Bean<Tuna> tunaBean = Util.createSimpleBean(Tuna.class, manager);
assert context.get(tunaBean, false) == null;
}
@Test(groups="contexts") @SpecAssertion(section="8.1")
public void testGetWithCreateTrueReturnsBean() {
- Bean<Tuna> tunaBean = Util.createSimpleWebBean(Tuna.class, manager);
+ Bean<Tuna> tunaBean = Util.createSimpleBean(Tuna.class, manager);
assert context.get(tunaBean, true) != null;
}
@@ -59,7 +59,7 @@
@Test(groups="contexts") @SpecAssertion(section="8.1")
public void testReturnsCorrectExistingBean() {
- Bean<Tuna> tunaBean = Util.createSimpleWebBean(Tuna.class, manager);
+ Bean<Tuna> tunaBean = Util.createSimpleBean(Tuna.class, manager);
Tuna firstTuna = context.get(tunaBean, true);
Tuna secondTuna = context.get(tunaBean, false);
assert firstTuna == secondTuna;
@@ -67,18 +67,16 @@
@Test(groups={"contexts", "producerMethod"}) @SpecAssertion(section="8.1")
public void testProducerMethodReturningNullOK() throws SecurityException, NoSuchMethodException {
- SimpleBeanModel<SpiderProducer> producer = createSimpleModel(SpiderProducer.class, manager);
- manager.getModelManager().addBeanModel(producer);
+ SimpleBean<SpiderProducer> producer = createSimpleBean(SpiderProducer.class, manager);
+ manager.addBean(producer);
Method nullProducer = SpiderProducer.class.getMethod("produceShelob");
- ProducerMethodBean<Tarantula> producerModel = createProducerMethodBean(Tarantula.class, nullProducer, manager);
- // TODO Fix this
- //Bean<Tarantula> shelobBean = new ProducerBeanImpl<Tarantula>(producerModel, manager);
- //assert context.get(shelobBean, true) == null;
+ ProducerMethodBean<Tarantula> shelobBean = createProducerMethodBean(Tarantula.class, nullProducer, manager, producer);
+ assert shelobBean.create() == null;
}
@Test(groups={"contexts", "beanDestruction"})
public void testDestroy() {
- Bean<Tuna> tunaBean = Util.createSimpleWebBean(Tuna.class, manager);
+ Bean<Tuna> tunaBean = Util.createSimpleBean(Tuna.class, manager);
assert context.get(tunaBean, true) instanceof Tuna;
((AbstractContext)context).destroy(manager);
assert context.get(tunaBean, false) == null;
Modified: ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/ObserverTest.java
===================================================================
--- ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/ObserverTest.java 2008-11-09 07:54:33 UTC (rev 285)
+++ ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/ObserverTest.java 2008-11-09 07:56:23 UTC (rev 286)
@@ -1,4 +1,5 @@
package org.jboss.webbeans.test;
+import static org.jboss.webbeans.test.util.Util.createSimpleBean;
import java.lang.annotation.Annotation;
import java.util.ArrayList;
@@ -6,20 +7,18 @@
import java.util.List;
import java.util.Map;
-import javax.webbeans.Observer;
import javax.webbeans.Observes;
import javax.webbeans.Standard;
-import org.jboss.webbeans.injectable.InjectableMethod;
+import org.jboss.webbeans.bean.SimpleBean;
import org.jboss.webbeans.introspector.AnnotatedClass;
+import org.jboss.webbeans.introspector.impl.InjectableMethod;
import org.jboss.webbeans.introspector.impl.SimpleAnnotatedClass;
-import org.jboss.webbeans.model.bean.SimpleBeanModel;
import org.jboss.webbeans.test.annotations.AnotherDeploymentType;
import org.jboss.webbeans.test.annotations.Asynchronous;
import org.jboss.webbeans.test.beans.Tuna;
import org.jboss.webbeans.test.bindings.AsynchronousAnnotationLiteral;
import org.jboss.webbeans.test.mock.MockManagerImpl;
-import org.jboss.webbeans.test.mock.MockObserverImpl;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
@@ -33,7 +32,7 @@
public class ObserverTest
{
private MockManagerImpl manager;
- private SimpleBeanModel<Tuna> tuna;
+ private SimpleBean<Tuna> tuna;
private InjectableMethod<Object> om;
public class SampleEvent
@@ -65,7 +64,7 @@
Map<Class<? extends Annotation>, Annotation> annotations = new HashMap<Class<? extends Annotation>, Annotation>();
annotations.put(Asynchronous.class, new AsynchronousAnnotationLiteral());
AnnotatedClass<Tuna> annotatedItem = new SimpleAnnotatedClass<Tuna>(Tuna.class, annotations);
- tuna = new SimpleBeanModel<Tuna>(new SimpleAnnotatedClass<Tuna>(Tuna.class), annotatedItem, manager);
+ tuna = createSimpleBean(Tuna.class, manager);
om = new InjectableMethod<Object>(AnObserver.class.getMethod("observe", new Class[] { SampleEvent.class }));
}
@@ -78,11 +77,11 @@
public final void testNotify() throws Exception
{
AnObserver observerInstance = new AnObserver();
- Observer<SampleEvent> observer = new MockObserverImpl<SampleEvent>(tuna, om, SampleEvent.class);
+ /*Observer<SampleEvent> observer = new MockObserverImpl<SampleEvent>(tuna, om, SampleEvent.class);
((MockObserverImpl<SampleEvent>) observer).setInstance(observerInstance);
SampleEvent event = new SampleEvent();
observer.notify(event);
- assert observerInstance.notified;
+ assert observerInstance.notified;*/
}
}
Modified: ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/ProducerMethodBeanLifecycleTest.java
===================================================================
--- ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/ProducerMethodBeanLifecycleTest.java 2008-11-09 07:54:33 UTC (rev 285)
+++ ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/ProducerMethodBeanLifecycleTest.java 2008-11-09 07:56:23 UTC (rev 286)
@@ -1,7 +1,7 @@
package org.jboss.webbeans.test;
import static org.jboss.webbeans.test.util.Util.createProducerMethodBean;
-import static org.jboss.webbeans.test.util.Util.createSimpleWebBean;
+import static org.jboss.webbeans.test.util.Util.createSimpleBean;
import java.lang.reflect.Method;
@@ -21,7 +21,7 @@
@Test(groups="producerMethod") @SpecAssertion(section="5.6")
public void testProducerMethodBeanCreate() throws Exception
{
- SimpleBean<SpiderProducer> spiderProducer = createSimpleWebBean(SpiderProducer.class, manager);
+ SimpleBean<SpiderProducer> spiderProducer = createSimpleBean(SpiderProducer.class, manager);
manager.addBean(spiderProducer);
Method method = SpiderProducer.class.getMethod("produceTarantula");
ProducerMethodBean<Tarantula> tarantulaBean = createProducerMethodBean(Tarantula.class, method, manager, spiderProducer);
@@ -54,7 +54,7 @@
@Test(groups="producerMethod") @SpecAssertion(section={"3.4", "5.6", "8.3"})
public void testProducerMethodReturnsNullIsDependent() throws Exception
{
- SimpleBean<SpiderProducer> spiderProducer = createSimpleWebBean(SpiderProducer.class, manager);
+ SimpleBean<SpiderProducer> spiderProducer = createSimpleBean(SpiderProducer.class, manager);
manager.addBean(spiderProducer);
Method method = SpiderProducer.class.getMethod("getNullSpider");
ProducerMethodBean<Spider> spiderBean = createProducerMethodBean(Spider.class, method, manager, spiderProducer);
@@ -65,7 +65,7 @@
@Test(groups="producerMethod", expectedExceptions=IllegalProductException.class) @SpecAssertion(section={"3.4", "5.6"})
public void testProducerMethodReturnsNullIsNotDependent() throws Exception
{
- SimpleBean<BrokenSpiderProducer> spiderProducer = createSimpleWebBean(BrokenSpiderProducer.class, manager);
+ SimpleBean<BrokenSpiderProducer> spiderProducer = createSimpleBean(BrokenSpiderProducer.class, manager);
manager.addBean(spiderProducer);
Method method = BrokenSpiderProducer.class.getMethod("getRequestScopedSpider");
createProducerMethodBean(Spider.class, method, manager, spiderProducer).create();
Modified: ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/ProducerMethodBeanModelTest.java
===================================================================
--- ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/ProducerMethodBeanModelTest.java 2008-11-09 07:54:33 UTC (rev 285)
+++ ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/ProducerMethodBeanModelTest.java 2008-11-09 07:56:23 UTC (rev 286)
@@ -1,7 +1,7 @@
package org.jboss.webbeans.test;
import static org.jboss.webbeans.test.util.Util.createProducerMethodBean;
-import static org.jboss.webbeans.test.util.Util.createSimpleModel;
+import static org.jboss.webbeans.test.util.Util.createSimpleBean;
import java.lang.reflect.Method;
@@ -10,7 +10,7 @@
import javax.webbeans.RequestScoped;
import org.jboss.webbeans.bean.ProducerMethodBean;
-import org.jboss.webbeans.model.bean.SimpleBeanModel;
+import org.jboss.webbeans.bean.SimpleBean;
import org.jboss.webbeans.test.annotations.AnotherDeploymentType;
import org.jboss.webbeans.test.annotations.Tame;
import org.jboss.webbeans.test.beans.Animal;
@@ -34,20 +34,20 @@
@Test(groups="producerMethod") @SpecAssertion(section="2.5.3")
public void testProducerMethodInheritsDeploymentTypeOfDeclaringWebBean() throws Exception
{
- SimpleBeanModel<SpiderProducer> model = createSimpleModel(SpiderProducer.class, manager);
- manager.getModelManager().addBeanModel(model);
+ SimpleBean<SpiderProducer> bean = createSimpleBean(SpiderProducer.class, manager);
+ manager.addBean(bean);
Method method = SpiderProducer.class.getMethod("produceTameTarantula");
- ProducerMethodBean<Tarantula> tarantulaModel = createProducerMethodBean(Tarantula.class, method, manager);
+ ProducerMethodBean<Tarantula> tarantulaModel = createProducerMethodBean(Tarantula.class, method, manager, bean);
tarantulaModel.getDeploymentType().equals(AnotherDeploymentType.class);
}
@Test(groups="producerMethod", expectedExceptions=DefinitionException.class) @SpecAssertion(section="3.4")
public void testStaticMethod() throws Exception
{
- SimpleBeanModel<BeanWithStaticProducerMethod> model = createSimpleModel(BeanWithStaticProducerMethod.class, manager);
- manager.getModelManager().addBeanModel(model);
+ SimpleBean<BeanWithStaticProducerMethod> bean = createSimpleBean(BeanWithStaticProducerMethod.class, manager);
+ manager.addBean(bean);
Method method = BeanWithStaticProducerMethod.class.getMethod("getString");
- createProducerMethodBean(String.class, method, manager);
+ createProducerMethodBean(String.class, method, manager, bean);
}
@Test(groups={"producerMethod", "enterpriseBeans"}, expectedExceptions=DefinitionException.class) @SpecAssertion(section="3.4")
@@ -59,28 +59,28 @@
@Test(groups="producerMethod") @SpecAssertion(section="3.4")
public void testParameterizedReturnType() throws Exception
{
- SimpleBeanModel<SpiderProducer> model = createSimpleModel(SpiderProducer.class, manager);
- manager.getModelManager().addBeanModel(model);
+ SimpleBean<SpiderProducer> bean = createSimpleBean(SpiderProducer.class, manager);
+ manager.addBean(bean);
Method method = SpiderProducer.class.getMethod("getFunnelWeaverSpider");
- createProducerMethodBean(FunnelWeaver.class, method, manager);
+ createProducerMethodBean(FunnelWeaver.class, method, manager, bean);
}
@Test(groups="producerMethod", expectedExceptions=DefinitionException.class) @SpecAssertion(section="3.4")
public void testParameterizedReturnTypeWithWildcard() throws Exception
{
- SimpleBeanModel<SpiderProducer> model = createSimpleModel(SpiderProducer.class, manager);
- manager.getModelManager().addBeanModel(model);
+ SimpleBean<SpiderProducer> bean = createSimpleBean(SpiderProducer.class, manager);
+ manager.addBean(bean);
Method method = SpiderProducer.class.getMethod("getAnotherFunnelWeaver");
- createProducerMethodBean(FunnelWeaver.class, method, manager);
+ createProducerMethodBean(FunnelWeaver.class, method, manager, bean);
}
@Test(groups="producerMethod", expectedExceptions=DefinitionException.class) @SpecAssertion(section="3.4")
public void testParameterizedReturnTypeWithTypeParameter() throws Exception
{
- SimpleBeanModel<SpiderProducer> model = createSimpleModel(SpiderProducer.class, manager);
- manager.getModelManager().addBeanModel(model);
+ SimpleBean<SpiderProducer> bean = createSimpleBean(SpiderProducer.class, manager);
+ manager.addBean(bean);
Method method = SpiderProducer.class.getMethod("getFunnelWeaver");
- createProducerMethodBean(FunnelWeaver.class, method, manager);
+ createProducerMethodBean(FunnelWeaver.class, method, manager, bean);
}
@Test(groups={"producerMethod", "deployment"}) @SpecAssertion(section="3.4")
@@ -92,10 +92,10 @@
@Test(groups="producerMethod") @SpecAssertion(section={"3.4", "2.3.1"})
public void testDefaultBindingType() throws Exception
{
- SimpleBeanModel<SpiderProducer> model = createSimpleModel(SpiderProducer.class, manager);
- manager.getModelManager().addBeanModel(model);
+ SimpleBean<SpiderProducer> bean = createSimpleBean(SpiderProducer.class, manager);
+ manager.addBean(bean);
Method method = SpiderProducer.class.getMethod("produceTarantula");
- ProducerMethodBean<Tarantula> tarantulaModel = createProducerMethodBean(Tarantula.class, method, manager);
+ ProducerMethodBean<Tarantula> tarantulaModel = createProducerMethodBean(Tarantula.class, method, manager, bean);
assert tarantulaModel.getBindingTypes().size() == 1;
assert tarantulaModel.getBindingTypes().iterator().next().annotationType().equals(Current.class);
}
@@ -103,10 +103,10 @@
@Test(groups="producerMethod") @SpecAssertion(section="3.4.1")
public void testApiTypeForClassReturn() throws Exception
{
- SimpleBeanModel<SpiderProducer> model = createSimpleModel(SpiderProducer.class, manager);
- manager.getModelManager().addBeanModel(model);
+ SimpleBean<SpiderProducer> bean = createSimpleBean(SpiderProducer.class, manager);
+ manager.addBean(bean);
Method method = SpiderProducer.class.getMethod("produceTarantula");
- ProducerMethodBean<Tarantula> tarantulaModel = createProducerMethodBean(Tarantula.class, method, manager);
+ ProducerMethodBean<Tarantula> tarantulaModel = createProducerMethodBean(Tarantula.class, method, manager, bean);
assert tarantulaModel.getTypes().size() == 6;
assert tarantulaModel.getTypes().contains(Tarantula.class);
assert tarantulaModel.getTypes().contains(DeadlySpider.class);
@@ -119,10 +119,10 @@
@Test(groups="producerMethod") @SpecAssertion(section="3.4.1")
public void testApiTypeForInterfaceReturn() throws Exception
{
- SimpleBeanModel<SpiderProducer> model = createSimpleModel(SpiderProducer.class, manager);
- manager.getModelManager().addBeanModel(model);
+ SimpleBean<SpiderProducer> bean = createSimpleBean(SpiderProducer.class, manager);
+ manager.addBean(bean);
Method method = SpiderProducer.class.getMethod("makeASpider");
- ProducerMethodBean<Animal> animalModel = createProducerMethodBean(Animal.class, method, manager);
+ ProducerMethodBean<Animal> animalModel = createProducerMethodBean(Animal.class, method, manager, bean);
assert animalModel.getTypes().size() == 2;
assert animalModel.getTypes().contains(Animal.class);
assert animalModel.getTypes().contains(Object.class);
@@ -131,10 +131,10 @@
@Test(groups="producerMethod") @SpecAssertion(section="3.4.1")
public void testApiTypeForPrimitiveReturn() throws Exception
{
- SimpleBeanModel<SpiderProducer> model = createSimpleModel(SpiderProducer.class, manager);
- manager.getModelManager().addBeanModel(model);
+ SimpleBean<SpiderProducer> bean = createSimpleBean(SpiderProducer.class, manager);
+ manager.addBean(bean);
Method method = SpiderProducer.class.getMethod("getWolfSpiderSize");
- ProducerMethodBean<Integer> intModel = createProducerMethodBean(int.class, method, manager);
+ ProducerMethodBean<Integer> intModel = createProducerMethodBean(int.class, method, manager, bean);
assert intModel.getTypes().size() == 2;
assert intModel.getTypes().contains(int.class);
assert intModel.getTypes().contains(Object.class);
@@ -143,10 +143,10 @@
@Test(groups="producerMethod") @SpecAssertion(section="3.4.1")
public void testApiTypeForArrayTypeReturn() throws Exception
{
- SimpleBeanModel<SpiderProducer> model = createSimpleModel(SpiderProducer.class, manager);
- manager.getModelManager().addBeanModel(model);
+ SimpleBean<SpiderProducer> bean = createSimpleBean(SpiderProducer.class, manager);
+ manager.addBean(bean);
Method method = SpiderProducer.class.getMethod("getSpiders");
- ProducerMethodBean<Spider[]> spidersModel = createProducerMethodBean(Spider[].class, method, manager);
+ ProducerMethodBean<Spider[]> spidersModel = createProducerMethodBean(Spider[].class, method, manager, bean);
assert spidersModel.getTypes().size() == 2;
assert spidersModel.getTypes().contains(Spider[].class);
assert spidersModel.getTypes().contains(Object.class);
@@ -155,10 +155,10 @@
@Test(groups="producerMethod") @SpecAssertion(section="3.4.2")
public void testBindingType() throws Exception
{
- SimpleBeanModel<SpiderProducer> model = createSimpleModel(SpiderProducer.class, manager);
- manager.getModelManager().addBeanModel(model);
+ SimpleBean<SpiderProducer> bean = createSimpleBean(SpiderProducer.class, manager);
+ manager.addBean(bean);
Method method = SpiderProducer.class.getMethod("produceTameTarantula");
- ProducerMethodBean<Tarantula> tarantulaModel = createProducerMethodBean(Tarantula.class, method, manager);
+ ProducerMethodBean<Tarantula> tarantulaModel = createProducerMethodBean(Tarantula.class, method, manager, bean);
assert tarantulaModel.getBindingTypes().size() == 1;
assert tarantulaModel.getBindingTypes().iterator().next().annotationType().equals(Tame.class);
}
@@ -166,10 +166,10 @@
@Test(groups="producerMethod") @SpecAssertion(section="3.4.2")
public void testScopeType() throws Exception
{
- SimpleBeanModel<SpiderProducer> model = createSimpleModel(SpiderProducer.class, manager);
- manager.getModelManager().addBeanModel(model);
+ SimpleBean<SpiderProducer> bean = createSimpleBean(SpiderProducer.class, manager);
+ manager.addBean(bean);
Method method = SpiderProducer.class.getMethod("produceDaddyLongLegs");
- ProducerMethodBean<DaddyLongLegs> daddyLongLegsModel = createProducerMethodBean(DaddyLongLegs.class, method, manager);
+ ProducerMethodBean<DaddyLongLegs> daddyLongLegsModel = createProducerMethodBean(DaddyLongLegs.class, method, manager, bean);
assert daddyLongLegsModel.getScopeType().equals(RequestScoped.class);
// TODO Inherit scope from returned web bean?
@@ -178,58 +178,58 @@
@Test(groups="producerMethod") @SpecAssertion(section="3.4.2")
public void testDeploymentType() throws Exception
{
- SimpleBeanModel<SpiderProducer> model = createSimpleModel(SpiderProducer.class, manager);
- manager.getModelManager().addBeanModel(model);
+ SimpleBean<SpiderProducer> bean = createSimpleBean(SpiderProducer.class, manager);
+ manager.addBean(bean);
Method method = SpiderProducer.class.getMethod("getLadybirdSpider");
- ProducerMethodBean<LadybirdSpider> ladybirdSpiderModel = createProducerMethodBean(LadybirdSpider.class, method, manager);
+ ProducerMethodBean<LadybirdSpider> ladybirdSpiderModel = createProducerMethodBean(LadybirdSpider.class, method, manager, bean);
assert ladybirdSpiderModel.getDeploymentType().equals(AnotherDeploymentType.class);
}
@Test(groups="producerMethod") @SpecAssertion(section="3.4.2")
public void testNamedMethod() throws Exception
{
- SimpleBeanModel<SpiderProducer> model = createSimpleModel(SpiderProducer.class, manager);
- manager.getModelManager().addBeanModel(model);
+ SimpleBean<SpiderProducer> bean = createSimpleBean(SpiderProducer.class, manager);
+ manager.addBean(bean);
Method method = SpiderProducer.class.getMethod("produceBlackWidow");
- ProducerMethodBean<BlackWidow> blackWidowSpiderModel = createProducerMethodBean(BlackWidow.class, method, manager);
+ ProducerMethodBean<BlackWidow> blackWidowSpiderModel = createProducerMethodBean(BlackWidow.class, method, manager, bean);
assert blackWidowSpiderModel.getName().equals("blackWidow");
}
@Test(groups="producerMethod") @SpecAssertion(section="3.4.2")
public void testDefaultNamedMethod() throws Exception
{
- SimpleBeanModel<SpiderProducer> model = createSimpleModel(SpiderProducer.class, manager);
- manager.getModelManager().addBeanModel(model);
+ SimpleBean<SpiderProducer> bean = createSimpleBean(SpiderProducer.class, manager);
+ manager.addBean(bean);
Method method = SpiderProducer.class.getMethod("produceDaddyLongLegs");
- ProducerMethodBean<DaddyLongLegs> daddyLongLegsSpiderModel = createProducerMethodBean(DaddyLongLegs.class, method, manager);
+ ProducerMethodBean<DaddyLongLegs> daddyLongLegsSpiderModel = createProducerMethodBean(DaddyLongLegs.class, method, manager, bean);
assert daddyLongLegsSpiderModel.getName().equals("produceDaddyLongLegs");
}
@Test(groups="producerMethod", expectedExceptions=DefinitionException.class) @SpecAssertion(section="3.4")
public void testProducerMethodAnnotatedDestructor() throws Exception
{
- SimpleBeanModel<BrokenSpiderProducer> model = createSimpleModel(BrokenSpiderProducer.class, manager);
- manager.getModelManager().addBeanModel(model);
+ SimpleBean<BrokenSpiderProducer> bean = createSimpleBean(BrokenSpiderProducer.class, manager);
+ manager.addBean(bean);
Method method = BrokenSpiderProducer.class.getMethod("destroy");
- createProducerMethodBean(String.class, method, manager);
+ createProducerMethodBean(String.class, method, manager, bean);
}
@Test(groups="producerMethod", expectedExceptions=DefinitionException.class) @SpecAssertion(section="3.4")
public void testProducerMethodWithParameterAnnotatedDisposes() throws Exception
{
- SimpleBeanModel<BrokenSpiderProducer> model = createSimpleModel(BrokenSpiderProducer.class, manager);
- manager.getModelManager().addBeanModel(model);
+ SimpleBean<BrokenSpiderProducer> bean = createSimpleBean(BrokenSpiderProducer.class, manager);
+ manager.addBean(bean);
Method method = BrokenSpiderProducer.class.getMethod("dispose", String.class);
- createProducerMethodBean(String.class, method, manager);
+ createProducerMethodBean(String.class, method, manager, bean);
}
@Test(groups="producerMethod", expectedExceptions=DefinitionException.class) @SpecAssertion(section="3.4")
public void testProducerMethodWithParameterAnnotatedObserves() throws Exception
{
- SimpleBeanModel<BrokenSpiderProducer> model = createSimpleModel(BrokenSpiderProducer.class, manager);
- manager.getModelManager().addBeanModel(model);
+ SimpleBean<BrokenSpiderProducer> bean = createSimpleBean(BrokenSpiderProducer.class, manager);
+ manager.addBean(bean);
Method method = BrokenSpiderProducer.class.getMethod("observe", String.class);
- createProducerMethodBean(String.class, method, manager);
+ createProducerMethodBean(String.class, method, manager, bean);
}
@Test(groups="disposalMethod") @SpecAssertion(section="3.3.4")
@@ -295,10 +295,10 @@
@Test(groups="producerMethod") @SpecAssertion(section={"2.7.2", "3.4.2"})
public void testStereotype() throws Exception
{
- SimpleBeanModel<SpiderProducer> model = createSimpleModel(SpiderProducer.class, manager);
- manager.getModelManager().addBeanModel(model);
+ SimpleBean<SpiderProducer> bean = createSimpleBean(SpiderProducer.class, manager);
+ manager.addBean(bean);
Method method = SpiderProducer.class.getMethod("produceWolfSpider");
- ProducerMethodBean<WolfSpider> wolfSpiderModel = createProducerMethodBean(WolfSpider.class, method, manager);
+ ProducerMethodBean<WolfSpider> wolfSpiderModel = createProducerMethodBean(WolfSpider.class, method, manager, bean);
assert wolfSpiderModel.getMergedStereotypes().getRequiredTypes().size() == 1;
assert wolfSpiderModel.getMergedStereotypes().getRequiredTypes().contains(Animal.class);
assert wolfSpiderModel.getScopeType().equals(RequestScoped.class);
Modified: ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/ResolutionByNameTest.java
===================================================================
--- ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/ResolutionByNameTest.java 2008-11-09 07:54:33 UTC (rev 285)
+++ ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/ResolutionByNameTest.java 2008-11-09 07:56:23 UTC (rev 286)
@@ -1,6 +1,6 @@
package org.jboss.webbeans.test;
-import static org.jboss.webbeans.test.util.Util.createSimpleWebBean;
+import static org.jboss.webbeans.test.util.Util.createSimpleBean;
import javax.webbeans.manager.Bean;
@@ -39,13 +39,13 @@
public void testNamedBasedResolution()
{
- Bean<Tuna> tunaBean = createSimpleWebBean(Tuna.class, manager);
- Bean<Cod> codBean = createSimpleWebBean(Cod.class, manager);
- Bean<Salmon> salmonBean = createSimpleWebBean(Salmon.class, manager);
- Bean<Sole> soleBean = createSimpleWebBean(Sole.class, manager);
- Bean<SeaBass> seaBassBean = createSimpleWebBean(SeaBass.class, manager);
- Bean<Haddock> haddockBean = createSimpleWebBean(Haddock.class, manager);
- Bean<Plaice> plaiceBean = createSimpleWebBean(Plaice.class, manager);
+ Bean<Tuna> tunaBean = createSimpleBean(Tuna.class, manager);
+ Bean<Cod> codBean = createSimpleBean(Cod.class, manager);
+ Bean<Salmon> salmonBean = createSimpleBean(Salmon.class, manager);
+ Bean<Sole> soleBean = createSimpleBean(Sole.class, manager);
+ Bean<SeaBass> seaBassBean = createSimpleBean(SeaBass.class, manager);
+ Bean<Haddock> haddockBean = createSimpleBean(Haddock.class, manager);
+ Bean<Plaice> plaiceBean = createSimpleBean(Plaice.class, manager);
manager.addBean(tunaBean);
manager.addBean(codBean);
@@ -70,8 +70,8 @@
@Test(groups="resolution") @SpecAssertion(section="4.10.1")
public void testNoWebBeansFound() throws Exception
{
- Bean<Cod> codBean = createSimpleWebBean(Cod.class, manager);
- Bean<Salmon> salmonBean = createSimpleWebBean(Salmon.class, manager);
+ Bean<Cod> codBean = createSimpleBean(Cod.class, manager);
+ Bean<Salmon> salmonBean = createSimpleBean(Salmon.class, manager);
manager.addBean(codBean);
manager.addBean(salmonBean);
Modified: ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/ResolutionByTypeTest.java
===================================================================
--- ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/ResolutionByTypeTest.java 2008-11-09 07:54:33 UTC (rev 285)
+++ ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/ResolutionByTypeTest.java 2008-11-09 07:56:23 UTC (rev 286)
@@ -1,7 +1,7 @@
package org.jboss.webbeans.test;
import static org.jboss.webbeans.test.util.Util.createProducerMethodBean;
-import static org.jboss.webbeans.test.util.Util.createSimpleWebBean;
+import static org.jboss.webbeans.test.util.Util.createSimpleBean;
import java.lang.reflect.Method;
import java.util.ArrayList;
@@ -17,7 +17,7 @@
import org.jboss.webbeans.ResolutionManager;
import org.jboss.webbeans.bean.SimpleBean;
import org.jboss.webbeans.bindings.CurrentAnnotationLiteral;
-import org.jboss.webbeans.injectable.InjectableField;
+import org.jboss.webbeans.introspector.impl.InjectableField;
import org.jboss.webbeans.test.annotations.Expensive;
import org.jboss.webbeans.test.annotations.Whitefish;
import org.jboss.webbeans.test.beans.Animal;
@@ -62,7 +62,7 @@
public void testSingleApiTypeWithCurrent() throws Exception
{
InjectableField<Tuna> tunaField = new InjectableField<Tuna>(FishFarm.class.getDeclaredField("tuna"));
- Bean<Tuna> tunaBean = createSimpleWebBean(Tuna.class, manager);
+ Bean<Tuna> tunaBean = createSimpleBean(Tuna.class, manager);
List<Bean<?>> beans = new ArrayList<Bean<?>>();
beans.add(tunaBean);
Set<Bean<?>> possibleTargets = tunaField.getMatchingBeans(beans, manager.getModelManager());
@@ -86,9 +86,9 @@
public void testOneBindingType() throws Exception
{
InjectableField<ScottishFish> whiteScottishFishField = new InjectableField<ScottishFish>(FishFarm.class.getDeclaredField("whiteScottishFish"));
- Bean<Cod> codBean = createSimpleWebBean(Cod.class, manager);
- Bean<Salmon> salmonBean = createSimpleWebBean(Salmon.class, manager);
- Bean<Sole> soleBean = createSimpleWebBean(Sole.class, manager);
+ Bean<Cod> codBean = createSimpleBean(Cod.class, manager);
+ Bean<Salmon> salmonBean = createSimpleBean(Salmon.class, manager);
+ Bean<Sole> soleBean = createSimpleBean(Sole.class, manager);
List<Bean<?>> beans = new ArrayList<Bean<?>>();
beans.add(codBean);
@@ -105,9 +105,9 @@
{
InjectableField<Animal> whiteChunkyFishField = new InjectableField<Animal>(FishFarm.class.getDeclaredField("realChunkyWhiteFish"));
- Bean<Cod> codBean = createSimpleWebBean(Cod.class, manager);
- Bean<Salmon> salmonBean = createSimpleWebBean(Salmon.class, manager);
- Bean<Sole> soleBean = createSimpleWebBean(Sole.class, manager);
+ Bean<Cod> codBean = createSimpleBean(Cod.class, manager);
+ Bean<Salmon> salmonBean = createSimpleBean(Salmon.class, manager);
+ Bean<Sole> soleBean = createSimpleBean(Sole.class, manager);
List<Bean<?>> beans = new ArrayList<Bean<?>>();
beans.add(codBean);
@@ -122,8 +122,8 @@
public void testMultipleApiTypeWithCurrent() throws Exception
{
InjectableField<Animal> animalField = new InjectableField<Animal>(FishFarm.class.getDeclaredField("animal"));
- Bean<SeaBass> seaBassBean = createSimpleWebBean(SeaBass.class, manager);
- Bean<Haddock> haddockBean = createSimpleWebBean(Haddock.class, manager);
+ Bean<SeaBass> seaBassBean = createSimpleBean(SeaBass.class, manager);
+ Bean<Haddock> haddockBean = createSimpleBean(Haddock.class, manager);
List<Bean<?>> beans = new ArrayList<Bean<?>>();
beans.add(seaBassBean);
beans.add(haddockBean);
@@ -136,10 +136,10 @@
@Test(groups="resolution") @SpecAssertion(section={"4.9.2", "4.9.4"})
public void testResolveByType() throws Exception
{
- Bean<Tuna> tunaBean = createSimpleWebBean(Tuna.class, manager);
- Bean<Salmon> salmonBean = createSimpleWebBean(Salmon.class, manager);
- Bean<SeaBass> seaBassBean = createSimpleWebBean(SeaBass.class, manager);
- Bean<Haddock> haddockBean = createSimpleWebBean(Haddock.class, manager);
+ Bean<Tuna> tunaBean = createSimpleBean(Tuna.class, manager);
+ Bean<Salmon> salmonBean = createSimpleBean(Salmon.class, manager);
+ Bean<SeaBass> seaBassBean = createSimpleBean(SeaBass.class, manager);
+ Bean<Haddock> haddockBean = createSimpleBean(Haddock.class, manager);
manager.addBean(tunaBean);
manager.addBean(salmonBean);
@@ -161,9 +161,9 @@
@Test(groups="injection") @SpecAssertion(section="2.3.5")
public void testAllBindingTypesSpecifiedForResolutionMustAppearOnWebBean()
{
- Bean<Cod> codBean = createSimpleWebBean(Cod.class, manager);
- Bean<Salmon> salmonBean = createSimpleWebBean(Salmon.class, manager);
- Bean<Sole> soleBean = createSimpleWebBean(Sole.class, manager);
+ Bean<Cod> codBean = createSimpleBean(Cod.class, manager);
+ Bean<Salmon> salmonBean = createSimpleBean(Salmon.class, manager);
+ Bean<Sole> soleBean = createSimpleBean(Sole.class, manager);
manager.addBean(codBean);
manager.addBean(salmonBean);
@@ -196,8 +196,8 @@
{
InjectableField<Farmer<ScottishFish>> scottishFishFarmerField = new InjectableField<Farmer<ScottishFish>>(FishFarm.class.getDeclaredField("scottishFishFarmer"));
- Bean<ScottishFishFarmer> scottishFishFarmerBean = createSimpleWebBean(ScottishFishFarmer.class, manager);
- Bean<AnimalFarmer> farmerBean = createSimpleWebBean(AnimalFarmer.class, manager);
+ Bean<ScottishFishFarmer> scottishFishFarmerBean = createSimpleBean(ScottishFishFarmer.class, manager);
+ Bean<AnimalFarmer> farmerBean = createSimpleBean(AnimalFarmer.class, manager);
manager.addBean(scottishFishFarmerBean);
manager.addBean(farmerBean);
@@ -213,13 +213,13 @@
@Test(groups={"resolution", "producerMethod"}) @SpecAssertion(section="4.9.2")
public void testResolveByTypeWithArray() throws Exception
{
- SimpleBean<SpiderProducer> spiderProducerBean = createSimpleWebBean(SpiderProducer.class, manager);
+ SimpleBean<SpiderProducer> spiderProducerBean = createSimpleBean(SpiderProducer.class, manager);
manager.addBean(spiderProducerBean);
Method method = SpiderProducer.class.getMethod("getSpiders");
- Bean<Spider[]> spidersModel = createProducerMethodBean(Spider[].class, method, manager);
+ Bean<Spider[]> spidersModel = createProducerMethodBean(Spider[].class, method, manager, spiderProducerBean);
manager.addBean(spidersModel);
method = SpiderProducer.class.getMethod("getStrings");
- Bean<String[]> stringModel = createProducerMethodBean(String[].class, method, manager);
+ Bean<String[]> stringModel = createProducerMethodBean(String[].class, method, manager, spiderProducerBean);
manager.addBean(stringModel);
assert manager.resolveByType(Spider[].class).size() == 1;
@@ -229,9 +229,9 @@
public void testOnlyHighestEnabledPreecedenceWebBeansResolved() throws Exception
{
InjectableField<Animal> whiteFishField = new InjectableField<Animal>(FishFarm.class.getDeclaredField("whiteFish"));
- Bean<Cod> codBean = createSimpleWebBean(Cod.class, manager);
- Bean<Sole> soleBean = createSimpleWebBean(Sole.class, manager);
- Bean<Plaice> plaiceBean = createSimpleWebBean(Plaice.class, manager);
+ Bean<Cod> codBean = createSimpleBean(Cod.class, manager);
+ Bean<Sole> soleBean = createSimpleBean(Sole.class, manager);
+ Bean<Plaice> plaiceBean = createSimpleBean(Plaice.class, manager);
manager.addBean(plaiceBean);
@@ -251,9 +251,9 @@
public void testResolveByTypeWithNonBindingMembers() throws Exception
{
InjectableField<Animal> veryExpensiveWhitefishField = new InjectableField<Animal>(FishFarm.class.getDeclaredField("veryExpensiveWhitefish"));
- Bean<Halibut> halibutBean = createSimpleWebBean(Halibut.class, manager);
- Bean<RoundWhitefish> roundWhiteFishBean = createSimpleWebBean(RoundWhitefish.class, manager);
- Bean<Sole> soleBean = createSimpleWebBean(Sole.class, manager);
+ Bean<Halibut> halibutBean = createSimpleBean(Halibut.class, manager);
+ Bean<RoundWhitefish> roundWhiteFishBean = createSimpleBean(RoundWhitefish.class, manager);
+ Bean<Sole> soleBean = createSimpleBean(Sole.class, manager);
manager.addBean(halibutBean);
manager.addBean(roundWhiteFishBean);
manager.addBean(soleBean);
@@ -285,9 +285,9 @@
public void testNoWebBeansFound() throws Exception
{
InjectableField<ScottishFish> whiteScottishFishField = new InjectableField<ScottishFish>(FishFarm.class.getDeclaredField("whiteScottishFish"));
- Bean<Salmon> salmonBean = createSimpleWebBean(Salmon.class, manager);
- Bean<Sole> soleBean = createSimpleWebBean(Sole.class, manager);
- Bean<Plaice> plaiceBean = createSimpleWebBean(Plaice.class, manager);
+ Bean<Salmon> salmonBean = createSimpleBean(Salmon.class, manager);
+ Bean<Sole> soleBean = createSimpleBean(Sole.class, manager);
+ Bean<Plaice> plaiceBean = createSimpleBean(Plaice.class, manager);
manager.addBean(plaiceBean);
manager.addBean(salmonBean);
manager.addBean(soleBean);
@@ -302,9 +302,9 @@
@Test(groups="resolution") @SpecAssertion(section="4.9.2")
public void testResolveObject() throws Exception
{
- Bean<Salmon> salmonBean = createSimpleWebBean(Salmon.class, manager);
- Bean<Sole> soleBean = createSimpleWebBean(Sole.class, manager);
- Bean<Plaice> plaiceBean = createSimpleWebBean(Plaice.class, manager);
+ Bean<Salmon> salmonBean = createSimpleBean(Salmon.class, manager);
+ Bean<Sole> soleBean = createSimpleBean(Sole.class, manager);
+ Bean<Plaice> plaiceBean = createSimpleBean(Plaice.class, manager);
manager.addBean(plaiceBean);
manager.addBean(salmonBean);
manager.addBean(soleBean);
Modified: ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/ScopeTypeTest.java
===================================================================
--- ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/ScopeTypeTest.java 2008-11-09 07:54:33 UTC (rev 285)
+++ ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/ScopeTypeTest.java 2008-11-09 07:56:23 UTC (rev 286)
@@ -1,24 +1,22 @@
package org.jboss.webbeans.test;
-import static org.jboss.webbeans.test.util.Util.createSimpleModel;
-import static org.jboss.webbeans.test.util.Util.createSimpleWebBean;
+import static org.jboss.webbeans.test.util.Util.createSimpleBean;
import java.lang.annotation.Annotation;
import java.util.HashMap;
import java.util.Map;
-import javax.webbeans.ApplicationScoped;
import javax.webbeans.ConversationScoped;
import javax.webbeans.DefinitionException;
import javax.webbeans.Dependent;
import javax.webbeans.RequestScoped;
import javax.webbeans.manager.Bean;
+import org.jboss.webbeans.bean.SimpleBean;
import org.jboss.webbeans.bindings.ConversationScopedAnnotationLiteral;
import org.jboss.webbeans.bindings.RequestScopedAnnotationLiteral;
import org.jboss.webbeans.introspector.AnnotatedClass;
import org.jboss.webbeans.introspector.impl.SimpleAnnotatedClass;
-import org.jboss.webbeans.model.bean.SimpleBeanModel;
import org.jboss.webbeans.test.annotations.AnimalStereotype;
import org.jboss.webbeans.test.annotations.AnotherScopeType;
import org.jboss.webbeans.test.annotations.FishStereotype;
@@ -42,7 +40,7 @@
@Test @SpecAssertion(section="2.4")
public void testScopeTypesAreExtensible()
{
- Bean<Mullet> mullet = createSimpleWebBean(Mullet.class, manager);
+ Bean<Mullet> mullet = createSimpleBean(Mullet.class, manager);
assert mullet.getScopeType().equals(AnotherScopeType.class);
}
@@ -67,14 +65,14 @@
@Test @SpecAssertion(section="2.4.3")
public void testScopeDeclaredInJava()
{
- SimpleBeanModel<SeaBass> trout = createSimpleModel(SeaBass.class, manager);
+ SimpleBean<SeaBass> trout = createSimpleBean(SeaBass.class, manager);
assert trout.getScopeType().equals(RequestScoped.class);
}
@Test(expectedExceptions=DefinitionException.class) @SpecAssertion(section="2.4.3")
public void testTooManyScopesSpecifiedInJava()
{
- createSimpleModel(BeanWithTooManyScopeTypes.class, manager);
+ createSimpleBean(BeanWithTooManyScopeTypes.class, manager);
}
@Test(expectedExceptions=DefinitionException.class, groups="webbeansxml")
@@ -84,58 +82,62 @@
annotations.put(RequestScoped.class, new RequestScopedAnnotationLiteral());
annotations.put(ConversationScoped.class, new ConversationScopedAnnotationLiteral());
AnnotatedClass<Antelope> antelopeAnnotatedItem = new SimpleAnnotatedClass<Antelope>(Antelope.class, annotations);
- new SimpleBeanModel<Antelope>(null, antelopeAnnotatedItem, manager);
+ //createSimpleBean(null, antelopeAnnotatedItem, manager);
}
- @Test @SpecAssertion(section="2.4.4")
+ @Test(groups="webbeansxml") @SpecAssertion(section="2.4.4")
public void testScopeDeclaredInXml()
{
Map<Class<? extends Annotation>, Annotation> annotations = new HashMap<Class<? extends Annotation>, Annotation>();
annotations.put(RequestScoped.class, new RequestScopedAnnotationLiteral());
AnnotatedClass<Order> annotatedItem = new SimpleAnnotatedClass<Order>(Order.class, annotations);
- SimpleBeanModel<Order> order = new SimpleBeanModel<Order>(new SimpleAnnotatedClass<Order>(Order.class), annotatedItem, manager);
- assert order.getScopeType().equals(RequestScoped.class);
+ //SimpleBean<Order> order = createSimpleBean(Order.class, annotatedItem, manager);
+ //assert order.getScopeType().equals(RequestScoped.class);
+ assert false;
}
- @Test @SpecAssertion(section="2.4.4")
+ @Test(groups="webbeansxml") @SpecAssertion(section="2.4.4")
public void testScopeMissingInXml()
{
Map<Class<? extends Annotation>, Annotation> annotations = new HashMap<Class<? extends Annotation>, Annotation>();
AnnotatedClass<SeaBass> annotatedItem = new SimpleAnnotatedClass<SeaBass>(SeaBass.class, annotations);
- SimpleBeanModel<SeaBass> trout = new SimpleBeanModel<SeaBass>(new SimpleAnnotatedClass<SeaBass>(SeaBass.class), annotatedItem, manager);
- assert trout.getScopeType().equals(RequestScoped.class);
+ //SimpleBean<SeaBass> trout =createSimpleBean(SeaBass.class, annotatedItem, manager);
+ //assert trout.getScopeType().equals(RequestScoped.class);
+ assert false;
}
- @Test @SpecAssertion(section="2.4.4")
+ @Test(groups="webbeansxml") @SpecAssertion(section="2.4.4")
public void testScopeDeclaredInXmlOverridesJava()
{
Map<Class<? extends Annotation>, Annotation> annotations = new HashMap<Class<? extends Annotation>, Annotation>();
annotations.put(ConversationScoped.class, new ConversationScopedAnnotationLiteral());
AnnotatedClass<SeaBass> annotatedItem = new SimpleAnnotatedClass<SeaBass>(SeaBass.class, annotations);
- SimpleBeanModel<SeaBass> trout = new SimpleBeanModel<SeaBass>(new SimpleAnnotatedClass<SeaBass>(SeaBass.class), annotatedItem, manager);
- assert trout.getScopeType().equals(ConversationScoped.class);
+ //SimpleBean<SeaBass> trout = createSimpleBean(SeaBass.class, annotatedItem, manager);
+ //assert trout.getScopeType().equals(ConversationScoped.class);
+ assert false;
}
@Test @SpecAssertion(section="2.4.5")
public void testDefaultScope()
{
- SimpleBeanModel<Order> order = createSimpleModel(Order.class, manager);
+ SimpleBean<Order> order = createSimpleBean(Order.class, manager);
assert order.getScopeType().equals(Dependent.class);
}
- @Test @SpecAssertion(section={"2.4.5", "2.7.2"})
+ @Test(groups="webbeansxml") @SpecAssertion(section={"2.4.5", "2.7.2"})
public void testScopeSpecifiedAndStereotyped()
{
Map<Class<? extends Annotation>, Annotation> annotations = new HashMap<Class<? extends Annotation>, Annotation>();
annotations.put(FishStereotype.class, new FishStereotypeAnnotationLiteral());
AnnotatedClass<SeaBass> annotatedItem = new SimpleAnnotatedClass<SeaBass>(SeaBass.class, annotations);
- SimpleBeanModel<SeaBass> trout = new SimpleBeanModel<SeaBass>(new SimpleAnnotatedClass<SeaBass>(SeaBass.class), annotatedItem, manager);
- assert trout.getScopeType().equals(RequestScoped.class);
+ //SimpleBean<SeaBass> trout = createSimpleBean(SeaBass.class, annotatedItem, manager);
+ //assert trout.getScopeType().equals(RequestScoped.class);
+ assert false;
}
- @Test @SpecAssertion(section="2.4.5")
+ @Test(groups="webbeansxml") @SpecAssertion(section="2.4.5")
public void testMutipleIncompatibleScopeStereotypes()
{
Map<Class<? extends Annotation>, Annotation> annotations = new HashMap<Class<? extends Annotation>, Annotation>();
@@ -146,7 +148,7 @@
boolean exception = false;
try
{
- new SimpleBeanModel<Haddock>(new SimpleAnnotatedClass<Haddock>(Haddock.class), annotatedItem, manager);
+ //createSimpleBean(Haddock.class, annotatedItem, manager);
}
catch (Exception e)
{
@@ -155,7 +157,7 @@
assert exception;
}
- @Test @SpecAssertion(section="2.4.5")
+ @Test(groups="webbeansxml") @SpecAssertion(section="2.4.5")
public void testMutipleIncompatibleScopeStereotypesWithScopeSpecified()
{
Map<Class<? extends Annotation>, Annotation> annotations = new HashMap<Class<? extends Annotation>, Annotation>();
@@ -163,11 +165,12 @@
annotations.put(AnimalStereotype.class, new AnimalStereotypeAnnotationLiteral());
AnnotatedClass<SeaBass> annotatedItem = new SimpleAnnotatedClass<SeaBass>(SeaBass.class, annotations);
- SimpleBeanModel<SeaBass> trout = new SimpleBeanModel<SeaBass>(new SimpleAnnotatedClass<SeaBass>(SeaBass.class), annotatedItem, manager);
- assert trout.getScopeType().equals(RequestScoped.class);
+ //SimpleBean<SeaBass> trout = createSimpleBean(SeaBass.class, annotatedItem, manager);
+ //assert trout.getScopeType().equals(RequestScoped.class);
+ assert false;
}
- @Test @SpecAssertion(section="2.4.5")
+ @Test(groups="webbeansxml") @SpecAssertion(section="2.4.5")
public void testMutipleCompatibleScopeStereotypes()
{
Map<Class<? extends Annotation>, Annotation> annotations = new HashMap<Class<? extends Annotation>, Annotation>();
@@ -175,14 +178,15 @@
annotations.put(RiverFishStereotype.class, new RiverFishStereotypeAnnotationLiteral());
AnnotatedClass<Haddock> annotatedItem = new SimpleAnnotatedClass<Haddock>(Haddock.class, annotations);
- SimpleBeanModel<Haddock> haddock = new SimpleBeanModel<Haddock>(new SimpleAnnotatedClass<Haddock>(Haddock.class), annotatedItem, manager);
- assert haddock.getScopeType().equals(ApplicationScoped.class);
+ //SimpleBean<Haddock> haddock = createSimpleBean(Haddock.class, annotatedItem, manager);
+ //assert haddock.getScopeType().equals(ApplicationScoped.class);
+ assert false;
}
@Test @SpecAssertion(section="2.7.2")
public void testWebBeanScopeTypeOverridesStereotype()
{
- Bean<RedSnapper> bean = createSimpleWebBean(RedSnapper.class, manager);
+ Bean<RedSnapper> bean = createSimpleBean(RedSnapper.class, manager);
assert bean.getScopeType().equals(RequestScoped.class);
}
Modified: ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/SimpleBeanLifecycleTest.java
===================================================================
--- ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/SimpleBeanLifecycleTest.java 2008-11-09 07:54:33 UTC (rev 285)
+++ ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/SimpleBeanLifecycleTest.java 2008-11-09 07:56:23 UTC (rev 286)
@@ -1,6 +1,6 @@
package org.jboss.webbeans.test;
-import static org.jboss.webbeans.test.util.Util.createSimpleWebBean;
+import static org.jboss.webbeans.test.util.Util.createSimpleBean;
import javax.webbeans.manager.Bean;
@@ -21,8 +21,8 @@
@Test(groups="beanConstruction") @SpecAssertion(section="3.1.3")
public void testInjectionOfParametersIntoBeanConstructor()
{
- Bean<FishPond> goldfishPondBean = createSimpleWebBean(FishPond.class, manager);
- Bean<Goldfish> goldfishBean = createSimpleWebBean(Goldfish.class, manager);
+ Bean<FishPond> goldfishPondBean = createSimpleBean(FishPond.class, manager);
+ Bean<Goldfish> goldfishBean = createSimpleBean(Goldfish.class, manager);
manager.addBean(goldfishBean);
manager.addBean(goldfishPondBean);
FishPond fishPond = goldfishPondBean.create();
@@ -39,7 +39,7 @@
@Test(groups="beanLifecycle") @SpecAssertion(section="5.3")
public void testCreateReturnsInstanceOfBean()
{
- Bean<RedSnapper> bean = createSimpleWebBean(RedSnapper.class, manager);
+ Bean<RedSnapper> bean = createSimpleBean(RedSnapper.class, manager);
assert bean.create() instanceof RedSnapper;
}
@@ -76,8 +76,8 @@
@Test(groups={"beanLifecycle", "lifecycleCallbacks"}) @SpecAssertion(section="5.3")
public void testPostConstructPreDestroy() throws Exception
{
- Bean<FarmOffice> farmOfficeBean = createSimpleWebBean(FarmOffice.class, manager);
- Bean<Farm> farmBean = createSimpleWebBean(Farm.class, manager);
+ Bean<FarmOffice> farmOfficeBean = createSimpleBean(FarmOffice.class, manager);
+ Bean<Farm> farmBean = createSimpleBean(Farm.class, manager);
manager.addBean(farmOfficeBean);
manager.addBean(farmBean);
Farm farm = farmBean.create();
@@ -91,8 +91,8 @@
@Test(groups="injection") @SpecAssertion(section="5.3")
public void testCreateInjectsFieldsDeclaredInJava()
{
- SimpleBean<TunaFarm> tunaFarmBean = createSimpleWebBean(TunaFarm.class, manager);
- Bean<Tuna> tunaBean = createSimpleWebBean(Tuna.class, manager);
+ SimpleBean<TunaFarm> tunaFarmBean = createSimpleBean(TunaFarm.class, manager);
+ Bean<Tuna> tunaBean = createSimpleBean(Tuna.class, manager);
manager.addBean(tunaBean);
TunaFarm tunaFarm = tunaFarmBean.create();
assert tunaFarm.tuna != null;
@@ -101,8 +101,8 @@
@Test(groups="injection")
public void testFieldMissingBindingAnnotationsAreNotInjected()
{
- SimpleBean<TunaFarm> tunaFarmBean = createSimpleWebBean(TunaFarm.class, manager);
- Bean<Tuna> tunaBean = createSimpleWebBean(Tuna.class, manager);
+ SimpleBean<TunaFarm> tunaFarmBean = createSimpleBean(TunaFarm.class, manager);
+ Bean<Tuna> tunaBean = createSimpleBean(Tuna.class, manager);
manager.addBean(tunaBean);
TunaFarm tunaFarm = tunaFarmBean.create();
assert tunaFarm.notInjectedTuna != manager.getInstance(tunaBean);
Modified: ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/SimpleBeanModelTest.java
===================================================================
--- ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/SimpleBeanModelTest.java 2008-11-09 07:54:33 UTC (rev 285)
+++ ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/SimpleBeanModelTest.java 2008-11-09 07:56:23 UTC (rev 286)
@@ -1,7 +1,6 @@
package org.jboss.webbeans.test;
-import static org.jboss.webbeans.test.util.Util.createSimpleModel;
-import static org.jboss.webbeans.test.util.Util.createSimpleWebBean;
+import static org.jboss.webbeans.test.util.Util.createSimpleBean;
import java.lang.annotation.Annotation;
import java.util.HashMap;
@@ -13,10 +12,11 @@
import javax.webbeans.NonexistentConstructorException;
import javax.webbeans.manager.Bean;
+import org.jboss.webbeans.bean.SimpleBean;
import org.jboss.webbeans.bindings.CurrentAnnotationLiteral;
-import org.jboss.webbeans.injectable.InjectableParameter;
-import org.jboss.webbeans.injectable.SimpleConstructor;
-import org.jboss.webbeans.model.bean.SimpleBeanModel;
+import org.jboss.webbeans.introspector.AnnotatedConstructor;
+import org.jboss.webbeans.introspector.AnnotatedParameter;
+import org.jboss.webbeans.introspector.impl.InjectableParameter;
import org.jboss.webbeans.test.annotations.HeavyDuty;
import org.jboss.webbeans.test.annotations.Motorized;
import org.jboss.webbeans.test.beans.Animal;
@@ -47,26 +47,26 @@
@Test(expectedExceptions=DefinitionException.class) @SpecAssertion(section="3.2")
public void testAbstractClassDeclaredInJavaIsNotAllowed()
{
- createSimpleModel(Cow.class, manager);
+ createSimpleBean(Cow.class, manager);
}
@Test(groups="innerClass") @SpecAssertion(section="3.2")
public void testStaticInnerClassDeclaredInJavaAllowed()
{
- createSimpleModel(StaticInnerBean.class, manager);
+ createSimpleBean(StaticInnerBean.class, manager);
}
@Test(expectedExceptions=DefinitionException.class, groups="innerClass") @SpecAssertion(section="3.2")
public void testNonStaticInnerClassDeclaredInJavaNotAllowed()
{
- createSimpleModel(InnerBean.class, manager);
+ createSimpleBean(InnerBean.class, manager);
}
@SuppressWarnings("unchecked")
@Test(expectedExceptions=DefinitionException.class) @SpecAssertion(section="3.2")
public void testParameterizedClassDeclaredInJavaIsNotAllowed()
{
- createSimpleModel(ParameterizedBean.class, manager);
+ createSimpleBean(ParameterizedBean.class, manager);
}
@Test(expectedExceptions=DefinitionException.class, groups={"interceptors", "decorators"}) @SpecAssertion(section="3.2")
@@ -84,7 +84,7 @@
@Test @SpecAssertion(section="3.2.2")
public void testApiTypes()
{
- Bean<Tarantula> bean = createSimpleWebBean(Tarantula.class, manager);
+ Bean<Tarantula> bean = createSimpleBean(Tarantula.class, manager);
assert bean.getTypes().size() == 6;
assert bean.getTypes().contains(Tarantula.class);
assert bean.getTypes().contains(Spider.class);
@@ -151,17 +151,14 @@
@Test @SpecAssertion(section="3.2.5.1")
public void testInitializerAnnotatedConstructor()
{
- SimpleConstructor<Sheep> constructor = createSimpleModel(Sheep.class, manager).getConstructor();
- assert constructor.getAnnotatedItem().getDelegate().getDeclaringClass().equals(Sheep.class);
- assert constructor.getAnnotatedItem().getDelegate().getParameterTypes().length == 2;
- assert constructor.getAnnotatedItem().getDelegate().getParameterTypes()[0].equals(String.class);
- assert constructor.getAnnotatedItem().getDelegate().getParameterTypes()[1].equals(Double.class);
+ AnnotatedConstructor<Sheep> constructor = createSimpleBean(Sheep.class, manager).getConstructor();
+ assert constructor.getDeclaringClass().equals(Sheep.class);
assert constructor.getParameters().size() == 2;
Map<Class<?>, Set<? extends Annotation>> map = new HashMap<Class<?>, Set<? extends Annotation>>();
- for (InjectableParameter<Object> parameter : constructor.getParameters())
+ for (AnnotatedParameter<Object> parameter : constructor.getParameters())
{
- map.put(parameter.getType(), parameter.getBindingTypes());
+ map.put(parameter.getType(), new InjectableParameter(parameter).getBindingTypes());
}
assert map.containsKey(String.class);
assert map.containsKey(Double.class);
@@ -174,30 +171,28 @@
@Test @SpecAssertion(section="3.2.5.1")
public void testImplicitConstructorUsed()
{
- SimpleConstructor<Order> constructor = createSimpleModel(Order.class, manager).getConstructor();
- assert constructor.getAnnotatedItem().getDelegate().getDeclaringClass().equals(Order.class);
- assert constructor.getAnnotatedItem().getDelegate().getParameterTypes().length == 0;
+ AnnotatedConstructor<Order> constructor = createSimpleBean(Order.class, manager).getConstructor();
+ assert constructor.getDeclaringClass().equals(Order.class);
assert constructor.getParameters().size() == 0;
}
@Test @SpecAssertion(section="3.2.5.1")
public void testEmptyConstructorUsed()
{
- SimpleConstructor<Donkey> constructor = createSimpleModel(Donkey.class, manager).getConstructor();
- assert constructor.getAnnotatedItem().getDelegate().getDeclaringClass().equals(Donkey.class);
- assert constructor.getAnnotatedItem().getDelegate().getParameterTypes().length == 0;
+ AnnotatedConstructor<Donkey> constructor = createSimpleBean(Donkey.class, manager).getConstructor();
+ assert constructor.getDeclaringClass().equals(Donkey.class);
assert constructor.getParameters().size() == 0;
}
@Test @SpecAssertion(section="3.2.5.1")
public void testInitializerAnnotatedConstructorUsedOverEmptyConstuctor()
{
- SimpleConstructor<Turkey> constructor = createSimpleModel(Turkey.class, manager).getConstructor();
+ AnnotatedConstructor<Turkey> constructor = createSimpleBean(Turkey.class, manager).getConstructor();
assert constructor.getParameters().size() == 2;
Map<Class<?>, Set<? extends Annotation>> map = new HashMap<Class<?>, Set<? extends Annotation>>();
- for (InjectableParameter<Object> parameter : constructor.getParameters())
+ for (AnnotatedParameter<Object> parameter : constructor.getParameters())
{
- map.put(parameter.getType(), parameter.getBindingTypes());
+ map.put(parameter.getType(), new InjectableParameter(parameter).getBindingTypes());
}
assert map.containsKey(String.class);
assert map.containsKey(Integer.class);
@@ -206,7 +201,7 @@
@Test(expectedExceptions=DefinitionException.class) @SpecAssertion(section="3.2.5.1")
public void testTooManyInitializerAnnotatedConstructor()
{
- createSimpleWebBean(Goose.class, manager);
+ createSimpleBean(Goose.class, manager);
}
@Test(expectedExceptions=DefinitionException.class, groups="disposalMethod") @SpecAssertion(section="3.2.5.1")
@@ -230,8 +225,7 @@
@Test(groups="webbeansxml") @SpecAssertion(section="3.2.5.2")
public void testEmptyConstructorDeclaredInXmlUsed()
{
- SimpleConstructor<Donkey> constructor = createSimpleModel(Donkey.class, manager).getConstructor();
- assert constructor.getAnnotatedItem().getDelegate().getParameterTypes().length == 0;
+ AnnotatedConstructor<Donkey> constructor = createSimpleBean(Donkey.class, manager).getConstructor();
assert constructor.getParameters().size() == 0;
assert false;
}
@@ -251,13 +245,13 @@
@Test @SpecAssertion(section="3.2.5.3")
public void testBindingTypeAnnotatedConstructor()
{
- SimpleConstructor<Duck> constructor = createSimpleModel(Duck.class, manager).getConstructor();
- assert constructor.getAnnotatedItem().getDelegate().getDeclaringClass().equals(Duck.class);
+ AnnotatedConstructor<Duck> constructor = createSimpleBean(Duck.class, manager).getConstructor();
+ assert constructor.getDeclaringClass().equals(Duck.class);
assert constructor.getParameters().size() == 2;
Map<Class<?>, Set<? extends Annotation>> map = new HashMap<Class<?>, Set<? extends Annotation>>();
- for (InjectableParameter<Object> parameter : constructor.getParameters())
+ for (AnnotatedParameter<Object> parameter : constructor.getParameters())
{
- map.put(parameter.getType(), parameter.getBindingTypes());
+ map.put(parameter.getType(), new InjectableParameter(parameter).getBindingTypes());
}
assert map.containsKey(String.class);
assert map.containsKey(Integer.class);
@@ -270,7 +264,7 @@
@Test(groups="specializationInherit") @SpecAssertion(section="3.2.6")
public void testSpecializedClassInheritsBindingTypes()
{
- SimpleBeanModel<Tractor> bean = createSimpleModel(Tractor.class, manager);
+ SimpleBean<Tractor> bean = createSimpleBean(Tractor.class, manager);
assert bean.getBindingTypes().size()==2;
assert bean.getBindingTypes().contains( new AnnotationLiteral<Motorized>() {} );
assert bean.getBindingTypes().contains( new AnnotationLiteral<HeavyDuty>() {} );
@@ -279,7 +273,7 @@
@Test(groups="specializationInherit") @SpecAssertion(section="3.2.6")
public void testSpecializedClassInheritsName()
{
- SimpleBeanModel<Tractor> bean = createSimpleModel(Tractor.class, manager);
+ SimpleBean<Tractor> bean = createSimpleBean(Tractor.class, manager);
assert bean.getName()!=null;
assert bean.getName().equals("plough");
}
Modified: ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/StereotypesTest.java
===================================================================
--- ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/StereotypesTest.java 2008-11-09 07:54:33 UTC (rev 285)
+++ ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/StereotypesTest.java 2008-11-09 07:56:23 UTC (rev 286)
@@ -1,6 +1,6 @@
package org.jboss.webbeans.test;
-import static org.jboss.webbeans.test.util.Util.createSimpleModel;
+import static org.jboss.webbeans.test.util.Util.createSimpleBean;
import java.lang.annotation.Annotation;
import java.util.Arrays;
@@ -10,10 +10,10 @@
import javax.webbeans.DefinitionException;
import javax.webbeans.RequestScoped;
+import org.jboss.webbeans.bean.SimpleBean;
import org.jboss.webbeans.introspector.AnnotatedClass;
import org.jboss.webbeans.introspector.impl.SimpleAnnotatedClass;
import org.jboss.webbeans.model.StereotypeModel;
-import org.jboss.webbeans.model.bean.SimpleBeanModel;
import org.jboss.webbeans.test.annotations.AnimalOrderStereotype;
import org.jboss.webbeans.test.annotations.AnimalStereotype;
import org.jboss.webbeans.test.annotations.HornedAnimalDeploymentType;
@@ -152,7 +152,7 @@
@Test @SpecAssertion(section={"2.7.2", "2.7.4"})
public void testMultipleStereotypes()
{
- SimpleBeanModel<HighlandCow> highlandCow = createSimpleModel(HighlandCow.class, manager);
+ SimpleBean<HighlandCow> highlandCow = createSimpleBean(HighlandCow.class, manager);
assert highlandCow.getName() == null;
assert highlandCow.getBindingTypes().iterator().next().annotationType().equals(Tame.class);
assert highlandCow.getScopeType().equals(RequestScoped.class);
@@ -163,22 +163,23 @@
assert highlandCow.getDeploymentType().equals(HornedAnimalDeploymentType.class);
}
- @Test @SpecAssertion(section="2.7.3")
+ @Test(groups="webbeansxml") @SpecAssertion(section="2.7.3")
public void testStereotypeDeclaredInXmlIgnoresJavaStereotypes()
{
Map<Class<? extends Annotation>, Annotation> cooXmlAnnotations = new HashMap<Class<? extends Annotation>, Annotation>();
cooXmlAnnotations.put(HornedMammalStereotype.class, new HornedMamalStereotypeAnnotationLiteral());
AnnotatedClass<HighlandCow> cooXmlAnnotatedItem = new SimpleAnnotatedClass<HighlandCow>(HighlandCow.class, cooXmlAnnotations);
- SimpleBeanModel<HighlandCow> coo = createSimpleModel(HighlandCow.class, cooXmlAnnotatedItem, manager);
+ /*SimpleBean<HighlandCow> coo = createSimpleBean(HighlandCow.class, cooXmlAnnotatedItem, manager);
assert coo.getDeploymentType().equals(HornedAnimalDeploymentType.class);
assert coo.getScopeType().equals(RequestScoped.class);
assert coo.getMergedStereotypes().getRequiredTypes().size() == 1;
assert coo.getMergedStereotypes().getRequiredTypes().contains(Animal.class);
- assert coo.getMergedStereotypes().getSupportedScopes().size() == 0;
+ assert coo.getMergedStereotypes().getSupportedScopes().size() == 0;*/
+ assert false;
}
- @Test @SpecAssertion(section="2.7.3")
+ @Test(groups="webbeansxml") @SpecAssertion(section="2.7.3")
public void testStereotypeDeclaredInXmlIgnoresJavaBindingTypes()
{
Map<Class<? extends Annotation>, Annotation> cooXmlAnnotations = new HashMap<Class<? extends Annotation>, Annotation>();
@@ -186,34 +187,35 @@
cooXmlAnnotations.put(Synchronous.class, new SynchronousAnnotationLiteral());
AnnotatedClass<HighlandCow> cooXmlAnnotatedItem = new SimpleAnnotatedClass<HighlandCow>(HighlandCow.class, cooXmlAnnotations);
- SimpleBeanModel<HighlandCow> coo = createSimpleModel(HighlandCow.class, cooXmlAnnotatedItem, manager);
+ /*SimpleBean<HighlandCow> coo = createSimpleBean(HighlandCow.class, cooXmlAnnotatedItem, manager);
assert coo.getBindingTypes().size() == 1;
- assert coo.getBindingTypes().contains(new SynchronousAnnotationLiteral());
+ assert coo.getBindingTypes().contains(new SynchronousAnnotationLiteral());*/
+ assert false;
}
@Test@SpecAssertion(section="2.7.4")
public void testRequiredTypeIsImplemented()
{
- createSimpleModel(HighlandCow.class, manager);
+ createSimpleBean(HighlandCow.class, manager);
}
@Test(expectedExceptions=DefinitionException.class) @SpecAssertion(section="2.7.4")
public void testRequiredTypeIsNotImplemented()
{
- createSimpleModel(Chair.class, manager);
+ createSimpleBean(Chair.class, manager);
}
@Test @SpecAssertion(section="2.7.4")
public void testScopeIsSupported()
{
- createSimpleModel(Goldfish.class, manager);
+ createSimpleBean(Goldfish.class, manager);
}
@Test(expectedExceptions=DefinitionException.class) @SpecAssertion(section="2.7.4")
public void testScopeIsNotSupported()
{
- createSimpleModel(Carp.class, manager);
+ createSimpleBean(Carp.class, manager);
}
}
Modified: ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/TypeTest.java
===================================================================
--- ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/TypeTest.java 2008-11-09 07:54:33 UTC (rev 285)
+++ ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/TypeTest.java 2008-11-09 07:56:23 UTC (rev 286)
@@ -1,8 +1,8 @@
package org.jboss.webbeans.test;
-import static org.jboss.webbeans.test.util.Util.createSimpleModel;
+import static org.jboss.webbeans.test.util.Util.createSimpleBean;
-import org.jboss.webbeans.model.bean.SimpleBeanModel;
+import org.jboss.webbeans.bean.SimpleBean;
import org.jboss.webbeans.test.beans.Haddock;
import org.testng.annotations.Test;
@@ -12,7 +12,7 @@
@Test @SpecAssertion(section="2.6.3")
public void testDefaultNamed()
{
- SimpleBeanModel<Haddock> haddock = createSimpleModel(Haddock.class, manager);
+ SimpleBean<Haddock> haddock = createSimpleBean(Haddock.class, manager);
assert haddock.getName() != null;
assert haddock.getName().equals("haddock");
}
15 years, 5 months
[webbeans-commits] Webbeans SVN: r285 - in ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans: test/ejb/model and 2 other directories.
by webbeans-commits@lists.jboss.org
Author: pete.muir(a)jboss.org
Date: 2008-11-09 02:54:33 -0500 (Sun, 09 Nov 2008)
New Revision: 285
Modified:
ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/examples/Tests.java
ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/ejb/model/EnterpriseBeanRemoveMethodTest.java
ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/mock/MockObserverImpl.java
ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/util/Util.java
Log:
Refactor to remove *Model and *Constructor and xmlAnnotatedItem, part 2
Modified: ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/examples/Tests.java
===================================================================
--- ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/examples/Tests.java 2008-11-09 07:52:05 UTC (rev 284)
+++ ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/examples/Tests.java 2008-11-09 07:54:33 UTC (rev 285)
@@ -26,8 +26,8 @@
private void setupGameGenerator() throws NoSuchMethodException
{
- SimpleBean<Game> gameBean = Util.createSimpleWebBean(Game.class, manager);
- SimpleBean<Generator> generatorBean = Util.createSimpleWebBean(Generator.class, manager);
+ SimpleBean<Game> gameBean = Util.createSimpleBean(Game.class, manager);
+ SimpleBean<Generator> generatorBean = Util.createSimpleBean(Generator.class, manager);
Method method = Generator.class.getDeclaredMethod("next");
method.setAccessible(true);
ProducerMethodBean<Integer> nextBean = Util.createProducerMethodBean(int.class, method, manager, generatorBean);
@@ -65,10 +65,10 @@
private void setupTextTranslator()
{
- SimpleBean<SentenceParser> spBean = Util.createSimpleWebBean(SentenceParser.class, manager);
- SimpleBean<SentenceTranslator> stBean = Util.createSimpleWebBean(SentenceTranslator.class, manager);
- SimpleBean<MockSentenceTranslator> mstBean = Util.createSimpleWebBean(MockSentenceTranslator.class, manager);
- SimpleBean<TextTranslator> ttBean = Util.createSimpleWebBean(TextTranslator.class, manager);
+ SimpleBean<SentenceParser> spBean = Util.createSimpleBean(SentenceParser.class, manager);
+ SimpleBean<SentenceTranslator> stBean = Util.createSimpleBean(SentenceTranslator.class, manager);
+ SimpleBean<MockSentenceTranslator> mstBean = Util.createSimpleBean(MockSentenceTranslator.class, manager);
+ SimpleBean<TextTranslator> ttBean = Util.createSimpleBean(TextTranslator.class, manager);
manager.addBean(spBean);
manager.addBean(stBean);
Modified: ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/ejb/model/EnterpriseBeanRemoveMethodTest.java
===================================================================
--- ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/ejb/model/EnterpriseBeanRemoveMethodTest.java 2008-11-09 07:52:05 UTC (rev 284)
+++ ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/ejb/model/EnterpriseBeanRemoveMethodTest.java 2008-11-09 07:54:33 UTC (rev 285)
@@ -68,7 +68,7 @@
public void testAnnotationDefinedEnterpriseBeanWithoutDestructorUsesRemoveMethodWithoutParamsAsWebBeansRemoveMethod()
{
EnterpriseBean<Armant> whippet = Util.createEnterpriseBean(Armant.class, manager);
- assert whippet.getRemoveMethod().getAnnotatedItem().getDelegate().getName().equals("destroy");
+ assert whippet.getRemoveMethod().getAnnotatedItem().getName().equals("destroy");
}
@Test
Modified: ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/mock/MockObserverImpl.java
===================================================================
--- ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/mock/MockObserverImpl.java 2008-11-09 07:52:05 UTC (rev 284)
+++ ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/mock/MockObserverImpl.java 2008-11-09 07:54:33 UTC (rev 285)
@@ -1,38 +1,38 @@
-package org.jboss.webbeans.test.mock;
-
-import org.jboss.webbeans.event.ObserverImpl;
-import org.jboss.webbeans.injectable.InjectableMethod;
-import org.jboss.webbeans.model.bean.BeanModel;
-
-/**
- * An implementation used for unit testing only.
- * @author David Allen
- *
- */
-public class MockObserverImpl<T> extends ObserverImpl<T> {
-
- private Object specializedInstance;
-
-
-
- public MockObserverImpl(BeanModel<?, ?> beanModel,
- InjectableMethod<Object> observer, Class<T> eventType)
- {
- super(beanModel, observer, eventType);
- }
-
- @Override
- protected final Object getInstance() {
- return specializedInstance;
- }
-
- /**
- * The most specialized instance of this observer type.
- * @param instance The instance to use for testing
- */
- public final void setInstance(Object instance)
- {
- specializedInstance = instance;
- }
-
-}
+package org.jboss.webbeans.test.mock;
+
+import org.jboss.webbeans.bean.EventBean;
+import org.jboss.webbeans.event.ObserverImpl;
+import org.jboss.webbeans.introspector.impl.InjectableMethod;
+
+/**
+ * An implementation used for unit testing only.
+ * @author David Allen
+ *
+ */
+public class MockObserverImpl<T> extends ObserverImpl<T> {
+
+ private Object specializedInstance;
+
+
+
+ public MockObserverImpl(EventBean<T> beanModel,
+ InjectableMethod<Object> observer, Class<T> eventType)
+ {
+ super(beanModel, observer, eventType);
+ }
+
+ @Override
+ protected final Object getInstance() {
+ return specializedInstance;
+ }
+
+ /**
+ * The most specialized instance of this observer type.
+ * @param instance The instance to use for testing
+ */
+ public final void setInstance(Object instance)
+ {
+ specializedInstance = instance;
+ }
+
+}
Modified: ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/util/Util.java
===================================================================
--- ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/util/Util.java 2008-11-09 07:52:05 UTC (rev 284)
+++ ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/util/Util.java 2008-11-09 07:54:33 UTC (rev 285)
@@ -1,86 +1,28 @@
package org.jboss.webbeans.test.util;
-import java.lang.annotation.Annotation;
import java.lang.reflect.Method;
-import java.util.HashMap;
import org.jboss.webbeans.ManagerImpl;
-import org.jboss.webbeans.bean.AbstractBean;
+import org.jboss.webbeans.bean.AbstractClassBean;
import org.jboss.webbeans.bean.EnterpriseBean;
import org.jboss.webbeans.bean.ProducerMethodBean;
import org.jboss.webbeans.bean.SimpleBean;
-import org.jboss.webbeans.introspector.AnnotatedClass;
-import org.jboss.webbeans.introspector.AnnotatedMethod;
-import org.jboss.webbeans.introspector.impl.SimpleAnnotatedClass;
-import org.jboss.webbeans.introspector.impl.SimpleAnnotatedMethod;
-import org.jboss.webbeans.model.bean.EnterpriseBeanModel;
-import org.jboss.webbeans.model.bean.ProducerMethodBeanModel;
-import org.jboss.webbeans.model.bean.SimpleBeanModel;
public class Util
{
- public static <T> SimpleBean<T> createSimpleWebBean(Class<T> clazz, ManagerImpl manager)
+ public static <T> SimpleBean<T> createSimpleBean(Class<T> clazz, ManagerImpl manager)
{
- return new SimpleBean<T>(createSimpleModel(clazz, manager), manager);
+ return new SimpleBean<T>(clazz, manager);
}
public static <T> EnterpriseBean<T> createEnterpriseBean(Class<T> clazz, ManagerImpl manager)
{
- return new EnterpriseBean<T>(createEnterpriseBeanModel(clazz, manager), manager);
+ return new EnterpriseBean<T>(clazz, manager);
}
- public static <T> SimpleBeanModel<T> createSimpleModel(Class<T> clazz, ManagerImpl manager)
+ public static <T> ProducerMethodBean<T> createProducerMethodBean(Class<T> type, Method method, ManagerImpl manager, AbstractClassBean<?> declaringBean)
{
- return new SimpleBeanModel<T>(new SimpleAnnotatedClass<T>(clazz), null, manager);
+ return new ProducerMethodBean<T>(method, declaringBean, manager);
}
- public static <T> SimpleBeanModel<T> createSimpleModel(Class<T> clazz, AnnotatedClass<T> xmlAnnotatedType, ManagerImpl manager)
- {
- return new SimpleBeanModel<T>(new SimpleAnnotatedClass<T>(clazz), xmlAnnotatedType, manager);
- }
-
- private static <T> EnterpriseBeanModel<T> createEnterpriseBeanModel(Class<T> clazz, ManagerImpl manager)
- {
- return new EnterpriseBeanModel<T>(new SimpleAnnotatedClass<T>(clazz), null, manager);
- }
-
- private static <T> EnterpriseBeanModel<T> createEnterpriseBeanModel(Class<T> clazz, AnnotatedClass<T> xmlAnnotatedType, ManagerImpl manager)
- {
- return new EnterpriseBeanModel<T>(new SimpleAnnotatedClass<T>(clazz), xmlAnnotatedType, manager);
- }
-
- public static <T> ProducerMethodBean<T> createProducerMethodBean(Class<T> type, Method method, ManagerImpl manager, AbstractBean<?> declaringBean)
- {
- return new ProducerMethodBean<T>(createProducerMethodBeanModel(type, method, null, manager, declaringBean), manager);
- }
-
- public static <T> ProducerMethodBean<T> createProducerMethodBean(Class<T> type, Method method, ManagerImpl manager)
- {
- return createProducerMethodBean(type, method, manager, null);
- }
-
- private static <T> ProducerMethodBeanModel<T> createProducerMethodBeanModel(Class<T> type, Method method, ManagerImpl manager)
- {
- return createProducerMethodBeanModel(type, method, null, manager);
- }
-
- private static <T> ProducerMethodBeanModel<T> createProducerMethodBeanModel(Class<T> type, Method method, AnnotatedMethod<T> xmlAnnotatedMethod, ManagerImpl manager, AbstractBean<?> declaringBean)
- {
- return new ProducerMethodBeanModel<T>(new SimpleAnnotatedMethod<T>(method), xmlAnnotatedMethod, manager, declaringBean);
- }
-
- @Deprecated
- public static <T> ProducerMethodBeanModel<T> createProducerMethodBeanModel(Class<T> type, Method method, AnnotatedMethod<T> xmlAnnotatedMethod, ManagerImpl manager)
- {
- return createProducerMethodBeanModel(type, method, xmlAnnotatedMethod, manager, null);
- }
-
- @Deprecated
- public static <T> AnnotatedClass<T> getEmptyAnnotatedType(Class<T> type)
- {
- return new SimpleAnnotatedClass<T>(type, new HashMap<Class<? extends Annotation>, Annotation>());
- }
-
-
-
}
15 years, 5 months
[webbeans-commits] Webbeans SVN: r284 - in ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans: bean and 6 other directories.
by webbeans-commits@lists.jboss.org
Author: pete.muir(a)jboss.org
Date: 2008-11-09 02:52:05 -0500 (Sun, 09 Nov 2008)
New Revision: 284
Added:
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/bean/MergedStereotypes.java
ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/bean/XmlSimpleBean.java
ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/impl/ForwardingInjectableMethod.java
ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/impl/ForwardingInjectableParameter.java
ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/impl/Injectable.java
ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/impl/InjectableField.java
ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/impl/InjectableMethod.java
ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/impl/InjectableParameter.java
ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/impl/InjectableWrapper.java
ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/impl/Invokable.java
ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/impl/ResolverInjectable.java
Removed:
ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/injectable/BeanConstructor.java
ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/injectable/EnterpriseConstructor.java
ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/injectable/ForwardingInjectableMethod.java
ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/injectable/ForwardingInjectableParameter.java
ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/injectable/Injectable.java
ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/injectable/InjectableField.java
ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/injectable/InjectableMethod.java
ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/injectable/InjectableParameter.java
ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/injectable/InjectableWrapper.java
ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/injectable/Invokable.java
ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/injectable/JMSConstructor.java
ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/injectable/MethodConstructor.java
ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/injectable/ResolverInjectable.java
ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/injectable/SimpleConstructor.java
ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/model/MergedStereotypesModel.java
ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/model/bean/
Modified:
ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/ManagerImpl.java
ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/ModelManager.java
ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/ResolutionManager.java
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
ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/bean/ProducerMethodBean.java
ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/bean/SimpleBean.java
ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/event/ObserverImpl.java
ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/exceptions/TypesafeResolutionLocation.java
ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/AnnotatedConstructor.java
ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/AnnotatedField.java
ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/AnnotatedItem.java
ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/AnnotatedMethod.java
ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/AnnotatedParameter.java
ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/impl/AbstractAnnotatedItem.java
ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/impl/AbstractAnnotatedMember.java
ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/impl/AbstractAnnotatedType.java
ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/impl/SimpleAnnotatedConstructor.java
ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/impl/SimpleAnnotatedField.java
ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/impl/SimpleAnnotatedItem.java
ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/impl/SimpleAnnotatedMethod.java
ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/impl/SimpleAnnotatedParameter.java
ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/model/AnnotationModel.java
ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/model/BindingTypeModel.java
Log:
Refactor to remove *Model and *Constructor and xmlAnnotatedItem, part 1
Modified: ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/ManagerImpl.java
===================================================================
--- ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/ManagerImpl.java 2008-11-08 18:02:13 UTC (rev 283)
+++ ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/ManagerImpl.java 2008-11-09 07:52:05 UTC (rev 284)
@@ -37,11 +37,8 @@
import org.jboss.webbeans.event.EventBus;
import org.jboss.webbeans.exceptions.NameResolutionLocation;
import org.jboss.webbeans.exceptions.TypesafeResolutionLocation;
-import org.jboss.webbeans.injectable.Injectable;
-import org.jboss.webbeans.injectable.ResolverInjectable;
-import org.jboss.webbeans.introspector.AnnotatedClass;
-import org.jboss.webbeans.introspector.impl.SimpleAnnotatedClass;
-import org.jboss.webbeans.model.bean.SimpleBeanModel;
+import org.jboss.webbeans.introspector.impl.Injectable;
+import org.jboss.webbeans.introspector.impl.ResolverInjectable;
import org.jboss.webbeans.util.ClientProxy;
import org.jboss.webbeans.util.ProxyPool;
import org.jboss.webbeans.util.Reflections;
@@ -99,8 +96,7 @@
this.proxyPool = new ProxyPool(this);
this.decorators = new HashSet<Decorator>();
this.interceptors = new HashSet<Interceptor>();
- SimpleAnnotatedClass<DefaultEnterpriseBeanLookup> sc = new SimpleAnnotatedClass<DefaultEnterpriseBeanLookup>(DefaultEnterpriseBeanLookup.class, new HashMap<Class<? extends Annotation>, Annotation>());
- addBean( new SimpleBean<DefaultEnterpriseBeanLookup>( new SimpleBeanModel<DefaultEnterpriseBeanLookup>(sc, null, this), this ) );
+ addBean( new SimpleBean<DefaultEnterpriseBeanLookup>( DefaultEnterpriseBeanLookup.class, this ) );
}
protected void initEnabledDeploymentTypes(List<Class<? extends Annotation>> enabledDeploymentTypes)
Modified: ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/ModelManager.java
===================================================================
--- ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/ModelManager.java 2008-11-08 18:02:13 UTC (rev 283)
+++ ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/ModelManager.java 2008-11-09 07:52:05 UTC (rev 284)
@@ -8,7 +8,6 @@
import org.jboss.webbeans.model.BindingTypeModel;
import org.jboss.webbeans.model.ScopeModel;
import org.jboss.webbeans.model.StereotypeModel;
-import org.jboss.webbeans.model.bean.BeanModel;
import com.google.common.collect.ForwardingMap;
@@ -85,8 +84,6 @@
private Map<Class<? extends Annotation>, StereotypeModel<?>> stereotypes = new HashMap<Class<? extends Annotation>, StereotypeModel<?>>();
- private Map<Class<?>, BeanModel<?, ?>> beanModels = new HashMap<Class<?>, BeanModel<?,?>>();
-
private ScopeModelMap scopes = new ScopeModelMap();
private BindingTypeModelMap bindingTypes = new BindingTypeModelMap();
@@ -102,16 +99,6 @@
return stereotypes.get(annotationType);
}
- public void addBeanModel(BeanModel<?, ?> beanModel)
- {
- beanModels.put(beanModel.getType(), beanModel);
- }
-
- public BeanModel<?, ?> getBeanModel(Class<?> clazz)
- {
- return beanModels.get(clazz);
- }
-
public <T extends Annotation> ScopeModel<T> getScopeModel(Class<T> scopeType)
{
return scopes.putIfAbsent(scopeType);
Modified: ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/ResolutionManager.java
===================================================================
--- ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/ResolutionManager.java 2008-11-08 18:02:13 UTC (rev 283)
+++ ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/ResolutionManager.java 2008-11-09 07:52:05 UTC (rev 284)
@@ -13,7 +13,7 @@
import javax.webbeans.NullableDependencyException;
import javax.webbeans.manager.Bean;
-import org.jboss.webbeans.injectable.Injectable;
+import org.jboss.webbeans.introspector.impl.Injectable;
import org.jboss.webbeans.util.ListComparator;
import com.google.common.collect.ForwardingMap;
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 2008-11-08 18:02:13 UTC (rev 283)
+++ ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/bean/AbstractBean.java 2008-11-09 07:52:05 UTC (rev 284)
@@ -1,98 +1,463 @@
package org.jboss.webbeans.bean;
import java.lang.annotation.Annotation;
+import java.lang.reflect.ParameterizedType;
+import java.lang.reflect.Type;
+import java.util.Arrays;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Map;
import java.util.Set;
+import javax.webbeans.BindingType;
+import javax.webbeans.DefinitionException;
+import javax.webbeans.Dependent;
+import javax.webbeans.DeploymentType;
+import javax.webbeans.Named;
+import javax.webbeans.Production;
+import javax.webbeans.ScopeType;
+import javax.webbeans.Specializes;
+import javax.webbeans.Standard;
+import javax.webbeans.Stereotype;
import javax.webbeans.manager.Bean;
import org.jboss.webbeans.ManagerImpl;
-import org.jboss.webbeans.model.MergedStereotypesModel;
-import org.jboss.webbeans.model.bean.BeanModel;
+import org.jboss.webbeans.bindings.CurrentAnnotationLiteral;
+import org.jboss.webbeans.ejb.DefaultEnterpriseBeanLookup;
+import org.jboss.webbeans.introspector.AnnotatedItem;
+import org.jboss.webbeans.introspector.impl.Injectable;
+import org.jboss.webbeans.introspector.impl.InjectableMethod;
+import org.jboss.webbeans.introspector.impl.InjectableParameter;
+import org.jboss.webbeans.log.LogProvider;
+import org.jboss.webbeans.log.Logging;
+import org.jboss.webbeans.util.Reflections;
-public abstract class AbstractBean<T> extends Bean<T>
+public abstract class AbstractBean<T, E> extends Bean<T>
{
+
+ private static Set<Class<?>> STANDARD_WEB_BEAN_CLASSES = new HashSet<Class<?>>(Arrays.asList(DefaultEnterpriseBeanLookup.class));
- public static final String LOGGER_NAME = "bean";
+ public static Class<? extends Annotation> getDeploymentType(List<Class<? extends Annotation>> enabledDeploymentTypes, Map<Class<? extends Annotation>, Annotation> possibleDeploymentTypes)
+ {
+ for (int i = (enabledDeploymentTypes.size() - 1); i > 0; i--)
+ {
+ if (possibleDeploymentTypes.containsKey((enabledDeploymentTypes.get(i))))
+ {
+ return enabledDeploymentTypes.get(i);
+ }
+ }
+ return null;
+ }
- protected ManagerImpl manager;
-
+ // Logger
+ private LogProvider log = Logging.getLogProvider(AbstractBean.class);
+
+ // Reference to WBRI manager
+ private ManagerImpl manager;
+ private Set<Annotation> bindingTypes;
+ protected String name;
+ protected Class<? extends Annotation> scopeType;
+ private MergedStereotypes<T, E> mergedStereotypes;
+ protected Class<? extends Annotation> deploymentType;
+ protected Class<T> type;
+ protected InjectableMethod<?> removeMethod;
+ protected Set<Class<?>> apiTypes;
+ protected Set<Injectable<?, ?>> injectionPoints;
+
+ private boolean primitive;
+
+ // Cached values
+ private Type declaredBeanType;
+
public AbstractBean(ManagerImpl manager)
{
super(manager);
this.manager = manager;
}
- protected void bindInterceptors()
+ protected void init()
{
- // TODO
+ mergedStereotypes = new MergedStereotypes<T, E>(getAnnotatedItem().getAnnotations(Stereotype.class), manager);
+ initType();
+ initPrimitive();
+ log.debug("Building Web Bean bean metadata for " + getType());
+ initBindingTypes();
+ initName();
+ initDeploymentType();
+ checkDeploymentType();
+ initScopeType();
+ initApiTypes();
}
- protected void bindDecorators()
+ protected void initApiTypes()
{
- // TODO
+ apiTypes = getTypeHierachy(getType());
}
+
+ protected void initBindingTypes()
+ {
+
+ this.bindingTypes = new HashSet<Annotation>();
+ if (isDefinedInXml())
+ {
+ boolean xmlSpecialization = false;
+ Set<Annotation> xmlBindingTypes = null;
+ this.bindingTypes.addAll(xmlBindingTypes);
+ if (xmlSpecialization)
+ {
+ this.bindingTypes.addAll(bindingTypes);
+ log.trace("Using binding types " + this.bindingTypes + " specified in XML and specialized type");
+ }
+ else
+ {
+ log.trace("Using binding types " + this.bindingTypes + " specified in XML");
+ }
+ return;
+ }
+ else if (!mergedStereotypes.isDeclaredInXml())
+ {
+ boolean specialization = getAnnotatedItem().isAnnotationPresent(Specializes.class);
+ this.bindingTypes.addAll(getAnnotatedItem().getAnnotations(BindingType.class));
+ if (specialization)
+ {
+ this.bindingTypes.addAll(getSpecializedType().getBindingTypes());
+ log.trace("Using binding types " + bindingTypes + " specified by annotations and specialized supertype");
+ }
+ else if (bindingTypes.size() == 0)
+ {
+ log.trace("Adding default @Current binding type");
+ this.bindingTypes.add(new CurrentAnnotationLiteral());
+ }
+ else
+ {
+ log.trace("Using binding types " + bindingTypes + " specified by annotations");
+ }
+ return;
+ }
+ }
+ protected void initDeploymentType()
+ {
+ if (isDefinedInXml())
+ {
+ Set<Annotation> xmlDeploymentTypes = null;
+ if (xmlDeploymentTypes.size() > 1)
+ {
+ throw new RuntimeException("At most one deployment type may be specified (" + xmlDeploymentTypes + " are specified)");
+ }
+
+ if (xmlDeploymentTypes.size() == 1)
+ {
+ this.deploymentType = xmlDeploymentTypes.iterator().next().annotationType();
+ log.trace("Deployment type " + deploymentType + " specified in XML");
+ return;
+ }
+ }
+ else
+ {
+ Set<Annotation> deploymentTypes = getAnnotatedItem().getAnnotations(DeploymentType.class);
+
+ if (deploymentTypes.size() > 1)
+ {
+ throw new DefinitionException("At most one deployment type may be specified (" + deploymentTypes + " are specified) on " + getAnnotatedItem().toString());
+ }
+ if (deploymentTypes.size() == 1)
+ {
+ this.deploymentType = deploymentTypes.iterator().next().annotationType();
+ log.trace("Deployment type " + deploymentType + " specified by annotation");
+ return;
+ }
+
+ if (getMergedStereotypes().getPossibleDeploymentTypes().size() > 0)
+ {
+ this.deploymentType = getDeploymentType(manager.getEnabledDeploymentTypes(), getMergedStereotypes().getPossibleDeploymentTypes());
+ log.trace("Deployment type " + deploymentType + " specified by stereotype");
+ return;
+ }
+ }
+
+ this.deploymentType = Production.class;
+ log.trace("Using default @Production deployment type");
+ return;
+ }
+
+ protected void initInjectionPoints()
+ {
+ injectionPoints = new HashSet<Injectable<?,?>>();
+ if (removeMethod != null)
+ {
+ for (InjectableParameter<?> injectable : removeMethod.getParameters())
+ {
+ injectionPoints.add(injectable);
+ }
+ }
+ }
+
+ protected void initName()
+ {
+ boolean beanNameDefaulted = false;
+ if (isDefinedInXml())
+ {
+ boolean xmlSpecialization = false;
+ if (xmlSpecialization)
+ {
+ throw new DefinitionException("Name specified for specialized bean (declared in XML)");
+ }
+ String xmlName = "";
+ if ("".equals(xmlName))
+ {
+ log.trace("Using default name (specified in XML)");
+ beanNameDefaulted = true;
+ }
+ else
+ {
+ log.trace("Using name " + xmlName + " specified in XML");
+ this.name = xmlName;
+ return;
+ }
+ }
+ else
+ {
+ boolean specialization = getAnnotatedItem().isAnnotationPresent(Specializes.class);
+ if (getAnnotatedItem().isAnnotationPresent(Named.class))
+ {
+ if (specialization)
+ {
+ throw new DefinitionException("Name specified for specialized bean");
+ }
+ String javaName = getAnnotatedItem().getAnnotation(Named.class).value();
+ if ("".equals(javaName))
+ {
+ log.trace("Using default name (specified by annotations)");
+ beanNameDefaulted = true;
+ }
+ else
+ {
+ log.trace("Using name " + javaName + " specified by annotations");
+ this.name = javaName;
+ return;
+ }
+ }
+ else if (specialization)
+ {
+ this.name = getSpecializedType().getName();
+ log.trace("Using supertype name");
+ return;
+ }
+ }
+
+ if (beanNameDefaulted || getMergedStereotypes().isBeanNameDefaulted())
+ {
+ this.name = getDefaultName();
+ return;
+ }
+ }
+
+ protected void initPrimitive()
+ {
+ this.primitive = Reflections.isPrimitive(getType());
+ }
+
+ /**
+ * Return the scope of the bean
+ */
+ protected void initScopeType()
+ {
+ if (isDefinedInXml())
+ {
+ Set<Class<? extends Annotation>> scopeTypes = null;
+ if (scopeTypes.size() > 1)
+ {
+ throw new DefinitionException("At most one scope may be specified in XML");
+ }
+
+ if (scopeTypes.size() == 1)
+ {
+ this.scopeType = scopeTypes.iterator().next();
+ log.trace("Scope " + scopeType + " specified in XML");
+ return;
+ }
+ }
+ else
+ {
+ if (getAnnotatedItem().getAnnotations(ScopeType.class).size() > 1)
+ {
+ throw new DefinitionException("At most one scope may be specified");
+ }
+
+ if (getAnnotatedItem().getAnnotations(ScopeType.class).size() == 1)
+ {
+ this.scopeType = getAnnotatedItem().getAnnotations(ScopeType.class).iterator().next().annotationType();
+ log.trace("Scope " + scopeType + " specified b annotation");
+ return;
+ }
+ }
+
+ if (getMergedStereotypes().getPossibleScopeTypes().size() == 1)
+ {
+ this.scopeType = getMergedStereotypes().getPossibleScopeTypes().iterator().next().annotationType();
+ log.trace("Scope " + scopeType + " specified by stereotype");
+ return;
+ }
+ else if (getMergedStereotypes().getPossibleScopeTypes().size() > 1)
+ {
+ throw new RuntimeException("All stereotypes must specify the same scope OR a scope must be specified on the bean");
+ }
+ this.scopeType = Dependent.class;
+ log.trace("Using default @Dependent scope");
+ }
+
+ protected abstract void initType();
+
+ protected void checkDeploymentType()
+ {
+ if (deploymentType == null)
+ {
+ throw new RuntimeException("type: " + getType() + " must specify a deployment type");
+ }
+ else if (deploymentType.equals(Standard.class) && !STANDARD_WEB_BEAN_CLASSES.contains(getAnnotatedItem().getType()))
+ {
+ throw new DefinitionException(getAnnotatedItem() + " cannot have deployment type @Standard");
+ }
+ }
+
@Override
public void destroy(T instance)
{
// TODO Auto-generated method stub
-
}
+
+ protected void bindDecorators()
+ {
+ // TODO
+ }
+
+ protected void bindInterceptors()
+ {
+ // TODO
+ }
+
+ protected abstract AnnotatedItem<T, E> getAnnotatedItem();
- @Override
public Set<Annotation> getBindingTypes()
{
- return getModel().getBindingTypes();
+ return bindingTypes;
}
- @Override
+ protected Type getDeclaredBeanType()
+ {
+ if (declaredBeanType == null)
+ {
+ Type type = getClass();
+ if (type instanceof ParameterizedType)
+ {
+ ParameterizedType parameterizedType = (ParameterizedType) type;
+ if (parameterizedType.getActualTypeArguments().length == 1)
+ {
+ declaredBeanType = parameterizedType.getActualTypeArguments()[0];
+ }
+ }
+ }
+ return declaredBeanType;
+ }
+
+ protected abstract String getDefaultName();
+
public Class<? extends Annotation> getDeploymentType()
{
- return getModel().getDeploymentType();
+ return deploymentType;
}
-
+
+ public Set<Injectable<?, ?>> getInjectionPoints()
+ {
+ return injectionPoints;
+ }
+
@Override
+ protected ManagerImpl getManager()
+ {
+ return manager;
+ }
+
+ public MergedStereotypes<T, E> getMergedStereotypes()
+ {
+ return mergedStereotypes;
+ }
+
public String getName()
{
- return getModel().getName();
+ return name;
}
- @Override
+ public InjectableMethod<?> getRemoveMethod()
+ {
+ return removeMethod;
+ }
+
public Class<? extends Annotation> getScopeType()
{
- return getModel().getScopeType();
+ return scopeType;
}
+
+ protected AbstractBean<? extends T, E> getSpecializedType()
+ {
+ throw new UnsupportedOperationException();
+ }
+
+
+ public Class<T> getType()
+ {
+ return type;
+ }
+
+ protected Set<Class<?>> getTypeHierachy(Class<?> clazz)
+ {
+ Set<Class<?>> classes = new HashSet<Class<?>>();
+ if (clazz != null)
+ {
+ classes.add(clazz);
+ classes.addAll(getTypeHierachy(clazz.getSuperclass()));
+ for (Class<?> c : clazz.getInterfaces())
+ {
+ classes.addAll(getTypeHierachy(c));
+ }
+ }
+ return classes;
+ }
+
@Override
public Set<Class<?>> getTypes()
{
- return getModel().getApiTypes();
+ return apiTypes;
}
-
- @Override
- public boolean isNullable()
+
+ public boolean isAssignableFrom(AnnotatedItem<?, ?> annotatedItem)
{
- return !getModel().isPrimitive();
+ return this.getAnnotatedItem().isAssignableFrom(annotatedItem);
}
- @Override
- public boolean isSerializable()
+ protected boolean isDefinedInXml()
{
- // TODO Auto-generated method stub
return false;
}
@Override
- public String toString()
+ public boolean isNullable()
{
- return getModel().toString();
+ return !isPrimitive();
}
- public abstract BeanModel<T, ?> getModel();
+ public boolean isPrimitive()
+ {
+ return primitive;
+ }
- public MergedStereotypesModel<T, ?> getMergedStereotypes()
+ @Override
+ public boolean isSerializable()
{
- return getModel().getMergedStereotypes();
+ // TODO Auto-generated method stub
+ return false;
}
}
Added: 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 (rev 0)
+++ ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/bean/AbstractClassBean.java 2008-11-09 07:52:05 UTC (rev 284)
@@ -0,0 +1,193 @@
+package org.jboss.webbeans.bean;
+
+import java.util.HashSet;
+import java.util.Set;
+
+import javax.webbeans.BindingType;
+import javax.webbeans.DefinitionException;
+import javax.webbeans.Destructor;
+import javax.webbeans.Disposes;
+import javax.webbeans.Initializer;
+import javax.webbeans.Observes;
+import javax.webbeans.Produces;
+
+import org.jboss.webbeans.ManagerImpl;
+import org.jboss.webbeans.introspector.AnnotatedClass;
+import org.jboss.webbeans.introspector.AnnotatedField;
+import org.jboss.webbeans.introspector.AnnotatedMethod;
+import org.jboss.webbeans.introspector.impl.InjectableField;
+import org.jboss.webbeans.introspector.impl.InjectableMethod;
+import org.jboss.webbeans.introspector.impl.SimpleAnnotatedClass;
+import org.jboss.webbeans.log.LogProvider;
+import org.jboss.webbeans.log.Logging;
+import org.jboss.webbeans.util.Reflections;
+import org.jboss.webbeans.util.Strings;
+
+public abstract class AbstractClassBean<T> extends AbstractBean<T, Class<T>>
+{
+
+ private static final LogProvider log = Logging.getLogProvider(AbstractClassBean.class);
+
+ private AnnotatedClass<T> annotatedItem;
+ private Set<InjectableField<?>> injectableFields;
+ private Set<InjectableMethod<Object>> initializerMethods;
+ protected boolean annotationDefined;
+
+ /**
+ *
+ * @param annotatedItem Annotations read from java classes
+ * @param xmlAnnotatedItem Annotations read from XML
+ * @param manager
+ */
+ public AbstractClassBean(Class<T> type, ManagerImpl manager)
+ {
+ super(manager);
+ this.annotatedItem = new SimpleAnnotatedClass<T>(type);
+ }
+
+ @Override
+ protected void init()
+ {
+ super.init();
+ checkRequiredTypesImplemented();
+ checkScopeAllowed();
+ checkBeanImplementation();
+ // TODO Interceptors
+ initInitializerMethods();
+ }
+
+ protected void initType()
+ {
+ if (isDefinedInXml())
+ {
+ log.trace("Bean type specified in Java");
+ }
+ else
+ {
+ log.trace("Bean type specified in Java");
+ this.type = getAnnotatedItem().getType();
+ }
+ }
+
+ @Override
+ protected void initInjectionPoints()
+ {
+ super.initInjectionPoints();
+ injectableFields = new HashSet<InjectableField<?>>();
+ for (AnnotatedField<Object> annotatedField : annotatedItem.getMetaAnnotatedFields(BindingType.class))
+ {
+ if (annotatedField.isStatic())
+ {
+ throw new DefinitionException("Don't place binding annotations on static fields " + annotatedField);
+ }
+ if (annotatedField.isFinal())
+ {
+ throw new DefinitionException("Don't place binding annotations on final fields " + annotatedField);
+ }
+ InjectableField<?> injectableField = new InjectableField<Object>(annotatedField);
+ injectableFields.add(injectableField);
+ super.injectionPoints.add(injectableField);
+ }
+ }
+
+ protected void initInitializerMethods()
+ {
+ if (isDefinedInXml())
+ {
+
+ }
+ else
+ {
+ initializerMethods = new HashSet<InjectableMethod<Object>>();
+ for (AnnotatedMethod<Object> annotatedMethod : annotatedItem.getAnnotatedMethods(Initializer.class))
+ {
+ if (annotatedMethod.isStatic())
+ {
+ throw new DefinitionException("Initializer method " + annotatedMethod.toString() + " cannot be static");
+ }
+ else if (annotatedMethod.getAnnotation(Produces.class) != null)
+ {
+ throw new DefinitionException("Initializer method " + annotatedMethod.toString() + " cannot be annotated @Produces");
+ }
+ else if (annotatedMethod.getAnnotation(Destructor.class) != null)
+ {
+ throw new DefinitionException("Initializer method " + annotatedMethod.toString() + " cannot be annotated @Destructor");
+ }
+ else if (annotatedMethod.getAnnotatedParameters(Disposes.class).size() > 0)
+ {
+ throw new DefinitionException("Initializer method " + annotatedMethod.toString() + " cannot have parameters annotated @Disposes");
+ }
+ else if (annotatedMethod.getAnnotatedParameters(Observes.class).size() > 0)
+ {
+ throw new DefinitionException("Initializer method " + annotatedMethod.toString() + " cannot be annotated @Observes");
+ }
+ else
+ {
+ initializerMethods.add(new InjectableMethod<Object>(annotatedMethod));
+ }
+ }
+ }
+ }
+
+ protected void checkRequiredTypesImplemented()
+ {
+ for (Class<?> requiredType : getMergedStereotypes().getRequiredTypes())
+ {
+ log.trace("Checking if required type " + requiredType + " is implemented");
+ if (!requiredType.isAssignableFrom(type))
+ {
+ throw new DefinitionException("Required type " + requiredType + " isn't implemented on " + type);
+ }
+ }
+ }
+
+ /**
+ * Check that the scope type is allowed by the stereotypes on the bean and the bean type
+ * @param type
+ */
+ protected void checkScopeAllowed()
+ {
+ log.trace("Checking if " + getScopeType() + " is allowed for " + type);
+ if (getMergedStereotypes().getSupportedScopes().size() > 0)
+ {
+ if (!getMergedStereotypes().getSupportedScopes().contains(getScopeType()))
+ {
+ throw new DefinitionException("Scope " + getScopeType() + " is not an allowed by the stereotype for " + type);
+ }
+ }
+ }
+
+ protected void checkBeanImplementation()
+ {
+ if (Reflections.isAbstract(getType()))
+ {
+ throw new DefinitionException("Web Bean implementation class " + type + " cannot be declared abstract");
+ }
+ }
+
+ @Override
+ protected AnnotatedClass<T> getAnnotatedItem()
+ {
+ return annotatedItem;
+ }
+
+ @Override
+ protected String getDefaultName()
+ {
+ String name = Strings.decapitalize(getType().getSimpleName());
+ log.trace("Default name of " + type + " is " + name );
+ return name;
+ }
+
+ public Set<InjectableField<?>> getInjectableFields()
+ {
+ return injectableFields;
+ }
+
+ public Set<InjectableMethod<Object>> getInitializerMethods()
+ {
+ return initializerMethods;
+ }
+
+
+}
Property changes on: ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/bean/AbstractClassBean.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
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 2008-11-08 18:02:13 UTC (rev 283)
+++ ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/bean/EnterpriseBean.java 2008-11-09 07:52:05 UTC (rev 284)
@@ -1,69 +1,304 @@
-package org.jboss.webbeans.bean;
-
-import org.jboss.webbeans.ManagerImpl;
-import org.jboss.webbeans.injectable.InjectableField;
-import org.jboss.webbeans.injectable.InjectableMethod;
-import org.jboss.webbeans.model.bean.EnterpriseBeanModel;
-
-public class EnterpriseBean<T> extends AbstractBean<T>
-{
- private EnterpriseBeanModel<T> model;
-
- public EnterpriseBean(EnterpriseBeanModel<T> model, ManagerImpl manager) {
- super(manager);
- this.model = model;
- }
-
- @Override
- public EnterpriseBeanModel<T> getModel()
- {
- return model;
- }
-
- @Override
- public T create()
- {
- T instance = model.getConstructor().invoke(manager);
- bindDecorators();
- bindInterceptors();
- injectEjbAndCommonFields();
- injectBoundFields(instance);
- callInitializers(instance);
- return instance;
- }
-
- @Override
- public void destroy(T instance)
- {
- // TODO Auto-generated method stub
- super.destroy(instance);
- }
-
- protected void callInitializers(T instance)
- {
- for (InjectableMethod<Object> initializer : model.getInitializerMethods())
- {
- initializer.invoke(manager, instance);
- }
- }
-
- protected void injectEjbAndCommonFields()
- {
- // TODO
- }
-
- protected void injectBoundFields(T instance)
- {
- for (InjectableField<?> injectableField : getModel().getInjectableFields())
- {
- injectableField.inject(instance, manager);
- }
- }
-
- public InjectableMethod<?> getRemoveMethod()
- {
- return model.getRemoveMethod();
-
- }
-
-}
+package org.jboss.webbeans.bean;
+
+import java.lang.annotation.Annotation;
+import java.lang.reflect.Method;
+import java.util.ArrayList;
+import java.util.List;
+
+import javax.webbeans.ApplicationScoped;
+import javax.webbeans.Decorator;
+import javax.webbeans.DefinitionException;
+import javax.webbeans.Dependent;
+import javax.webbeans.Destructor;
+import javax.webbeans.Disposes;
+import javax.webbeans.Initializer;
+import javax.webbeans.Interceptor;
+import javax.webbeans.Observes;
+import javax.webbeans.Produces;
+import javax.webbeans.Specializes;
+import javax.webbeans.manager.EnterpriseBeanLookup;
+
+import org.jboss.webbeans.ManagerImpl;
+import org.jboss.webbeans.ejb.EJB;
+import org.jboss.webbeans.ejb.EjbMetaData;
+import org.jboss.webbeans.introspector.impl.InjectableField;
+import org.jboss.webbeans.introspector.impl.InjectableMethod;
+import org.jboss.webbeans.introspector.impl.InjectableParameter;
+import org.jboss.webbeans.util.Reflections;
+
+public class EnterpriseBean<T> extends AbstractClassBean<T>
+{
+
+ private String location;
+
+ private EjbMetaData<T> ejbMetaData;
+
+ public EnterpriseBean(Class<T> type, ManagerImpl container)
+ {
+ super(type, container);
+ init();
+ }
+
+ @Override
+ protected void init()
+ {
+ super.init();
+ ejbMetaData = new EjbMetaData<T>(getType());
+ initRemoveMethod();
+ initInjectionPoints();
+ checkEnterpriseBeanTypeAllowed();
+ checkEnterpriseScopeAllowed();
+ checkConflictingRoles();
+ checkSpecialization();
+ }
+
+ @Override
+ protected void initInjectionPoints()
+ {
+ super.initInjectionPoints();
+ if (removeMethod != null)
+ {
+ for (InjectableParameter<?> injectable : removeMethod.getParameters())
+ {
+ injectionPoints.add(injectable);
+ }
+ }
+ }
+
+ protected void checkConflictingRoles()
+ {
+ if (getType().isAnnotationPresent(Interceptor.class))
+ {
+ throw new DefinitionException("Enterprise beans can't be interceptors");
+ }
+ if (getType().isAnnotationPresent(Decorator.class))
+ {
+ throw new DefinitionException("Enterprise beans can't be decorators");
+ }
+ }
+
+ /**
+ * Check that the scope type is allowed by the stereotypes on the bean and
+ * the bean type
+ *
+ * @param type
+ */
+ protected void checkEnterpriseScopeAllowed()
+ {
+ if (getEjbMetaData().isStateless()
+ && !getScopeType().equals(Dependent.class))
+ {
+ throw new DefinitionException("Scope " + getScopeType()
+ + " is not allowed on stateless enterpise beans for "
+ + getType()
+ + ". Only @Dependent is allowed on stateless enterprise beans");
+ }
+ if (getEjbMetaData().isSingleton()
+ && (!(getScopeType().equals(Dependent.class) || getScopeType()
+ .equals(ApplicationScoped.class))))
+ {
+ throw new DefinitionException(
+ "Scope "
+ + getScopeType()
+ + " is not allowed on singleton enterpise beans for "
+ + getType()
+ + ". Only @Dependent or @ApplicationScoped is allowed on singleton enterprise beans");
+ }
+ }
+
+ private void checkSpecialization()
+ {
+ if (!getType().isAnnotationPresent(Specializes.class))
+ {
+ return;
+ }
+ if (annotationDefined)
+ {
+ if (!isEJB(getType().getSuperclass()))
+ {
+ throw new DefinitionException("Annotation defined specializing EJB must have EJB superclass");
+ }
+ } else
+ {
+ if (!isEJB(getType()))
+ {
+ throw new DefinitionException("XML defined specializing EJB must have annotation defined EJB implementation");
+ }
+ }
+ }
+
+// TODO logging
+ protected void initRemoveMethod()
+ {
+ if (getEjbMetaData().isStateful())
+ {
+ if (getEjbMetaData().getRemoveMethods().size() == 1)
+ {
+// super.removeMethod = new InjectableMethod<Object>(getEjbMetaData().getRemoveMethods().get(0));
+ super.removeMethod = checkRemoveMethod(getEjbMetaData().getRemoveMethods().get(0));
+ }
+ else if (getEjbMetaData().getRemoveMethods().size() > 1)
+ {
+ List<Method> possibleRemoveMethods = new ArrayList<Method>();
+ for (Method removeMethod : getEjbMetaData().getRemoveMethods())
+ {
+ if (removeMethod.isAnnotationPresent(Destructor.class))
+ {
+ possibleRemoveMethods.add(removeMethod);
+ }
+ }
+ if (possibleRemoveMethods.size() == 1)
+ {
+ super.removeMethod = checkRemoveMethod(possibleRemoveMethods.get(0));
+ }
+ else if (possibleRemoveMethods.size() > 1)
+ {
+ throw new DefinitionException("Multiple remove methods are annotated @Destructor for " + getType());
+ }
+ else if (possibleRemoveMethods.size() == 0)
+ {
+ throw new RuntimeException("Multiple remove methods are declared, and none are annotated @Destructor for " + getType());
+ }
+ }
+ else if (getEjbMetaData().getRemoveMethods().isEmpty() && !getScopeType().equals(Dependent.class))
+ {
+ throw new DefinitionException("No remove methods declared for non-dependent scoped bean " + getType());
+ }
+ }
+ else
+ {
+ List<Method> destroysMethods = Reflections.getMethods(getType(), Destructor.class);
+ if (destroysMethods.size() > 0)
+ {
+ throw new DefinitionException("Only stateful enterprise beans can have methods annotated @Destructor; " + getType() + " is not a stateful enterprise bean");
+ }
+ }
+ }
+
+
+ private InjectableMethod<?> checkRemoveMethod(Method method)
+ {
+ if (method.isAnnotationPresent(Destructor.class) && !method.isAnnotationPresent(EJB.REMOVE_ANNOTATION)) {
+ throw new DefinitionException("Methods marked @Destructor must also be marked @Remove on " + method.getName());
+ }
+ if (method.isAnnotationPresent(Initializer.class)) {
+ throw new DefinitionException("Remove methods cannot be initializers on " + method.getName());
+ }
+ if (method.isAnnotationPresent(Produces.class)) {
+ throw new DefinitionException("Remove methods cannot be producers on " + method.getName());
+ }
+ if (hasParameterAnnotation(method.getParameterAnnotations(), Disposes.class)) {
+ throw new DefinitionException("Remove method can't have @Disposes annotated parameters on " + method.getName());
+ }
+ if (hasParameterAnnotation(method.getParameterAnnotations(), Observes.class)) {
+ throw new DefinitionException("Remove method can't have @Observes annotated parameters on " + method.getName());
+ }
+ return new InjectableMethod<Object>(method);
+ }
+
+ @Override
+ public T create()
+ {
+ T instance = (T) getManager().getInstanceByType(EnterpriseBeanLookup.class).lookup(ejbMetaData.getEjbName());
+ bindDecorators();
+ bindInterceptors();
+ injectEjbAndCommonFields();
+ injectBoundFields(instance);
+ callInitializers(instance);
+ return instance;
+ }
+
+ @Override
+ public void destroy(T instance)
+ {
+ super.destroy(instance);
+ }
+
+ protected void callInitializers(T instance)
+ {
+ for (InjectableMethod<Object> initializer : getInitializerMethods())
+ {
+ initializer.invoke(getManager(), instance);
+ }
+ }
+
+ protected void injectEjbAndCommonFields()
+ {
+ // TODO
+ }
+
+ protected void injectBoundFields(T instance)
+ {
+ for (InjectableField<?> injectableField : getInjectableFields())
+ {
+ injectableField.inject(instance, getManager());
+ }
+ }
+
+ public String getLocation()
+ {
+ if (location == null)
+ {
+ location = "type: Enterprise Bean; declaring class: " + getType() +";";
+ }
+ return location;
+ }
+
+ //FIXME move up?
+ private boolean hasParameterAnnotation(Annotation[][] parameterAnnotations, Class<? extends Annotation> clazz)
+ {
+ for (Annotation[] parameter : parameterAnnotations) {
+ for (Annotation annotation : parameter) {
+ if (annotation.annotationType() == clazz) {
+ return true;
+ }
+ }
+ }
+ return false;
+ }
+
+ @Override
+ protected AbstractBean<? extends T, Class<T>> getSpecializedType()
+ {
+ //TODO: lots of validation!
+ Class<?> superclass = getAnnotatedItem().getType().getSuperclass();
+ if ( superclass!=null )
+ {
+ return new EnterpriseBean(superclass, getManager());
+ }
+ else {
+ throw new RuntimeException();
+ }
+
+ }
+
+ private boolean isEJB(Class<? super T> clazz)
+ {
+ return clazz.isAnnotationPresent(EJB.SINGLETON_ANNOTATION)
+ || clazz.isAnnotationPresent(EJB.STATEFUL_ANNOTATION)
+ || clazz.isAnnotationPresent(EJB.STATELESS_ANNOTATION);
+ }
+
+ private void checkEnterpriseBeanTypeAllowed()
+ {
+ if (getEjbMetaData().isMessageDriven())
+ {
+ throw new DefinitionException(
+ "Message Driven Beans can't be Web Beans");
+ }
+ }
+
+ protected EjbMetaData<T> getEjbMetaData()
+ {
+ return ejbMetaData;
+ }
+
+ @Override
+ public String toString()
+ {
+ return "EnterpriseBean[" + getType().getName() + "]";
+ }
+
+
+
+}
Added: 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 (rev 0)
+++ ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/bean/EventBean.java 2008-11-09 07:52:05 UTC (rev 284)
@@ -0,0 +1,121 @@
+package org.jboss.webbeans.bean;
+
+import java.lang.reflect.Field;
+
+import javax.webbeans.Dependent;
+import javax.webbeans.Standard;
+
+import org.jboss.webbeans.ManagerImpl;
+import org.jboss.webbeans.event.EventImpl;
+import org.jboss.webbeans.introspector.AnnotatedField;
+import org.jboss.webbeans.introspector.AnnotatedItem;
+import org.jboss.webbeans.introspector.impl.SimpleAnnotatedField;
+import org.jboss.webbeans.log.LogProvider;
+import org.jboss.webbeans.log.Logging;
+
+public class EventBean<T> extends AbstractBean<EventImpl<T>, Field>
+{
+
+ private static LogProvider log = Logging.getLogProvider(EventBean.class);
+
+ private String location;
+ private AnnotatedField<EventImpl<T>> annotatedItem;
+
+ public EventBean(Field field, ManagerImpl manager)
+ {
+ super(manager);
+ this.annotatedItem = new SimpleAnnotatedField<EventImpl<T>>(field);
+ init();
+ }
+
+ /**
+ * Caches the constructor for this type of bean to avoid future reflections during use.
+ */
+ @SuppressWarnings("unchecked")
+ private void initConstructor()
+ {
+ try
+ {
+ //constructor = new SimpleConstructor<T>((Constructor<T>) EventImpl.class.getConstructor((Class[])null));
+ } catch (Exception e)
+ {
+ log.warn("Unable to get constructor for build-in Event implementation", e);
+ }
+ }
+
+
+ /*public BeanConstructor<T> getConstructor()
+ {
+ return constructor;
+ }*/
+
+ public String getLocation()
+ {
+ if (location == null)
+ {
+ location = "type: Event Bean;";
+ }
+ return location;
+ }
+
+ @Override
+ public String toString()
+ {
+ return "EventBean[" + getType().getName() + "]";
+ }
+
+ @Override
+ protected void initType()
+ {
+ log.trace("Bean type specified in Java");
+ this.type = annotatedItem.getType();
+ }
+
+ @Override
+ protected AnnotatedItem<EventImpl<T>, Field> getAnnotatedItem()
+ {
+ return annotatedItem;
+ }
+
+ @Override
+ protected String getDefaultName()
+ {
+ // No name per 7.4
+ return null;
+ }
+
+ @Override
+ protected void initDeploymentType()
+ {
+ // This is always @Standard per 7.4
+ this.deploymentType = Standard.class;
+ }
+
+ @Override
+ protected void checkDeploymentType()
+ {
+ // No - op
+ }
+
+ @Override
+ protected void initName()
+ {
+ // No name per 7.4
+ this.name = null;
+ }
+
+ @Override
+ protected void initScopeType()
+ {
+ // This is always @Dependent per 7.4
+ this.scopeType = Dependent.class;
+ }
+
+ @Override
+ public EventImpl<T> create()
+ {
+ return new EventImpl<T>();
+ }
+
+
+}
Property changes on: ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/bean/EventBean.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Copied: ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/bean/MergedStereotypes.java (from rev 272, ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/model/MergedStereotypesModel.java)
===================================================================
--- ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/bean/MergedStereotypes.java (rev 0)
+++ ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/bean/MergedStereotypes.java 2008-11-09 07:52:05 UTC (rev 284)
@@ -0,0 +1,92 @@
+package org.jboss.webbeans.bean;
+
+import java.lang.annotation.Annotation;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Map;
+import java.util.Set;
+
+import org.jboss.webbeans.ManagerImpl;
+import org.jboss.webbeans.model.StereotypeModel;
+
+/**
+ * Meta model for the merged stereotype for a bean
+ * @author pmuir
+ *
+ */
+public class MergedStereotypes<T, E>
+{
+
+ private Map<Class<? extends Annotation>, Annotation> possibleDeploymentTypes;
+ private Set<Annotation> possibleScopeTypes;
+ private boolean beanNameDefaulted;
+ private Set<Class<?>> requiredTypes;
+ private Set<Class<? extends Annotation>> supportedScopes;
+
+ public MergedStereotypes(Set<Annotation> stereotypeAnnotations, ManagerImpl manager)
+ {
+ possibleDeploymentTypes = new HashMap<Class<? extends Annotation>, Annotation>();
+ possibleScopeTypes = new HashSet<Annotation>();
+ requiredTypes = new HashSet<Class<?>>();
+ supportedScopes = new HashSet<Class<? extends Annotation>>();
+ merge(stereotypeAnnotations, manager);
+ }
+
+ protected void merge(Set<Annotation> stereotypeAnnotations, ManagerImpl manager)
+ {
+ for (Annotation stereotypeAnnotation : stereotypeAnnotations)
+ {
+ // Retrieve and merge all metadata from stereotypes
+ StereotypeModel<?> stereotype = manager.getModelManager().getStereotype(stereotypeAnnotation.annotationType());
+ if (stereotype == null)
+ {
+ throw new NullPointerException("Stereotype " + stereotypeAnnotation + " not registered with container");
+ }
+ if (stereotype.getDefaultDeploymentType() != null)
+ {
+ possibleDeploymentTypes.put(stereotype.getDefaultDeploymentType().annotationType(), stereotype.getDefaultDeploymentType());
+ }
+ if (stereotype.getDefaultScopeType() != null)
+ {
+ possibleScopeTypes.add(stereotype.getDefaultScopeType());
+ }
+ requiredTypes.addAll(stereotype.getRequiredTypes());
+ supportedScopes.addAll(stereotype.getSupportedScopes());
+ if (stereotype.isBeanNameDefaulted())
+ {
+ beanNameDefaulted = true;
+ }
+ }
+ }
+
+ public Map<Class<? extends Annotation>, Annotation> getPossibleDeploymentTypes()
+ {
+ return possibleDeploymentTypes;
+ }
+
+ public Set<Annotation> getPossibleScopeTypes()
+ {
+ return possibleScopeTypes;
+ }
+
+ public boolean isBeanNameDefaulted()
+ {
+ return beanNameDefaulted;
+ }
+
+ public Set<Class<?>> getRequiredTypes()
+ {
+ return requiredTypes;
+ }
+
+ public Set<Class<? extends Annotation>> getSupportedScopes()
+ {
+ return supportedScopes;
+ }
+
+ public boolean isDeclaredInXml()
+ {
+ return false;
+ }
+
+}
Property changes on: ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/bean/MergedStereotypes.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Modified: ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/bean/ProducerMethodBean.java
===================================================================
--- ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/bean/ProducerMethodBean.java 2008-11-08 18:02:13 UTC (rev 283)
+++ ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/bean/ProducerMethodBean.java 2008-11-09 07:52:05 UTC (rev 284)
@@ -1,39 +1,207 @@
package org.jboss.webbeans.bean;
+import java.lang.annotation.Annotation;
+import java.lang.reflect.Method;
+import java.lang.reflect.Type;
+import java.util.HashSet;
+import java.util.Set;
+
+import javax.webbeans.DefinitionException;
import javax.webbeans.Dependent;
+import javax.webbeans.Destructor;
+import javax.webbeans.Disposes;
import javax.webbeans.IllegalProductException;
+import javax.webbeans.Observes;
import org.jboss.webbeans.ManagerImpl;
-import org.jboss.webbeans.model.bean.ProducerMethodBeanModel;
+import org.jboss.webbeans.introspector.AnnotatedMethod;
+import org.jboss.webbeans.introspector.AnnotatedParameter;
+import org.jboss.webbeans.introspector.impl.InjectableMethod;
+import org.jboss.webbeans.introspector.impl.InjectableParameter;
+import org.jboss.webbeans.introspector.impl.SimpleAnnotatedMethod;
-public class ProducerMethodBean<T> extends AbstractBean<T>
+public class ProducerMethodBean<T> extends AbstractBean<T, Method>
{
- private ProducerMethodBeanModel<T> model;
+ private AnnotatedMethod<T> annotatedMethod;
+ private AbstractClassBean<?> declaringBean;
+
+ // Cached values
+ private String location;
- public ProducerMethodBean(ProducerMethodBeanModel<T> model, ManagerImpl manager)
+ public ProducerMethodBean(Method method, AbstractClassBean<?> declaringBean, ManagerImpl manager)
{
super(manager);
- this.model = model;
+ this.annotatedMethod = new SimpleAnnotatedMethod<T>(method);
+ this.declaringBean = declaringBean;
+ init();
}
@Override
- public ProducerMethodBeanModel<T> getModel()
+ public T create()
{
- return model;
+ T instance = annotatedMethod.invoke(getManager(), getManager().getInstance(getDeclaringBean()));
+ if (instance == null && !getScopeType().equals(Dependent.class))
+ {
+ throw new IllegalProductException("Cannot return null from a non-dependent method");
+ }
+ return instance;
}
@Override
- public T create()
+ protected void init()
{
- T instance = model.getConstructor().invoke(manager, manager.getInstance(model.getDeclaringBean()));
- if (instance == null && !model.getScopeType().equals(Dependent.class))
+ super.init();
+ checkProducerMethod();
+ initRemoveMethod();
+ initInjectionPoints();
+ }
+
+ @Override
+ protected void initInjectionPoints()
+ {
+ super.initInjectionPoints();
+ for (AnnotatedParameter<Object> annotatedParameter : annotatedMethod.getParameters())
{
- throw new IllegalProductException("Cannot return null from a non-dependent method");
+ injectionPoints.add(new InjectableParameter<Object>(annotatedParameter));
}
- return instance;
+ if (removeMethod != null)
+ {
+ for (InjectableParameter<?> injectable : removeMethod.getParameters())
+ {
+ injectionPoints.add(injectable);
+ }
+ }
}
+ @Override
+ protected void initDeploymentType()
+ {
+ super.initDeploymentType();
+ if (getDeploymentType() == null)
+ {
+ deploymentType = declaringBean.getDeploymentType();
+ }
+ }
+
+ protected void checkProducerMethod()
+ {
+ if (getAnnotatedItem().isStatic())
+ {
+ throw new DefinitionException("Producer method cannot be static " + annotatedMethod);
+ }
+ else if (getAnnotatedItem().isAnnotationPresent(Destructor.class))
+ {
+ throw new DefinitionException("Producer method cannot be annotated @Destructor");
+ }
+ else if (getAnnotatedItem().getAnnotatedParameters(Observes.class).size() > 0)
+ {
+ throw new DefinitionException("Producer method cannot have parameter annotated @Observes");
+ }
+ else if (getAnnotatedItem().getAnnotatedParameters(Disposes.class).size() > 0)
+ {
+ throw new DefinitionException("Producer method cannot have parameter annotated @Disposes");
+ }
+ else if (getAnnotatedItem().getActualTypeArguments().length > 0)
+ {
+ for (Type type : getAnnotatedItem().getActualTypeArguments())
+ {
+ if (!(type instanceof Class))
+ {
+ throw new DefinitionException("Producer method cannot return type parameterized with type parameter or wildcard");
+ }
+ }
+ }
+ }
+
+ protected void initRemoveMethod()
+ {
+ Set<Method> disposalMethods = getManager().resolveDisposalMethods(getType(), getBindingTypes().toArray(new Annotation[0]));
+ if (disposalMethods.size() == 1)
+ {
+ removeMethod = new InjectableMethod<Object>(disposalMethods.iterator().next());
+ }
+ else if (disposalMethods.size() > 1)
+ {
+ // TODO List out found disposal methods
+ throw new RuntimeException(getLocation() + "Cannot declare multiple disposal methods for this producer method");
+ }
+ }
+
+ @Override
+ public String toString()
+ {
+ return "ProducerMethodBean[" + getType().getName() + "]";
+ }
+ @Override
+ protected AnnotatedMethod<T> getAnnotatedItem()
+ {
+ return annotatedMethod;
+ }
+
+ @Override
+ protected String getDefaultName()
+ {
+ return annotatedMethod.getPropertyName();
+ }
+
+ @Override
+ protected void initType()
+ {
+ try
+ {
+ if (getAnnotatedItem() != null)
+ {
+ this.type = getAnnotatedItem().getType();
+ }
+ }
+ catch (ClassCastException e)
+ {
+ throw new RuntimeException(getLocation() + " Cannot cast producer method return type " + annotatedMethod.getAnnotatedMethod().getReturnType() + " to bean type " + (getDeclaredBeanType() == null ? " unknown " : getDeclaredBeanType()), e);
+ }
+ }
+ @Override
+ protected void initApiTypes()
+ {
+ if (getType().isArray() || getType().isPrimitive())
+ {
+ super.apiTypes = new HashSet<Class<?>>();
+ super.apiTypes.add(getType());
+ super.apiTypes.add(Object.class);
+ }
+ else if (getType().isInterface())
+ {
+ super.initApiTypes();
+ super.apiTypes.add(Object.class);
+ }
+ else
+ {
+ super.initApiTypes();
+ }
+ }
+
+
+
+ public String getLocation()
+ {
+ if (location == null)
+ {
+ location = "type: Producer Method; declaring class: " + annotatedMethod.getAnnotatedMethod().getDeclaringClass() +"; producer method: " + annotatedMethod.getAnnotatedMethod().toString() + ";";
+ }
+ return location;
+ }
+
+ public InjectableMethod<?> getDisposalMethod()
+ {
+ return removeMethod;
+ }
+
+ public AbstractClassBean<?> getDeclaringBean()
+ {
+ return declaringBean;
+ }
+
+
}
Modified: ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/bean/SimpleBean.java
===================================================================
--- ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/bean/SimpleBean.java 2008-11-08 18:02:13 UTC (rev 283)
+++ ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/bean/SimpleBean.java 2008-11-09 07:52:05 UTC (rev 284)
@@ -1,26 +1,46 @@
package org.jboss.webbeans.bean;
+import java.util.Collections;
+import java.util.Set;
+
+import javax.annotation.PostConstruct;
+import javax.annotation.PreDestroy;
+import javax.webbeans.DefinitionException;
+import javax.webbeans.Initializer;
+
import org.jboss.webbeans.ManagerImpl;
-import org.jboss.webbeans.injectable.InjectableField;
-import org.jboss.webbeans.injectable.InjectableMethod;
+import org.jboss.webbeans.introspector.AnnotatedConstructor;
import org.jboss.webbeans.introspector.AnnotatedMethod;
-import org.jboss.webbeans.model.bean.SimpleBeanModel;
+import org.jboss.webbeans.introspector.AnnotatedParameter;
+import org.jboss.webbeans.introspector.impl.InjectableField;
+import org.jboss.webbeans.introspector.impl.InjectableMethod;
+import org.jboss.webbeans.introspector.impl.InjectableParameter;
+import org.jboss.webbeans.log.LogProvider;
+import org.jboss.webbeans.log.Logging;
+import org.jboss.webbeans.util.Reflections;
-public class SimpleBean<T> extends AbstractBean<T>
+public class SimpleBean<T> extends AbstractClassBean<T>
{
- private SimpleBeanModel<T> model;
+ private static LogProvider log = Logging.getLogProvider(SimpleBean.class);
+ private static Set<Class<?>> NO_ARGUMENTS = Collections.emptySet();
- public SimpleBean(SimpleBeanModel<T> model, ManagerImpl manager)
+ private AnnotatedConstructor<T> constructor;
+ private String location;
+
+ private AnnotatedMethod<Object> postConstruct;
+ private AnnotatedMethod<Object> preDestroy;
+
+ public SimpleBean(Class<T> type, ManagerImpl manager)
{
- super(manager);
- this.model = model;
+ super(type, manager);
+ init();
}
@Override
public T create()
{
- T instance = model.getConstructor().invoke(manager);
+ T instance = constructor.newInstance(getManager());
bindDecorators();
bindInterceptors();
injectEjbAndCommonFields();
@@ -38,7 +58,7 @@
protected void callPreDestroy(T instance)
{
- AnnotatedMethod<Object> preDestroy = getModel().getPreDestroy();
+ AnnotatedMethod<Object> preDestroy = getPreDestroy();
if (preDestroy!=null)
{
try
@@ -51,15 +71,15 @@
}
}
}
-
+
protected void callPostConstruct(T instance)
{
- AnnotatedMethod<Object> postConstruct = getModel().getPostConstruct();
+ AnnotatedMethod<Object> postConstruct = getPostConstruct();
if (postConstruct!=null)
{
try
{
- postConstruct.getAnnotatedMethod().invoke(instance);
+ postConstruct.invoke(instance);
}
catch (Exception e)
{
@@ -70,9 +90,9 @@
protected void callInitializers(T instance)
{
- for (InjectableMethod<Object> initializer : model.getInitializerMethods())
+ for (InjectableMethod<Object> initializer : getInitializerMethods())
{
- initializer.invoke(manager, instance);
+ initializer.invoke(getManager(), instance);
}
}
@@ -83,16 +103,155 @@
protected void injectBoundFields(T instance)
{
- for (InjectableField<?> injectableField : getModel().getInjectableFields())
+ for (InjectableField<?> injectableField : getInjectableFields())
{
- injectableField.inject(instance, manager);
+ injectableField.inject(instance, getManager());
}
}
+
+ @Override
+ protected void init()
+ {
+ super.init();
+ initConstructor();
+ checkType(getType());
+ initInjectionPoints();
+ initPostConstruct();
+ initPreDestroy();
+ // TODO Interceptors
+ }
+
+ @Override
+ protected void initInjectionPoints()
+ {
+ super.initInjectionPoints();
+ for (AnnotatedParameter<Object> parameter : constructor.getParameters())
+ {
+ injectionPoints.add(new InjectableParameter<Object>(parameter));
+ }
+ }
+
+ public static void checkType(Class<?> type)
+ {
+ if (Reflections.isNonStaticInnerClass(type))
+ {
+ throw new DefinitionException("Simple Web Bean " + type + " cannot be a non-static inner class");
+ }
+ if (Reflections.isParameterizedType(type))
+ {
+ throw new DefinitionException("Simple Web Bean " + type + " cannot be a parameterized type");
+ }
+ }
+
+ protected void initConstructor()
+ {
+ Set<AnnotatedConstructor<T>> initializerAnnotatedConstructors = getAnnotatedItem().getAnnotatedConstructors(Initializer.class);
+ log.trace("Found " + initializerAnnotatedConstructors + " constructors annotated with @Initializer for " + getType());
+ if (initializerAnnotatedConstructors.size() > 1)
+ {
+ if (initializerAnnotatedConstructors.size() > 1)
+ {
+ throw new DefinitionException("Cannot have more than one constructor annotated with @Initializer for " + getType());
+ }
+ }
+ else if (initializerAnnotatedConstructors.size() == 1)
+ {
+ this.constructor = initializerAnnotatedConstructors.iterator().next();
+ log.trace("Exactly one constructor (" + constructor +") annotated with @Initializer defined, using it as the bean constructor for " + getType());
+ return;
+ }
+
+ if (getAnnotatedItem().getConstructor(NO_ARGUMENTS) != null)
+ {
+
+ this.constructor =getAnnotatedItem().getConstructor(NO_ARGUMENTS);
+ log.trace("Exactly one constructor (" + constructor +") defined, using it as the bean constructor for " + getType());
+ return;
+ }
+
+ throw new DefinitionException("Cannot determine constructor to use for " + getType());
+ }
+
+ protected void initPostConstruct()
+ {
+ Set<AnnotatedMethod<Object>> postConstructMethods = getAnnotatedItem().getAnnotatedMethods(PostConstruct.class);
+ log.trace("Found " + postConstructMethods + " constructors annotated with @Initializer for " + getType());
+ if (postConstructMethods.size() > 1)
+ {
+ //TODO: actually this is wrong, in EJB you can have @PostConstruct methods on the superclass,
+ // though the Web Beans spec is silent on the issue
+ throw new DefinitionException("Cannot have more than one post construct method annotated with @Initializer for " + getType());
+ }
+ else if (postConstructMethods.size() == 1)
+ {
+ this.postConstruct = postConstructMethods.iterator().next();
+ log.trace("Exactly one post construct method (" + postConstruct +") for " + getType());
+ return;
+ }
+ }
+ protected void initPreDestroy()
+ {
+ Set<AnnotatedMethod<Object>> preDestroyMethods = getAnnotatedItem().getAnnotatedMethods(PreDestroy.class);
+ log.trace("Found " + preDestroyMethods + " constructors annotated with @Initializer for " + getType());
+ if (preDestroyMethods.size() > 1)
+ {
+ //TODO: actually this is wrong, in EJB you can have @PreDestroy methods on the superclass,
+ // though the Web Beans spec is silent on the issue
+ throw new DefinitionException("Cannot have more than one pre destroy method annotated with @Initializer for " + getType());
+ }
+ else if (preDestroyMethods.size() == 1)
+ {
+ this.preDestroy = preDestroyMethods.iterator().next();
+ log.trace("Exactly one post construct method (" + preDestroy +") for " + getType());
+ return;
+ }
+ }
+
+
+ public AnnotatedConstructor<T> getConstructor()
+ {
+ return constructor;
+ }
+
+
@Override
- public SimpleBeanModel<T> getModel()
+ public String toString()
{
- return model;
+ return "SimpleWebBean[" + getAnnotatedItem().toString() + "]";
}
+ public String getLocation()
+ {
+ if (location == null)
+ {
+ location = "type: Simple Bean; declaring class: " + getType() +";";
+ }
+ return location;
+ }
+
+ protected AbstractBean<? extends T, Class<T>> getSpecializedType()
+ {
+ //TODO: lots of validation!
+ Class<?> superclass = getAnnotatedItem().getType().getSuperclass();
+ if ( superclass!=null )
+ {
+ return new SimpleBean(superclass, getManager());
+ }
+ else
+ {
+ throw new RuntimeException();
+ }
+ }
+
+ public AnnotatedMethod<Object> getPostConstruct()
+ {
+ return postConstruct;
+ }
+
+ public AnnotatedMethod<Object> getPreDestroy()
+ {
+ return preDestroy;
+ }
+
}
Added: ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/bean/XmlSimpleBean.java
===================================================================
--- ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/bean/XmlSimpleBean.java (rev 0)
+++ ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/bean/XmlSimpleBean.java 2008-11-09 07:52:05 UTC (rev 284)
@@ -0,0 +1,17 @@
+package org.jboss.webbeans.bean;
+
+import org.jboss.webbeans.ManagerImpl;
+
+public class XmlSimpleBean<T> extends SimpleBean<T>
+{
+
+ public XmlSimpleBean(Class<T> type, ManagerImpl manager)
+ {
+ super(type, manager);
+ }
+
+ protected boolean isDefinedInXml()
+ {
+ return true;
+ }
+}
Property changes on: ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/bean/XmlSimpleBean.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Modified: ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/event/ObserverImpl.java
===================================================================
--- ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/event/ObserverImpl.java 2008-11-08 18:02:13 UTC (rev 283)
+++ ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/event/ObserverImpl.java 2008-11-09 07:52:05 UTC (rev 284)
@@ -8,11 +8,11 @@
import javax.webbeans.Observer;
import org.jboss.webbeans.ManagerImpl;
-import org.jboss.webbeans.injectable.ForwardingInjectableMethod;
-import org.jboss.webbeans.injectable.ForwardingInjectableParameter;
-import org.jboss.webbeans.injectable.InjectableMethod;
-import org.jboss.webbeans.injectable.InjectableParameter;
-import org.jboss.webbeans.model.bean.BeanModel;
+import org.jboss.webbeans.bean.EventBean;
+import org.jboss.webbeans.introspector.impl.ForwardingInjectableMethod;
+import org.jboss.webbeans.introspector.impl.ForwardingInjectableParameter;
+import org.jboss.webbeans.introspector.impl.InjectableMethod;
+import org.jboss.webbeans.introspector.impl.InjectableParameter;
import com.google.common.collect.ForwardingIterator;
import com.google.common.collect.ForwardingList;
@@ -31,7 +31,7 @@
public class ObserverImpl<T> implements Observer<T>
{
- private final BeanModel<?, ?> beanModel;
+ private EventBean<T> eventBean;
private final InjectableMethod<Object> observerMethod;
private final Class<T> eventType;
@@ -58,10 +58,10 @@
* @param observer The observer method to notify
* @param eventType The type of event being observed
*/
- public ObserverImpl(final BeanModel<?, ?> beanModel,
+ public ObserverImpl(final EventBean<T> eventBean,
final InjectableMethod<Object> observer, final Class<T> eventType)
{
- this.beanModel = beanModel;
+ this.eventBean = eventBean;
this.observerMethod = observer;
this.eventType = eventType;
}
@@ -172,7 +172,6 @@
protected Object getInstance()
{
// Return the most specialized instance of the component
- return manager.getInstanceByType(beanModel.getType(), beanModel
- .getBindingTypes().toArray(new Annotation[0]));
+ return manager.getInstanceByType(eventBean.getType(), eventBean.getBindingTypes().toArray(new Annotation[0]));
}
}
Modified: ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/exceptions/TypesafeResolutionLocation.java
===================================================================
--- ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/exceptions/TypesafeResolutionLocation.java 2008-11-08 18:02:13 UTC (rev 283)
+++ ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/exceptions/TypesafeResolutionLocation.java 2008-11-09 07:52:05 UTC (rev 284)
@@ -4,7 +4,7 @@
import java.lang.reflect.Type;
import java.util.Set;
-import org.jboss.webbeans.injectable.Injectable;
+import org.jboss.webbeans.introspector.impl.Injectable;
public class TypesafeResolutionLocation extends Location
{
Deleted: ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/injectable/BeanConstructor.java
===================================================================
--- ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/injectable/BeanConstructor.java 2008-11-08 18:02:13 UTC (rev 283)
+++ ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/injectable/BeanConstructor.java 2008-11-09 07:52:05 UTC (rev 284)
@@ -1,10 +0,0 @@
-package org.jboss.webbeans.injectable;
-
-import org.jboss.webbeans.ManagerImpl;
-
-public interface BeanConstructor<T, S>
-{
-
- public T invoke(ManagerImpl manager, Object instance);
-
-}
Deleted: ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/injectable/EnterpriseConstructor.java
===================================================================
--- ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/injectable/EnterpriseConstructor.java 2008-11-08 18:02:13 UTC (rev 283)
+++ ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/injectable/EnterpriseConstructor.java 2008-11-09 07:52:05 UTC (rev 284)
@@ -1,38 +0,0 @@
-package org.jboss.webbeans.injectable;
-
-import javax.webbeans.manager.EnterpriseBeanLookup;
-
-import org.jboss.webbeans.ManagerImpl;
-import org.jboss.webbeans.ejb.EjbMetaData;
-
-
-public class EnterpriseConstructor<T> implements BeanConstructor<T, Object>
-{
-
- private EjbMetaData<T> ejbMetaData;
-
- public EnterpriseConstructor(EjbMetaData<T> ejbMetaData)
- {
- this.ejbMetaData = ejbMetaData;
- }
-
- public T invoke(ManagerImpl manager)
- {
- // TODO Hmm, this isn't right
- if (manager instanceof ManagerImpl)
- {
- ManagerImpl containerImpl = (ManagerImpl) manager;
- return (T) containerImpl.getInstanceByType(EnterpriseBeanLookup.class).lookup(ejbMetaData.getEjbName());
- }
- else
- {
- throw new RuntimeException("Error accessing webbeans container");
- }
- }
-
- public T invoke(ManagerImpl manager, Object instance)
- {
- return invoke(manager);
- }
-
-}
Deleted: ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/injectable/ForwardingInjectableMethod.java
===================================================================
--- ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/injectable/ForwardingInjectableMethod.java 2008-11-08 18:02:13 UTC (rev 283)
+++ ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/injectable/ForwardingInjectableMethod.java 2008-11-09 07:52:05 UTC (rev 284)
@@ -1,63 +0,0 @@
-package org.jboss.webbeans.injectable;
-
-import java.util.List;
-
-import javax.webbeans.manager.Manager;
-
-import org.jboss.webbeans.ManagerImpl;
-import org.jboss.webbeans.introspector.AnnotatedMethod;
-
-public abstract class ForwardingInjectableMethod<T> extends InjectableMethod<T>
-{
-
- @Override
- public boolean equals(Object obj)
- {
- return delegate().equals(obj);
- }
-
- @Override
- public AnnotatedMethod<T> getAnnotatedItem()
- {
- return delegate().getAnnotatedItem();
- }
-
- @Override
- public List<InjectableParameter<Object>> getParameters()
- {
- return delegate().getParameters();
- }
-
- @Override
- protected Object[] getParameterValues(ManagerImpl manager)
- {
- return delegate().getParameterValues(manager);
- }
-
- @Override
- public int hashCode()
- {
- return delegate().hashCode();
- }
-
- @Override
- public T invoke(Manager manager, Object instance, Object[] parameters)
- {
- return delegate().invoke(manager, instance, parameters);
- }
-
- @Override
- public T invoke(ManagerImpl manager, Object instance)
- {
- return delegate().invoke(manager, instance);
- }
-
- @Override
- public String toString()
- {
- return delegate().toString();
- }
-
- protected abstract InjectableMethod<T> delegate();
-
-}
Deleted: ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/injectable/ForwardingInjectableParameter.java
===================================================================
--- ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/injectable/ForwardingInjectableParameter.java 2008-11-08 18:02:13 UTC (rev 283)
+++ ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/injectable/ForwardingInjectableParameter.java 2008-11-09 07:52:05 UTC (rev 284)
@@ -1,41 +0,0 @@
-package org.jboss.webbeans.injectable;
-
-import java.lang.annotation.Annotation;
-import java.util.List;
-import java.util.Set;
-
-import javax.webbeans.manager.Bean;
-
-import org.jboss.webbeans.ManagerImpl;
-import org.jboss.webbeans.ModelManager;
-
-public abstract class ForwardingInjectableParameter<T> extends InjectableParameter<T>
-{
-
- protected abstract InjectableParameter<? extends T> delegate();
-
- @Override
- public Set<Annotation> getBindingTypes()
- {
- return delegate().getBindingTypes();
- }
-
- @Override
- public Set<Bean<?>> getMatchingBeans(List<Bean<?>> possibleBeans, ModelManager modelManager)
- {
- return delegate().getMatchingBeans(possibleBeans, modelManager);
- }
-
- @Override
- public Class<? extends T> getType()
- {
- return delegate().getType();
- }
-
- @Override
- public T getValue(ManagerImpl manager)
- {
- return delegate().getValue(manager);
- }
-
-}
Deleted: ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/injectable/Injectable.java
===================================================================
--- ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/injectable/Injectable.java 2008-11-08 18:02:13 UTC (rev 283)
+++ ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/injectable/Injectable.java 2008-11-09 07:52:05 UTC (rev 284)
@@ -1,155 +0,0 @@
-package org.jboss.webbeans.injectable;
-
-import java.lang.annotation.Annotation;
-import java.util.Arrays;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Set;
-
-import javax.webbeans.BindingType;
-import javax.webbeans.manager.Bean;
-
-import org.jboss.webbeans.ManagerImpl;
-import org.jboss.webbeans.ModelManager;
-import org.jboss.webbeans.bindings.CurrentAnnotationLiteral;
-import org.jboss.webbeans.introspector.AnnotatedItem;
-import org.jboss.webbeans.model.BindingTypeModel;
-
-/**
- * Abstraction of java reflection for Web Beans, represent's something that can
- * be injected
- *
- * @author Pete Muir
- *
- */
-public abstract class Injectable<T, S>
-{
-
- private static final Annotation[] DEFAULT_BINDING_ARRAY = {new CurrentAnnotationLiteral()};
- private static final Set<Annotation> DEFAULT_BINDING = new HashSet<Annotation>(Arrays.asList(DEFAULT_BINDING_ARRAY));
-
- private AnnotatedItem<T, S> annotatedItem;
-
- private boolean useDefaultBinding;
-
- public Injectable(AnnotatedItem<T, S> annotatedItem)
- {
- this.annotatedItem = annotatedItem;
- if (annotatedItem.getAnnotations(BindingType.class).size() == 0)
- {
- useDefaultBinding = true;
- }
- }
-
- public Set<Annotation> getBindingTypes()
- {
- if (useDefaultBinding)
- {
- return DEFAULT_BINDING;
- }
- else
- {
- return annotatedItem.getAnnotations(BindingType.class);
- }
- }
-
- public Annotation[] getBindingTypesAsArray()
- {
- if (useDefaultBinding)
- {
- return DEFAULT_BINDING_ARRAY;
- }
- else
- {
- return annotatedItem.getAnnotationsAsArray(BindingType.class);
- }
- }
-
- protected Injectable() {}
-
- @Override
- public String toString()
- {
- return getClass().getSimpleName() + "[" + getAnnotatedItem().toString() + "]";
- }
-
- public T getValue(ManagerImpl manager)
- {
- return manager.getInstanceByType(getType(), getBindingTypesAsArray());
- }
-
- public Class<? extends T> getType()
- {
- return annotatedItem.getType();
- }
-
- public AnnotatedItem<T, S> getAnnotatedItem()
- {
- return annotatedItem;
- }
-
- public Set<Bean<?>> getMatchingBeans(List<Bean<?>> beans, ModelManager modelManager)
- {
- Set<Bean<?>> resolvedBeans = new HashSet<Bean<?>>();
- for (Bean<?> bean : beans)
- {
- if (getAnnotatedItem().isAssignableFrom(bean.getTypes()) && containsAllBindingBindingTypes(bean.getBindingTypes(), modelManager))
- {
- resolvedBeans.add(bean);
- }
- }
- return resolvedBeans;
- }
-
- @Override
- public boolean equals(Object other)
- {
- // TODO Do we need to check the other direction too?
- if (other instanceof Injectable)
- {
- Injectable<?, ?> that = (Injectable<?, ?>) other;
- return this.getAnnotatedItem().isAssignableFrom(that.getAnnotatedItem()) &&
- that.getBindingTypes().equals(this.getBindingTypes());
- }
- else
- {
- return false;
- }
- }
-
- @Override
- public int hashCode()
- {
- // TODO Implement this!
- return 0;
- }
-
- private boolean containsAllBindingBindingTypes(Set<Annotation> bindingTypes, ModelManager modelManager)
- {
- for (Annotation bindingType : getBindingTypes())
- {
- BindingTypeModel<?> bindingTypeModel = modelManager.getBindingTypeModel(bindingType.annotationType());
- if (bindingTypeModel.getNonBindingTypes().size() > 0)
- {
- boolean matchFound = false;
- for (Annotation otherBindingType : bindingTypes)
- {
- if (bindingTypeModel.isEqual(bindingType, otherBindingType))
- {
- matchFound = true;
- }
- }
- if (!matchFound)
- {
- return false;
- }
- }
- else if (!bindingTypes.contains(bindingType))
- {
- return false;
- }
- }
- return true;
- }
-
-}
Deleted: ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/injectable/InjectableField.java
===================================================================
--- ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/injectable/InjectableField.java 2008-11-08 18:02:13 UTC (rev 283)
+++ ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/injectable/InjectableField.java 2008-11-09 07:52:05 UTC (rev 284)
@@ -1,34 +0,0 @@
-package org.jboss.webbeans.injectable;
-
-import java.lang.reflect.Field;
-
-import org.jboss.webbeans.ManagerImpl;
-import org.jboss.webbeans.introspector.AnnotatedField;
-import org.jboss.webbeans.introspector.impl.SimpleAnnotatedField;
-import org.jboss.webbeans.util.Reflections;
-
-/**
- * Abstraction of Java Reflection
- *
- * @author Pete Muir
- *
- */
-public class InjectableField<T> extends Injectable<T, Field>
-{
-
- public InjectableField(Field field)
- {
- super(new SimpleAnnotatedField<T>(field));
- }
-
- public InjectableField(AnnotatedField<T> annotatedField)
- {
- super(annotatedField);
- }
-
- public void inject(Object instance, ManagerImpl manager)
- {
- Reflections.setAndWrap(getAnnotatedItem().getDelegate(), instance, getValue(manager));
- }
-
-}
Deleted: ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/injectable/InjectableMethod.java
===================================================================
--- ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/injectable/InjectableMethod.java 2008-11-08 18:02:13 UTC (rev 283)
+++ ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/injectable/InjectableMethod.java 2008-11-09 07:52:05 UTC (rev 284)
@@ -1,50 +0,0 @@
-package org.jboss.webbeans.injectable;
-
-import javax.webbeans.manager.Manager;
-
-import org.jboss.webbeans.ManagerImpl;
-import org.jboss.webbeans.introspector.AnnotatedMethod;
-import org.jboss.webbeans.introspector.impl.SimpleAnnotatedMethod;
-
-public class InjectableMethod<T> extends Invokable<T, AnnotatedMethod<T>>
-{
-
- private AnnotatedMethod<T> method;
-
- protected InjectableMethod(){}
-
- public InjectableMethod(java.lang.reflect.Method method)
- {
- this(new SimpleAnnotatedMethod<T>(method));
- }
-
- public InjectableMethod(AnnotatedMethod<T> annotatedMethod)
- {
- super(annotatedMethod.getParameters());
- this.method = annotatedMethod;
- }
-
-
- public T invoke(ManagerImpl manager, Object instance)
- {
- return invoke(manager, instance, getParameterValues(manager));
- }
-
- public T invoke(Manager container, Object instance, Object[] parameters)
- {
- try
- {
- return (T) method.getAnnotatedMethod().invoke(instance, parameters);
- }
- catch (Exception e)
- {
- throw new RuntimeException("Unable to invoke " + method + " on " + instance, e);
- }
- }
-
- public AnnotatedMethod<T> getAnnotatedItem()
- {
- return method;
- }
-
-}
Deleted: ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/injectable/InjectableParameter.java
===================================================================
--- ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/injectable/InjectableParameter.java 2008-11-08 18:02:13 UTC (rev 283)
+++ ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/injectable/InjectableParameter.java 2008-11-09 07:52:05 UTC (rev 284)
@@ -1,31 +0,0 @@
-package org.jboss.webbeans.injectable;
-
-import java.lang.annotation.Annotation;
-
-import org.jboss.webbeans.bindings.CurrentAnnotationLiteral;
-import org.jboss.webbeans.introspector.AnnotatedParameter;
-import org.jboss.webbeans.introspector.impl.SimpleAnnotatedParameter;
-
-public class InjectableParameter<T> extends Injectable<T, Object>
-{
-
- private static Annotation[] currentBinding = {new CurrentAnnotationLiteral()};
-
- protected InjectableParameter() {}
-
- public InjectableParameter(Annotation[] bindingTypes, Class<T> type)
- {
- super(new SimpleAnnotatedParameter<T>(bindingTypes, type));
- }
-
- public InjectableParameter(AnnotatedParameter<T> annotatedParameter)
- {
- super(annotatedParameter);
- }
-
- public InjectableParameter(Class<T> type)
- {
- this(currentBinding, type);
- }
-
-}
Deleted: ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/injectable/InjectableWrapper.java
===================================================================
--- ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/injectable/InjectableWrapper.java 2008-11-08 18:02:13 UTC (rev 283)
+++ ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/injectable/InjectableWrapper.java 2008-11-09 07:52:05 UTC (rev 284)
@@ -1,46 +0,0 @@
-package org.jboss.webbeans.injectable;
-
-import java.lang.annotation.Annotation;
-import java.util.List;
-import java.util.Set;
-
-import javax.webbeans.manager.Bean;
-
-import org.jboss.webbeans.ManagerImpl;
-import org.jboss.webbeans.ModelManager;
-
-public class InjectableWrapper<T, S> extends Injectable<T, S>
-{
-
- private Injectable<T, S> delegate;
-
- public InjectableWrapper(Injectable<T, S> delegate)
- {
- this.delegate = delegate;
- }
-
- @Override
- public Set<Annotation> getBindingTypes()
- {
- return delegate.getBindingTypes();
- }
-
- @Override
- public Set<Bean<?>> getMatchingBeans(List<Bean<?>> possibleBeans, ModelManager modelManager)
- {
- return delegate.getMatchingBeans(possibleBeans, modelManager);
- }
-
- @Override
- public Class<? extends T> getType()
- {
- return delegate.getType();
- }
-
- @Override
- public T getValue(ManagerImpl manager)
- {
- return delegate.getValue(manager);
- }
-
-}
\ No newline at end of file
Deleted: ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/injectable/Invokable.java
===================================================================
--- ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/injectable/Invokable.java 2008-11-08 18:02:13 UTC (rev 283)
+++ ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/injectable/Invokable.java 2008-11-09 07:52:05 UTC (rev 284)
@@ -1,50 +0,0 @@
-package org.jboss.webbeans.injectable;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-
-import javax.webbeans.manager.Manager;
-
-import org.jboss.webbeans.ManagerImpl;
-import org.jboss.webbeans.introspector.AnnotatedParameter;
-
-public abstract class Invokable<T, S>
-{
-
- private List<InjectableParameter<Object>> parameters;
-
- protected Invokable() {}
-
- public Invokable(List<AnnotatedParameter<Object>> parameters)
- {
- this.parameters = new ArrayList<InjectableParameter<Object>>();
- for (AnnotatedParameter<Object> parameter : parameters)
- {
- this.parameters.add(new InjectableParameter<Object>(parameter));
- }
- }
-
- public abstract S getAnnotatedItem();
-
- protected Object[] getParameterValues(ManagerImpl manager)
- {
- Object[] parameterValues = new Object[parameters.size()];
- Iterator<InjectableParameter<Object>> iterator = parameters.iterator();
- for (int i = 0; i < parameterValues.length; i++)
- {
- parameterValues[i] = iterator.next().getValue(manager);
- }
- return parameterValues;
- }
-
- public List<InjectableParameter<Object>> getParameters()
- {
- return parameters;
- }
-
- public abstract T invoke(Manager container, Object instance, Object[] parameters);
-
- public abstract T invoke(ManagerImpl container, Object instance);
-
-}
Deleted: ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/injectable/JMSConstructor.java
===================================================================
--- ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/injectable/JMSConstructor.java 2008-11-08 18:02:13 UTC (rev 283)
+++ ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/injectable/JMSConstructor.java 2008-11-09 07:52:05 UTC (rev 284)
@@ -1,34 +0,0 @@
-package org.jboss.webbeans.injectable;
-
-import org.jboss.webbeans.ManagerImpl;
-import org.jboss.webbeans.util.JNDI;
-
-public class JMSConstructor<T> implements BeanConstructor<T, Object>
-{
-
- Class<? extends T> type;
-
- private String jndiName;
-
- public JMSConstructor(String jndiName)
- {
- this.jndiName = jndiName;
- }
-
- public T invoke(ManagerImpl manager)
- {
- return JNDI.lookup(jndiName, type);
- }
-
- public Object getAnnotatedItem()
- {
- // TODO Auto-generated method stub
- return null;
- }
-
- public T invoke(ManagerImpl manager, Object instance)
- {
- return invoke(manager);
- }
-
-}
Deleted: ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/injectable/MethodConstructor.java
===================================================================
--- ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/injectable/MethodConstructor.java 2008-11-08 18:02:13 UTC (rev 283)
+++ ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/injectable/MethodConstructor.java 2008-11-09 07:52:05 UTC (rev 284)
@@ -1,23 +0,0 @@
-package org.jboss.webbeans.injectable;
-
-import java.lang.reflect.Method;
-
-import org.jboss.webbeans.ManagerImpl;
-import org.jboss.webbeans.introspector.AnnotatedMethod;
-import org.jboss.webbeans.util.Reflections;
-
-public class MethodConstructor<T> extends InjectableMethod<T> implements
- BeanConstructor<T, AnnotatedMethod<T>>
-{
-
- public MethodConstructor(Method method)
- {
- super(method);
- }
-
- public T invoke(ManagerImpl manager, Object instance)
- {
- return (T) Reflections.invokeAndWrap(getAnnotatedItem().getDelegate(), instance, getParameterValues(manager));
- }
-
-}
Deleted: ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/injectable/ResolverInjectable.java
===================================================================
--- ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/injectable/ResolverInjectable.java 2008-11-08 18:02:13 UTC (rev 283)
+++ ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/injectable/ResolverInjectable.java 2008-11-09 07:52:05 UTC (rev 284)
@@ -1,54 +0,0 @@
-package org.jboss.webbeans.injectable;
-
-import java.lang.annotation.Annotation;
-import java.lang.reflect.Type;
-
-import javax.webbeans.BindingType;
-import javax.webbeans.DuplicateBindingTypeException;
-import javax.webbeans.TypeLiteral;
-
-import org.jboss.webbeans.ModelManager;
-import org.jboss.webbeans.introspector.impl.SimpleAnnotatedItem;
-
-/**
- * TODO Rename this to something which implies it only ever used for resolution
- * @author Pete Muir
- *
- */
-public class ResolverInjectable<T> extends Injectable<T, Object>
-{
-
- public ResolverInjectable(SimpleAnnotatedItem<T, Object> annotatedItem, ModelManager modelManager)
- {
- super(annotatedItem);
- for (Annotation annotation : annotatedItem.getAnnotations())
- {
- if (!modelManager.getBindingTypeModel(annotation.annotationType()).isValid())
- {
- throw new IllegalArgumentException("Not a binding type " + annotation);
- }
- }
- if (annotatedItem.getActualAnnotations().length > annotatedItem.getAnnotations(BindingType.class).size())
- {
- throw new DuplicateBindingTypeException(getAnnotatedItem().toString());
- }
-
-
- }
-
- public ResolverInjectable(Class<T> type, Annotation[] bindingTypes, ModelManager modelManager)
- {
- this(new SimpleAnnotatedItem<T, Object>(bindingTypes, type), modelManager);
- }
-
- public ResolverInjectable(Class<T> type, Annotation[] bindingTypes, ModelManager modelManager, Type ... actualTypeArguments)
- {
- this(new SimpleAnnotatedItem<T, Object>(bindingTypes, type, actualTypeArguments), modelManager);
- }
-
- public ResolverInjectable(TypeLiteral<T> apiType, Annotation[] bindingTypes, ModelManager modelManager)
- {
- this(new SimpleAnnotatedItem<T, Object>(bindingTypes, apiType), modelManager);
- }
-
-}
Deleted: ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/injectable/SimpleConstructor.java
===================================================================
--- ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/injectable/SimpleConstructor.java 2008-11-08 18:02:13 UTC (rev 283)
+++ ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/injectable/SimpleConstructor.java 2008-11-09 07:52:05 UTC (rev 284)
@@ -1,59 +0,0 @@
-package org.jboss.webbeans.injectable;
-
-import java.lang.reflect.Constructor;
-import java.util.logging.Logger;
-
-import javax.webbeans.manager.Manager;
-
-import org.jboss.webbeans.ManagerImpl;
-import org.jboss.webbeans.introspector.AnnotatedConstructor;
-import org.jboss.webbeans.util.LoggerUtil;
-
-public class SimpleConstructor<T> extends Invokable<T, AnnotatedConstructor<T>> implements BeanConstructor<T, Constructor<T>>
-{
-
- public static final String LOGGER_NAME = "beanConstructor";
-
- private static Logger log = LoggerUtil.getLogger(LOGGER_NAME);
-
- private AnnotatedConstructor<T> constructor;
-
- public SimpleConstructor(AnnotatedConstructor<T> constructor)
- {
- super(constructor.getParameters());
- this.constructor = constructor;
- log.finest("Initialized metadata for " + constructor);
- }
-
- public T invoke(ManagerImpl manager)
- {
- return invoke(manager, null, getParameterValues(manager));
- }
-
- @Override
- public T invoke(Manager manager, Object instance, Object[] parameters)
- {
- try
- {
- log.finest("Creating new instance of " + constructor);
- return constructor.getAnnotatedConstructor().newInstance(parameters);
- }
- catch (Exception e)
- {
- throw new RuntimeException("Error instantiating " + constructor, e);
- }
- }
-
- @Override
- public T invoke(ManagerImpl manager, Object instance)
- {
- return invoke(manager, instance, getParameterValues(manager));
- }
-
- @Override
- public AnnotatedConstructor<T> getAnnotatedItem()
- {
- return constructor;
- }
-
-}
Modified: ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/AnnotatedConstructor.java
===================================================================
--- ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/AnnotatedConstructor.java 2008-11-08 18:02:13 UTC (rev 283)
+++ ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/AnnotatedConstructor.java 2008-11-09 07:52:05 UTC (rev 284)
@@ -4,6 +4,8 @@
import java.lang.reflect.Constructor;
import java.util.List;
+import org.jboss.webbeans.ManagerImpl;
+
/**
* AnnotatedType provides a uniform access to the annotations on an annotated
* class defined either in Java or XML
@@ -14,10 +16,12 @@
public interface AnnotatedConstructor<T> extends AnnotatedItem<T, Constructor<T>>
{
- public Constructor<T> getAnnotatedConstructor();
-
public List<AnnotatedParameter<Object>> getParameters();
public List<AnnotatedParameter<Object>> getAnnotatedParameters(Class<? extends Annotation> metaAnnotationType);
+
+ public T newInstance(ManagerImpl manager);
+
+ public Class<?> getDeclaringClass();
}
Modified: ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/AnnotatedField.java
===================================================================
--- ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/AnnotatedField.java 2008-11-08 18:02:13 UTC (rev 283)
+++ ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/AnnotatedField.java 2008-11-09 07:52:05 UTC (rev 284)
@@ -2,6 +2,8 @@
import java.lang.reflect.Field;
+import org.jboss.webbeans.ManagerImpl;
+
/**
* AnnotatedField provides a uniform access to the annotations on an annotated
* field
@@ -13,5 +15,11 @@
{
public Field getAnnotatedField();
+
+ public void inject(Object instance, ManagerImpl manager);
+
+ public Class<?> getDeclaringClass();
+
+ public String getPropertyName();
}
Modified: ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/AnnotatedItem.java
===================================================================
--- ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/AnnotatedItem.java 2008-11-08 18:02:13 UTC (rev 283)
+++ ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/AnnotatedItem.java 2008-11-09 07:52:05 UTC (rev 284)
@@ -62,5 +62,7 @@
public boolean isStatic();
public boolean isFinal();
+
+ public String getName();
}
\ No newline at end of file
Modified: ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/AnnotatedMethod.java
===================================================================
--- ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/AnnotatedMethod.java 2008-11-08 18:02:13 UTC (rev 283)
+++ ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/AnnotatedMethod.java 2008-11-09 07:52:05 UTC (rev 284)
@@ -4,6 +4,8 @@
import java.lang.reflect.Method;
import java.util.List;
+import org.jboss.webbeans.ManagerImpl;
+
/**
* AnnotatedType provides a uniform access to the annotations on an annotated
* class defined either in Java or XML
@@ -20,4 +22,12 @@
public List<AnnotatedParameter<Object>> getAnnotatedParameters(Class<? extends Annotation> metaAnnotationType);
+ public T invoke(ManagerImpl manager, Object instance);
+
+ public T invoke(Object instance, Object...parameters);
+
+ public Class<?> getDeclaringClass();
+
+ public String getPropertyName();
+
}
Modified: ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/AnnotatedParameter.java
===================================================================
--- ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/AnnotatedParameter.java 2008-11-08 18:02:13 UTC (rev 283)
+++ ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/AnnotatedParameter.java 2008-11-09 07:52:05 UTC (rev 284)
@@ -1,6 +1,10 @@
package org.jboss.webbeans.introspector;
+import org.jboss.webbeans.ManagerImpl;
+
public interface AnnotatedParameter<T> extends AnnotatedItem<T, Object>
{
+ public T getValue(ManagerImpl manager);
+
}
Modified: ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/impl/AbstractAnnotatedItem.java
===================================================================
--- ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/impl/AbstractAnnotatedItem.java 2008-11-08 18:02:13 UTC (rev 283)
+++ ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/impl/AbstractAnnotatedItem.java 2008-11-09 07:52:05 UTC (rev 284)
@@ -6,12 +6,16 @@
import java.util.Arrays;
import java.util.HashMap;
import java.util.HashSet;
+import java.util.Iterator;
+import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.Map.Entry;
+import org.jboss.webbeans.ManagerImpl;
import org.jboss.webbeans.exceptions.TypesafeResolutionLocation;
import org.jboss.webbeans.introspector.AnnotatedItem;
+import org.jboss.webbeans.introspector.AnnotatedParameter;
import org.jboss.webbeans.util.Reflections;
import org.jboss.webbeans.util.Types;
@@ -55,6 +59,17 @@
}
return annotationSet;
}
+
+ protected static Object[] getParameterValues(List<AnnotatedParameter<Object>> parameters, ManagerImpl manager)
+ {
+ Object[] parameterValues = new Object[parameters.size()];
+ Iterator<AnnotatedParameter<Object>> iterator = parameters.iterator();
+ for (int i = 0; i < parameterValues.length; i++)
+ {
+ parameterValues[i] = iterator.next().getValue(manager);
+ }
+ return parameterValues;
+ }
public <A extends Annotation> A getAnnotation(Class<? extends A> annotationType)
{
Modified: ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/impl/AbstractAnnotatedMember.java
===================================================================
--- ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/impl/AbstractAnnotatedMember.java 2008-11-08 18:02:13 UTC (rev 283)
+++ ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/impl/AbstractAnnotatedMember.java 2008-11-09 07:52:05 UTC (rev 284)
@@ -4,11 +4,16 @@
import java.lang.reflect.Member;
import java.util.Map;
+import javax.webbeans.BindingType;
+
+import org.jboss.webbeans.ManagerImpl;
import org.jboss.webbeans.util.Reflections;
public abstract class AbstractAnnotatedMember<T, S extends Member> extends AbstractAnnotatedItem<T, S>
{
+ private String name;
+
public AbstractAnnotatedMember(Map<Class<? extends Annotation>, Annotation> annotationMap)
{
super(annotationMap);
@@ -24,4 +29,23 @@
return Reflections.isFinal(getDelegate());
}
+ public T getValue(ManagerImpl manager)
+ {
+ return manager.getInstanceByType(getType(), getAnnotationsAsArray(BindingType.class));
+ }
+
+ public String getName()
+ {
+ if (name == null)
+ {
+ name = getDelegate().getName();
+ }
+ return name;
+ }
+
+ public Class<?> getDeclaringClass()
+ {
+ return getDelegate().getDeclaringClass();
+ }
+
}
Modified: ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/impl/AbstractAnnotatedType.java
===================================================================
--- ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/impl/AbstractAnnotatedType.java 2008-11-08 18:02:13 UTC (rev 283)
+++ ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/impl/AbstractAnnotatedType.java 2008-11-09 07:52:05 UTC (rev 284)
@@ -23,4 +23,9 @@
return Reflections.isFinal(getDelegate());
}
+ public String getName()
+ {
+ return getDelegate().getName();
+ }
+
}
Copied: ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/impl/ForwardingInjectableMethod.java (from rev 272, ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/injectable/ForwardingInjectableMethod.java)
===================================================================
--- ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/impl/ForwardingInjectableMethod.java (rev 0)
+++ ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/impl/ForwardingInjectableMethod.java 2008-11-09 07:52:05 UTC (rev 284)
@@ -0,0 +1,63 @@
+package org.jboss.webbeans.introspector.impl;
+
+import java.util.List;
+
+import javax.webbeans.manager.Manager;
+
+import org.jboss.webbeans.ManagerImpl;
+import org.jboss.webbeans.introspector.AnnotatedMethod;
+
+public abstract class ForwardingInjectableMethod<T> extends InjectableMethod<T>
+{
+
+ @Override
+ public boolean equals(Object obj)
+ {
+ return delegate().equals(obj);
+ }
+
+ @Override
+ public AnnotatedMethod<T> getAnnotatedItem()
+ {
+ return delegate().getAnnotatedItem();
+ }
+
+ @Override
+ public List<InjectableParameter<Object>> getParameters()
+ {
+ return delegate().getParameters();
+ }
+
+ @Override
+ protected Object[] getParameterValues(ManagerImpl manager)
+ {
+ return delegate().getParameterValues(manager);
+ }
+
+ @Override
+ public int hashCode()
+ {
+ return delegate().hashCode();
+ }
+
+ @Override
+ public T invoke(Manager manager, Object instance, Object[] parameters)
+ {
+ return delegate().invoke(manager, instance, parameters);
+ }
+
+ @Override
+ public T invoke(ManagerImpl manager, Object instance)
+ {
+ return delegate().invoke(manager, instance);
+ }
+
+ @Override
+ public String toString()
+ {
+ return delegate().toString();
+ }
+
+ protected abstract InjectableMethod<T> delegate();
+
+}
Property changes on: ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/impl/ForwardingInjectableMethod.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Copied: ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/impl/ForwardingInjectableParameter.java (from rev 272, ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/injectable/ForwardingInjectableParameter.java)
===================================================================
--- ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/impl/ForwardingInjectableParameter.java (rev 0)
+++ ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/impl/ForwardingInjectableParameter.java 2008-11-09 07:52:05 UTC (rev 284)
@@ -0,0 +1,41 @@
+package org.jboss.webbeans.introspector.impl;
+
+import java.lang.annotation.Annotation;
+import java.util.List;
+import java.util.Set;
+
+import javax.webbeans.manager.Bean;
+
+import org.jboss.webbeans.ManagerImpl;
+import org.jboss.webbeans.ModelManager;
+
+public abstract class ForwardingInjectableParameter<T> extends InjectableParameter<T>
+{
+
+ protected abstract InjectableParameter<? extends T> delegate();
+
+ @Override
+ public Set<Annotation> getBindingTypes()
+ {
+ return delegate().getBindingTypes();
+ }
+
+ @Override
+ public Set<Bean<?>> getMatchingBeans(List<Bean<?>> possibleBeans, ModelManager modelManager)
+ {
+ return delegate().getMatchingBeans(possibleBeans, modelManager);
+ }
+
+ @Override
+ public Class<? extends T> getType()
+ {
+ return delegate().getType();
+ }
+
+ @Override
+ public T getValue(ManagerImpl manager)
+ {
+ return delegate().getValue(manager);
+ }
+
+}
Property changes on: ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/impl/ForwardingInjectableParameter.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Copied: ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/impl/Injectable.java (from rev 272, ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/injectable/Injectable.java)
===================================================================
--- ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/impl/Injectable.java (rev 0)
+++ ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/impl/Injectable.java 2008-11-09 07:52:05 UTC (rev 284)
@@ -0,0 +1,155 @@
+package org.jboss.webbeans.introspector.impl;
+
+import java.lang.annotation.Annotation;
+import java.util.Arrays;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
+
+import javax.webbeans.BindingType;
+import javax.webbeans.manager.Bean;
+
+import org.jboss.webbeans.ManagerImpl;
+import org.jboss.webbeans.ModelManager;
+import org.jboss.webbeans.bindings.CurrentAnnotationLiteral;
+import org.jboss.webbeans.introspector.AnnotatedItem;
+import org.jboss.webbeans.model.BindingTypeModel;
+
+/**
+ * Abstraction of java reflection for Web Beans, represent's something that can
+ * be injected
+ *
+ * @author Pete Muir
+ *
+ */
+public abstract class Injectable<T, S>
+{
+
+ private static final Annotation[] DEFAULT_BINDING_ARRAY = {new CurrentAnnotationLiteral()};
+ private static final Set<Annotation> DEFAULT_BINDING = new HashSet<Annotation>(Arrays.asList(DEFAULT_BINDING_ARRAY));
+
+ private AnnotatedItem<T, S> annotatedItem;
+
+ private boolean useDefaultBinding;
+
+ public Injectable(AnnotatedItem<T, S> annotatedItem)
+ {
+ this.annotatedItem = annotatedItem;
+ if (annotatedItem.getAnnotations(BindingType.class).size() == 0)
+ {
+ useDefaultBinding = true;
+ }
+ }
+
+ public Set<Annotation> getBindingTypes()
+ {
+ if (useDefaultBinding)
+ {
+ return DEFAULT_BINDING;
+ }
+ else
+ {
+ return annotatedItem.getAnnotations(BindingType.class);
+ }
+ }
+
+ public Annotation[] getBindingTypesAsArray()
+ {
+ if (useDefaultBinding)
+ {
+ return DEFAULT_BINDING_ARRAY;
+ }
+ else
+ {
+ return annotatedItem.getAnnotationsAsArray(BindingType.class);
+ }
+ }
+
+ protected Injectable() {}
+
+ @Override
+ public String toString()
+ {
+ return getClass().getSimpleName() + "[" + getAnnotatedItem().toString() + "]";
+ }
+
+ public T getValue(ManagerImpl manager)
+ {
+ return manager.getInstanceByType(getType(), getBindingTypesAsArray());
+ }
+
+ public Class<? extends T> getType()
+ {
+ return annotatedItem.getType();
+ }
+
+ public AnnotatedItem<T, S> getAnnotatedItem()
+ {
+ return annotatedItem;
+ }
+
+ public Set<Bean<?>> getMatchingBeans(List<Bean<?>> beans, ModelManager modelManager)
+ {
+ Set<Bean<?>> resolvedBeans = new HashSet<Bean<?>>();
+ for (Bean<?> bean : beans)
+ {
+ if (getAnnotatedItem().isAssignableFrom(bean.getTypes()) && containsAllBindingBindingTypes(bean.getBindingTypes(), modelManager))
+ {
+ resolvedBeans.add(bean);
+ }
+ }
+ return resolvedBeans;
+ }
+
+ @Override
+ public boolean equals(Object other)
+ {
+ // TODO Do we need to check the other direction too?
+ if (other instanceof Injectable)
+ {
+ Injectable<?, ?> that = (Injectable<?, ?>) other;
+ return this.getAnnotatedItem().isAssignableFrom(that.getAnnotatedItem()) &&
+ that.getBindingTypes().equals(this.getBindingTypes());
+ }
+ else
+ {
+ return false;
+ }
+ }
+
+ @Override
+ public int hashCode()
+ {
+ // TODO Implement this!
+ return 0;
+ }
+
+ private boolean containsAllBindingBindingTypes(Set<Annotation> bindingTypes, ModelManager modelManager)
+ {
+ for (Annotation bindingType : getBindingTypes())
+ {
+ BindingTypeModel<?> bindingTypeModel = modelManager.getBindingTypeModel(bindingType.annotationType());
+ if (bindingTypeModel.getNonBindingTypes().size() > 0)
+ {
+ boolean matchFound = false;
+ for (Annotation otherBindingType : bindingTypes)
+ {
+ if (bindingTypeModel.isEqual(bindingType, otherBindingType))
+ {
+ matchFound = true;
+ }
+ }
+ if (!matchFound)
+ {
+ return false;
+ }
+ }
+ else if (!bindingTypes.contains(bindingType))
+ {
+ return false;
+ }
+ }
+ return true;
+ }
+
+}
Property changes on: ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/impl/Injectable.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Copied: ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/impl/InjectableField.java (from rev 272, ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/injectable/InjectableField.java)
===================================================================
--- ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/impl/InjectableField.java (rev 0)
+++ ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/impl/InjectableField.java 2008-11-09 07:52:05 UTC (rev 284)
@@ -0,0 +1,33 @@
+package org.jboss.webbeans.introspector.impl;
+
+import java.lang.reflect.Field;
+
+import org.jboss.webbeans.ManagerImpl;
+import org.jboss.webbeans.introspector.AnnotatedField;
+import org.jboss.webbeans.util.Reflections;
+
+/**
+ * Abstraction of Java Reflection
+ *
+ * @author Pete Muir
+ *
+ */
+public class InjectableField<T> extends Injectable<T, Field>
+{
+
+ public InjectableField(Field field)
+ {
+ super(new SimpleAnnotatedField<T>(field));
+ }
+
+ public InjectableField(AnnotatedField<T> annotatedField)
+ {
+ super(annotatedField);
+ }
+
+ public void inject(Object instance, ManagerImpl manager)
+ {
+ Reflections.setAndWrap(getAnnotatedItem().getDelegate(), instance, getValue(manager));
+ }
+
+}
Property changes on: ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/impl/InjectableField.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Copied: ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/impl/InjectableMethod.java (from rev 272, ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/injectable/InjectableMethod.java)
===================================================================
--- ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/impl/InjectableMethod.java (rev 0)
+++ ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/impl/InjectableMethod.java 2008-11-09 07:52:05 UTC (rev 284)
@@ -0,0 +1,49 @@
+package org.jboss.webbeans.introspector.impl;
+
+import javax.webbeans.manager.Manager;
+
+import org.jboss.webbeans.ManagerImpl;
+import org.jboss.webbeans.introspector.AnnotatedMethod;
+
+public class InjectableMethod<T> extends Invokable<T, AnnotatedMethod<T>>
+{
+
+ private AnnotatedMethod<T> method;
+
+ protected InjectableMethod(){}
+
+ public InjectableMethod(java.lang.reflect.Method method)
+ {
+ this(new SimpleAnnotatedMethod<T>(method));
+ }
+
+ public InjectableMethod(AnnotatedMethod<T> annotatedMethod)
+ {
+ super(annotatedMethod.getParameters());
+ this.method = annotatedMethod;
+ }
+
+
+ public T invoke(ManagerImpl manager, Object instance)
+ {
+ return invoke(manager, instance, getParameterValues(manager));
+ }
+
+ public T invoke(Manager container, Object instance, Object[] parameters)
+ {
+ try
+ {
+ return (T) method.getAnnotatedMethod().invoke(instance, parameters);
+ }
+ catch (Exception e)
+ {
+ throw new RuntimeException("Unable to invoke " + method + " on " + instance, e);
+ }
+ }
+
+ public AnnotatedMethod<T> getAnnotatedItem()
+ {
+ return method;
+ }
+
+}
Property changes on: ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/impl/InjectableMethod.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Copied: ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/impl/InjectableParameter.java (from rev 272, ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/injectable/InjectableParameter.java)
===================================================================
--- ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/impl/InjectableParameter.java (rev 0)
+++ ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/impl/InjectableParameter.java 2008-11-09 07:52:05 UTC (rev 284)
@@ -0,0 +1,30 @@
+package org.jboss.webbeans.introspector.impl;
+
+import java.lang.annotation.Annotation;
+
+import org.jboss.webbeans.bindings.CurrentAnnotationLiteral;
+import org.jboss.webbeans.introspector.AnnotatedParameter;
+
+public class InjectableParameter<T> extends Injectable<T, Object>
+{
+
+ private static Annotation[] currentBinding = {new CurrentAnnotationLiteral()};
+
+ protected InjectableParameter() {}
+
+ public InjectableParameter(Annotation[] bindingTypes, Class<T> type)
+ {
+ super(new SimpleAnnotatedParameter<T>(bindingTypes, type));
+ }
+
+ public InjectableParameter(AnnotatedParameter<T> annotatedParameter)
+ {
+ super(annotatedParameter);
+ }
+
+ public InjectableParameter(Class<T> type)
+ {
+ this(currentBinding, type);
+ }
+
+}
Property changes on: ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/impl/InjectableParameter.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Copied: ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/impl/InjectableWrapper.java (from rev 272, ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/injectable/InjectableWrapper.java)
===================================================================
--- ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/impl/InjectableWrapper.java (rev 0)
+++ ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/impl/InjectableWrapper.java 2008-11-09 07:52:05 UTC (rev 284)
@@ -0,0 +1,46 @@
+package org.jboss.webbeans.introspector.impl;
+
+import java.lang.annotation.Annotation;
+import java.util.List;
+import java.util.Set;
+
+import javax.webbeans.manager.Bean;
+
+import org.jboss.webbeans.ManagerImpl;
+import org.jboss.webbeans.ModelManager;
+
+public class InjectableWrapper<T, S> extends Injectable<T, S>
+{
+
+ private Injectable<T, S> delegate;
+
+ public InjectableWrapper(Injectable<T, S> delegate)
+ {
+ this.delegate = delegate;
+ }
+
+ @Override
+ public Set<Annotation> getBindingTypes()
+ {
+ return delegate.getBindingTypes();
+ }
+
+ @Override
+ public Set<Bean<?>> getMatchingBeans(List<Bean<?>> possibleBeans, ModelManager modelManager)
+ {
+ return delegate.getMatchingBeans(possibleBeans, modelManager);
+ }
+
+ @Override
+ public Class<? extends T> getType()
+ {
+ return delegate.getType();
+ }
+
+ @Override
+ public T getValue(ManagerImpl manager)
+ {
+ return delegate.getValue(manager);
+ }
+
+}
\ No newline at end of file
Property changes on: ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/impl/InjectableWrapper.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Copied: ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/impl/Invokable.java (from rev 272, ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/injectable/Invokable.java)
===================================================================
--- ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/impl/Invokable.java (rev 0)
+++ ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/impl/Invokable.java 2008-11-09 07:52:05 UTC (rev 284)
@@ -0,0 +1,50 @@
+package org.jboss.webbeans.introspector.impl;
+
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
+
+import javax.webbeans.manager.Manager;
+
+import org.jboss.webbeans.ManagerImpl;
+import org.jboss.webbeans.introspector.AnnotatedParameter;
+
+public abstract class Invokable<T, S>
+{
+
+ private List<InjectableParameter<Object>> parameters;
+
+ protected Invokable() {}
+
+ public Invokable(List<AnnotatedParameter<Object>> parameters)
+ {
+ this.parameters = new ArrayList<InjectableParameter<Object>>();
+ for (AnnotatedParameter<Object> parameter : parameters)
+ {
+ this.parameters.add(new InjectableParameter<Object>(parameter));
+ }
+ }
+
+ public abstract S getAnnotatedItem();
+
+ protected Object[] getParameterValues(ManagerImpl manager)
+ {
+ Object[] parameterValues = new Object[parameters.size()];
+ Iterator<InjectableParameter<Object>> iterator = parameters.iterator();
+ for (int i = 0; i < parameterValues.length; i++)
+ {
+ parameterValues[i] = iterator.next().getValue(manager);
+ }
+ return parameterValues;
+ }
+
+ public List<InjectableParameter<Object>> getParameters()
+ {
+ return parameters;
+ }
+
+ public abstract T invoke(Manager container, Object instance, Object[] parameters);
+
+ public abstract T invoke(ManagerImpl container, Object instance);
+
+}
Property changes on: ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/impl/Invokable.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Copied: ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/impl/ResolverInjectable.java (from rev 272, ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/injectable/ResolverInjectable.java)
===================================================================
--- ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/impl/ResolverInjectable.java (rev 0)
+++ ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/impl/ResolverInjectable.java 2008-11-09 07:52:05 UTC (rev 284)
@@ -0,0 +1,53 @@
+package org.jboss.webbeans.introspector.impl;
+
+import java.lang.annotation.Annotation;
+import java.lang.reflect.Type;
+
+import javax.webbeans.BindingType;
+import javax.webbeans.DuplicateBindingTypeException;
+import javax.webbeans.TypeLiteral;
+
+import org.jboss.webbeans.ModelManager;
+
+/**
+ * TODO Rename this to something which implies it only ever used for resolution
+ * @author Pete Muir
+ *
+ */
+public class ResolverInjectable<T> extends Injectable<T, Object>
+{
+
+ public ResolverInjectable(SimpleAnnotatedItem<T, Object> annotatedItem, ModelManager modelManager)
+ {
+ super(annotatedItem);
+ for (Annotation annotation : annotatedItem.getAnnotations())
+ {
+ if (!modelManager.getBindingTypeModel(annotation.annotationType()).isValid())
+ {
+ throw new IllegalArgumentException("Not a binding type " + annotation);
+ }
+ }
+ if (annotatedItem.getActualAnnotations().length > annotatedItem.getAnnotations(BindingType.class).size())
+ {
+ throw new DuplicateBindingTypeException(getAnnotatedItem().toString());
+ }
+
+
+ }
+
+ public ResolverInjectable(Class<T> type, Annotation[] bindingTypes, ModelManager modelManager)
+ {
+ this(new SimpleAnnotatedItem<T, Object>(bindingTypes, type), modelManager);
+ }
+
+ public ResolverInjectable(Class<T> type, Annotation[] bindingTypes, ModelManager modelManager, Type ... actualTypeArguments)
+ {
+ this(new SimpleAnnotatedItem<T, Object>(bindingTypes, type, actualTypeArguments), modelManager);
+ }
+
+ public ResolverInjectable(TypeLiteral<T> apiType, Annotation[] bindingTypes, ModelManager modelManager)
+ {
+ this(new SimpleAnnotatedItem<T, Object>(bindingTypes, apiType), modelManager);
+ }
+
+}
Property changes on: ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/impl/ResolverInjectable.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Modified: ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/impl/SimpleAnnotatedConstructor.java
===================================================================
--- ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/impl/SimpleAnnotatedConstructor.java 2008-11-08 18:02:13 UTC (rev 283)
+++ ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/impl/SimpleAnnotatedConstructor.java 2008-11-09 07:52:05 UTC (rev 284)
@@ -2,12 +2,16 @@
import java.lang.annotation.Annotation;
import java.lang.reflect.Constructor;
+import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Type;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
+import javax.webbeans.ExecutionException;
+
+import org.jboss.webbeans.ManagerImpl;
import org.jboss.webbeans.introspector.AnnotatedConstructor;
import org.jboss.webbeans.introspector.AnnotatedParameter;
@@ -126,6 +130,30 @@
return annotatedParameters.get(annotationType);
}
+ public T newInstance(ManagerImpl manager)
+ {
+ try
+ {
+ return getDelegate().newInstance(getParameterValues(parameters, manager));
+ }
+ catch (IllegalArgumentException e)
+ {
+ throw new ExecutionException(e);
+ }
+ catch (InstantiationException e)
+ {
+ throw new ExecutionException(e);
+ }
+ catch (IllegalAccessException e)
+ {
+ throw new ExecutionException(e);
+ }
+ catch (InvocationTargetException e)
+ {
+ throw new ExecutionException(e);
+ }
+ }
+
@Override
public boolean equals(Object other)
{
Modified: ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/impl/SimpleAnnotatedField.java
===================================================================
--- ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/impl/SimpleAnnotatedField.java 2008-11-08 18:02:13 UTC (rev 283)
+++ ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/impl/SimpleAnnotatedField.java 2008-11-09 07:52:05 UTC (rev 284)
@@ -4,7 +4,9 @@
import java.lang.reflect.ParameterizedType;
import java.lang.reflect.Type;
+import org.jboss.webbeans.ManagerImpl;
import org.jboss.webbeans.introspector.AnnotatedField;
+import org.jboss.webbeans.util.Reflections;
public class SimpleAnnotatedField<T> extends AbstractAnnotatedMember<T, Field> implements AnnotatedField<T>
{
@@ -44,4 +46,14 @@
return actualTypeArguments;
}
+ public void inject(Object instance, ManagerImpl manager)
+ {
+ Reflections.setAndWrap(getDelegate(), instance, getValue(manager));
+ }
+
+ public String getPropertyName()
+ {
+ return getName();
+ }
+
}
Modified: ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/impl/SimpleAnnotatedItem.java
===================================================================
--- ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/impl/SimpleAnnotatedItem.java 2008-11-08 18:02:13 UTC (rev 283)
+++ ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/impl/SimpleAnnotatedItem.java 2008-11-09 07:52:05 UTC (rev 284)
@@ -94,5 +94,10 @@
{
return false;
}
+
+ public String getName()
+ {
+ throw new IllegalArgumentException("Unable to determine name");
+ }
}
Modified: ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/impl/SimpleAnnotatedMethod.java
===================================================================
--- ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/impl/SimpleAnnotatedMethod.java 2008-11-08 18:02:13 UTC (rev 283)
+++ ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/impl/SimpleAnnotatedMethod.java 2008-11-09 07:52:05 UTC (rev 284)
@@ -9,8 +9,10 @@
import java.util.List;
import java.util.Map;
+import org.jboss.webbeans.ManagerImpl;
import org.jboss.webbeans.introspector.AnnotatedMethod;
import org.jboss.webbeans.introspector.AnnotatedParameter;
+import org.jboss.webbeans.util.Reflections;
public class SimpleAnnotatedMethod<T> extends AbstractAnnotatedMember<T, Method> implements AnnotatedMethod<T>
{
@@ -21,6 +23,8 @@
private List<AnnotatedParameter<Object>> parameters;
private Map<Class<? extends Annotation>, List<AnnotatedParameter<Object>>> annotatedParameters;
+
+ private String propertyName;
public SimpleAnnotatedMethod(Method method)
{
@@ -151,4 +155,27 @@
return getDelegate().hashCode();
}
+ public T invoke(ManagerImpl manager, Object instance)
+ {
+ return (T) Reflections.invokeAndWrap(getDelegate(), instance, getParameterValues(parameters, manager));
+ }
+
+ public T invoke(Object instance, Object... parameters)
+ {
+ return (T) Reflections.invokeAndWrap(getDelegate(), instance, parameters);
+ }
+
+ public String getPropertyName()
+ {
+ if (propertyName == null)
+ {
+ propertyName = Reflections.getPropertyName(getDelegate());
+ if (propertyName == null)
+ {
+ propertyName = getName();
+ }
+ }
+ return propertyName;
+ }
+
}
Modified: ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/impl/SimpleAnnotatedParameter.java
===================================================================
--- ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/impl/SimpleAnnotatedParameter.java 2008-11-08 18:02:13 UTC (rev 283)
+++ ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/impl/SimpleAnnotatedParameter.java 2008-11-09 07:52:05 UTC (rev 284)
@@ -3,6 +3,9 @@
import java.lang.annotation.Annotation;
import java.lang.reflect.Type;
+import javax.webbeans.BindingType;
+
+import org.jboss.webbeans.ManagerImpl;
import org.jboss.webbeans.introspector.AnnotatedParameter;
public class SimpleAnnotatedParameter<T> extends AbstractAnnotatedItem<T, Object> implements AnnotatedParameter<T>
@@ -44,5 +47,14 @@
return _static;
}
+ public T getValue(ManagerImpl manager)
+ {
+ return manager.getInstanceByType(getType(), getAnnotationsAsArray(BindingType.class));
+ }
+ public String getName()
+ {
+ throw new IllegalArgumentException("Unable to determine name of parameter");
+ }
+
}
Modified: ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/model/AnnotationModel.java
===================================================================
--- ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/model/AnnotationModel.java 2008-11-08 18:02:13 UTC (rev 283)
+++ ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/model/AnnotationModel.java 2008-11-09 07:52:05 UTC (rev 284)
@@ -40,7 +40,7 @@
public Class<T> getType()
{
- return annotatedAnnotation.getDelegate();
+ return annotatedAnnotation.getType();
}
protected abstract Class<? extends Annotation> getMetaAnnotation();
Modified: ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/model/BindingTypeModel.java
===================================================================
--- ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/model/BindingTypeModel.java 2008-11-08 18:02:13 UTC (rev 283)
+++ ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/model/BindingTypeModel.java 2008-11-09 07:52:05 UTC (rev 284)
@@ -95,8 +95,8 @@
{
if (!nonBindingTypes.contains(annotatedMethod))
{
- Object thisValue = Reflections.invokeAndWrap(annotatedMethod.getDelegate(), instance);
- Object thatValue = Reflections.invokeAndWrap(annotatedMethod.getDelegate(), other);
+ Object thisValue = annotatedMethod.invoke(instance);
+ Object thatValue = annotatedMethod.invoke(other);
if (!thisValue.equals(thatValue))
{
return false;
Deleted: ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/model/MergedStereotypesModel.java
===================================================================
--- ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/model/MergedStereotypesModel.java 2008-11-08 18:02:13 UTC (rev 283)
+++ ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/model/MergedStereotypesModel.java 2008-11-09 07:52:05 UTC (rev 284)
@@ -1,105 +0,0 @@
-package org.jboss.webbeans.model;
-
-import java.lang.annotation.Annotation;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.Map;
-import java.util.Set;
-
-import javax.webbeans.Stereotype;
-
-import org.jboss.webbeans.ManagerImpl;
-import org.jboss.webbeans.introspector.AnnotatedItem;
-
-/**
- * Meta model for the merged stereotype for a bean
- * @author pmuir
- *
- */
-public class MergedStereotypesModel<T, E>
-{
-
- private Map<Class<? extends Annotation>, Annotation> possibleDeploymentTypes;
- private Set<Annotation> possibleScopeTypes;
- private boolean beanNameDefaulted;
- private Set<Class<?>> requiredTypes;
- private Set<Class<? extends Annotation>> supportedScopes;
- private boolean isDeclaredInXml;
-
- public MergedStereotypesModel(AnnotatedItem<T, E> annotatedItem, AnnotatedItem<T, E> xmlAnnotatedItem, ManagerImpl manager)
- {
- possibleDeploymentTypes = new HashMap<Class<? extends Annotation>, Annotation>();
- possibleScopeTypes = new HashSet<Annotation>();
- requiredTypes = new HashSet<Class<?>>();
- supportedScopes = new HashSet<Class<? extends Annotation>>();
-
- if (xmlAnnotatedItem != null && xmlAnnotatedItem.getAnnotations(Stereotype.class).size() > 0)
- {
- merge(xmlAnnotatedItem.getAnnotations(Stereotype.class), manager);
- isDeclaredInXml = true;
- }
- else if (annotatedItem != null)
- {
- merge(annotatedItem.getAnnotations(Stereotype.class), manager);
- }
-
- }
-
- private void merge(Set<Annotation> stereotypeAnnotations, ManagerImpl manager)
- {
- for (Annotation stereotypeAnnotation : stereotypeAnnotations)
- {
- // Retrieve and merge all metadata from stereotypes
- StereotypeModel<?> stereotype = manager.getModelManager().getStereotype(stereotypeAnnotation.annotationType());
- if (stereotype == null)
- {
- throw new NullPointerException("Stereotype " + stereotypeAnnotation + " not registered with container");
- }
- if (stereotype.getDefaultDeploymentType() != null)
- {
- possibleDeploymentTypes.put(stereotype.getDefaultDeploymentType().annotationType(), stereotype.getDefaultDeploymentType());
- }
- if (stereotype.getDefaultScopeType() != null)
- {
- possibleScopeTypes.add(stereotype.getDefaultScopeType());
- }
- requiredTypes.addAll(stereotype.getRequiredTypes());
- supportedScopes.addAll(stereotype.getSupportedScopes());
- if (stereotype.isBeanNameDefaulted())
- {
- beanNameDefaulted = true;
- }
- }
- }
-
- public Map<Class<? extends Annotation>, Annotation> getPossibleDeploymentTypes()
- {
- return possibleDeploymentTypes;
- }
-
- public Set<Annotation> getPossibleScopeTypes()
- {
- return possibleScopeTypes;
- }
-
- public boolean isBeanNameDefaulted()
- {
- return beanNameDefaulted;
- }
-
- public Set<Class<?>> getRequiredTypes()
- {
- return requiredTypes;
- }
-
- public Set<Class<? extends Annotation>> getSupportedScopes()
- {
- return supportedScopes;
- }
-
- public boolean isDeclaredInXml()
- {
- return isDeclaredInXml;
- }
-
-}
15 years, 5 months
[webbeans-commits] Webbeans SVN: r283 - ri/trunk/webbeans-ri.
by webbeans-commits@lists.jboss.org
Author: gavin.king(a)jboss.com
Date: 2008-11-08 13:02:13 -0500 (Sat, 08 Nov 2008)
New Revision: 283
Modified:
ri/trunk/webbeans-ri/pom.xml
Log:
minor
Modified: ri/trunk/webbeans-ri/pom.xml
===================================================================
--- ri/trunk/webbeans-ri/pom.xml 2008-11-08 18:01:23 UTC (rev 282)
+++ ri/trunk/webbeans-ri/pom.xml 2008-11-08 18:02:13 UTC (rev 283)
@@ -38,6 +38,7 @@
<dependency>
<groupId>javax.ejb</groupId>
<artifactId>ejb-api</artifactId>
+ <scope>test</scope>
</dependency>
<dependency>
15 years, 5 months
[webbeans-commits] Webbeans SVN: r282 - ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test.
by webbeans-commits@lists.jboss.org
Author: gavin.king(a)jboss.com
Date: 2008-11-08 13:01:23 -0500 (Sat, 08 Nov 2008)
New Revision: 282
Modified:
ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/ClientProxyTest.java
ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/ResolutionByTypeTest.java
Log:
fix tests
Modified: ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/ClientProxyTest.java
===================================================================
--- ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/ClientProxyTest.java 2008-11-08 18:01:05 UTC (rev 281)
+++ ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/ClientProxyTest.java 2008-11-08 18:01:23 UTC (rev 282)
@@ -89,7 +89,7 @@
public void testProxyCreationDoesImplicitAddBean() {
Bean<Tuna> tunaBean = Util.createSimpleWebBean(Tuna.class, manager);
Tuna tuna = manager.getInstance(tunaBean);
- assert manager.getBeans().size() == 1;
+ assert manager.getBeans().size() == 2;
}
}
Modified: ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/ResolutionByTypeTest.java
===================================================================
--- ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/ResolutionByTypeTest.java 2008-11-08 18:01:05 UTC (rev 281)
+++ ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/ResolutionByTypeTest.java 2008-11-08 18:01:23 UTC (rev 282)
@@ -309,7 +309,7 @@
manager.addBean(salmonBean);
manager.addBean(soleBean);
- assert manager.resolveByType(Object.class).size() == 3;
+ assert manager.resolveByType(Object.class).size() == 4;
assert manager.resolveByType(Object.class).contains(plaiceBean);
assert manager.resolveByType(Object.class).contains(salmonBean);
assert manager.resolveByType(Object.class).contains(soleBean);
15 years, 5 months