[webbeans-commits] Webbeans SVN: r231 - in ri/trunk/webbeans-ri/src: test/java/org/jboss/webbeans/test and 1 other directories.
by webbeans-commits@lists.jboss.org
Author: nickarls
Date: 2008-11-04 05:45:28 -0500 (Tue, 04 Nov 2008)
New Revision: 231
Added:
ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/beans/broken/JackRussellTerrier.java
ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/beans/broken/Pumi.java
ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/beans/broken/RussellTerrier.java
ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/beans/broken/Toller.java
ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/beans/broken/WelshCorgie.java
Modified:
ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/model/bean/EnterpriseBeanModel.java
ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/EnterpriseBeanModelTest.java
Log:
Some more EJB tests + fixes
Modified: ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/model/bean/EnterpriseBeanModel.java
===================================================================
--- ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/model/bean/EnterpriseBeanModel.java 2008-11-04 08:27:26 UTC (rev 230)
+++ ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/model/bean/EnterpriseBeanModel.java 2008-11-04 10:45:28 UTC (rev 231)
@@ -1,12 +1,19 @@
package org.jboss.webbeans.model.bean;
+import java.lang.annotation.Annotation;
import java.lang.reflect.Method;
import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collections;
import java.util.List;
import javax.webbeans.DefinitionException;
import javax.webbeans.Dependent;
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.injectable.BeanConstructor;
@@ -73,6 +80,7 @@
return location;
}
+
// TODO loggigng
protected void initRemoveMethod(ManagerImpl container)
{
@@ -80,7 +88,8 @@
{
if (getEjbMetaData().getRemoveMethods().size() == 1)
{
- super.removeMethod = new InjectableMethod<Object>(getEjbMetaData().getRemoveMethods().get(0));
+// super.removeMethod = new InjectableMethod<Object>(getEjbMetaData().getRemoveMethods().get(0));
+ super.removeMethod = checkRemoveMethod(getEjbMetaData().getRemoveMethods().get(0));
}
else if (getEjbMetaData().getRemoveMethods().size() > 1)
{
@@ -94,7 +103,7 @@
}
if (possibleRemoveMethods.size() == 1)
{
- super.removeMethod = new InjectableMethod<Object>(possibleRemoveMethods.get(0));
+ super.removeMethod = checkRemoveMethod(possibleRemoveMethods.get(0));
}
else if (possibleRemoveMethods.size() > 1)
{
@@ -115,11 +124,43 @@
List<Method> destroysMethods = Reflections.getMethods(getType(), Destructor.class);
if (destroysMethods.size() > 0)
{
- throw new RuntimeException("Only stateful enterprise beans can have methods annotated @Destructor; " + getType() + " is not a stateful enterprise bean");
+ 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(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);
+ }
+
+
+ //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 AbstractClassBeanModel<? extends T> getSpecializedType()
{
Modified: ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/EnterpriseBeanModelTest.java
===================================================================
--- ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/EnterpriseBeanModelTest.java 2008-11-04 08:27:26 UTC (rev 230)
+++ ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/EnterpriseBeanModelTest.java 2008-11-04 10:45:28 UTC (rev 231)
@@ -16,12 +16,17 @@
import org.jboss.webbeans.test.beans.broken.Greyhound;
import org.jboss.webbeans.test.beans.broken.Husky;
import org.jboss.webbeans.test.beans.broken.IrishTerrier;
+import org.jboss.webbeans.test.beans.broken.JackRussellTerrier;
import org.jboss.webbeans.test.beans.broken.Pekingese;
import org.jboss.webbeans.test.beans.broken.Poodle;
import org.jboss.webbeans.test.beans.broken.Pug;
+import org.jboss.webbeans.test.beans.broken.Pumi;
import org.jboss.webbeans.test.beans.broken.Rottweiler;
+import org.jboss.webbeans.test.beans.broken.RussellTerrier;
import org.jboss.webbeans.test.beans.broken.Saluki;
import org.jboss.webbeans.test.beans.broken.Spitz;
+import org.jboss.webbeans.test.beans.broken.Toller;
+import org.jboss.webbeans.test.beans.broken.WelshCorgie;
import org.jboss.webbeans.test.beans.broken.Whippet;
import org.jboss.webbeans.test.util.Util;
import org.testng.annotations.Test;
@@ -182,7 +187,8 @@
@SpecAssertion(section = "3.3.2")
public void testObjectIsInAPITypes()
{
- assert false;
+ EnterpriseBeanModel<Laika> laika = Util.createEnterpriseBeanModel(Laika.class, manager);
+ assert laika.getApiTypes().contains(Object.class);
}
@Test
@@ -306,23 +312,30 @@
@Test(expectedExceptions = DefinitionException.class)
@SpecAssertion(section = "3.3.5.1")
+ public void testAnnotationDefinedEJBWithDestructorWithDisposesParameterFails()
+ {
+ EnterpriseBeanModel<Pumi> pumi = Util.createEnterpriseBeanModel(Pumi.class, manager);
+ }
+
+ @Test(expectedExceptions = DefinitionException.class)
+ @SpecAssertion(section = "3.3.5.1")
public void testEJBWithInitializerAnnotationOnRemoveMethodFails()
{
- assert false;
+ EnterpriseBeanModel<JackRussellTerrier> jackRussellTerrier = Util.createEnterpriseBeanModel(JackRussellTerrier.class, manager);
}
@Test(expectedExceptions = DefinitionException.class)
@SpecAssertion(section = "3.3.5.1")
public void testEJBWithProducerAnnotationOnRemoveMethodFails()
{
- assert false;
+ EnterpriseBeanModel<RussellTerrier> russellTerrier = Util.createEnterpriseBeanModel(RussellTerrier.class, manager);
}
@Test(expectedExceptions = DefinitionException.class)
@SpecAssertion(section = "3.3.5.1")
public void testEJBWithRemoveMethodTakingObserverAnnotatedParameterFails()
{
- assert false;
+ EnterpriseBeanModel<Toller> toller = Util.createEnterpriseBeanModel(Toller.class, manager);
}
// TODO Separate section for XML defined beans?
@@ -384,6 +397,11 @@
assert pitbull.getName().equals("pitbull");
}
+ @Test(expectedExceptions=DefinitionException.class)
+ public void testStatelessEJBsWithDestructorAnnotationFails()
+ {
+ EnterpriseBeanModel<WelshCorgie> welshCorgie = Util.createEnterpriseBeanModel(WelshCorgie.class, manager);
+ }
/*
@Test
Added: ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/beans/broken/JackRussellTerrier.java
===================================================================
--- ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/beans/broken/JackRussellTerrier.java (rev 0)
+++ ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/beans/broken/JackRussellTerrier.java 2008-11-04 10:45:28 UTC (rev 231)
@@ -0,0 +1,15 @@
+package org.jboss.webbeans.test.beans.broken;
+
+import javax.ejb.Remove;
+import javax.ejb.Stateful;
+import javax.webbeans.Initializer;
+
+@Stateful
+public class JackRussellTerrier
+{
+ @Remove
+ @Initializer
+ public void destroy() {
+
+ }
+}
Added: ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/beans/broken/Pumi.java
===================================================================
--- ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/beans/broken/Pumi.java (rev 0)
+++ ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/beans/broken/Pumi.java 2008-11-04 10:45:28 UTC (rev 231)
@@ -0,0 +1,17 @@
+package org.jboss.webbeans.test.beans.broken;
+
+import javax.ejb.Remove;
+import javax.ejb.Stateful;
+import javax.webbeans.Disposes;
+
+import org.jboss.webbeans.test.annotations.Tame;
+import org.jboss.webbeans.test.beans.Horse;
+
+@Stateful
+public class Pumi
+{
+ @Remove
+ public void destroy(@Disposes @Tame Horse horse) {
+
+ }
+}
Added: ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/beans/broken/RussellTerrier.java
===================================================================
--- ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/beans/broken/RussellTerrier.java (rev 0)
+++ ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/beans/broken/RussellTerrier.java 2008-11-04 10:45:28 UTC (rev 231)
@@ -0,0 +1,15 @@
+package org.jboss.webbeans.test.beans.broken;
+
+import javax.ejb.Remove;
+import javax.ejb.Stateful;
+import javax.webbeans.Produces;
+
+@Stateful
+public class RussellTerrier
+{
+ @Remove
+ @Produces
+ public void destroy() {
+
+ }
+}
Added: ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/beans/broken/Toller.java
===================================================================
--- ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/beans/broken/Toller.java (rev 0)
+++ ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/beans/broken/Toller.java 2008-11-04 10:45:28 UTC (rev 231)
@@ -0,0 +1,17 @@
+package org.jboss.webbeans.test.beans.broken;
+
+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) {
+
+ }
+}
Added: ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/beans/broken/WelshCorgie.java
===================================================================
--- ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/beans/broken/WelshCorgie.java (rev 0)
+++ ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/beans/broken/WelshCorgie.java 2008-11-04 10:45:28 UTC (rev 231)
@@ -0,0 +1,13 @@
+package org.jboss.webbeans.test.beans.broken;
+
+import javax.ejb.Stateless;
+import javax.webbeans.Destructor;
+
+@Stateless
+public class WelshCorgie
+{
+ @Destructor
+ public void destroy() {
+
+ }
+}
15 years, 5 months
[webbeans-commits] Webbeans SVN: r230 - in ri/trunk/webbeans-ri/src: main/java/org/jboss/webbeans/model/bean and 3 other directories.
by webbeans-commits@lists.jboss.org
Author: nickarls
Date: 2008-11-04 03:27:26 -0500 (Tue, 04 Nov 2008)
New Revision: 230
Added:
ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/beans/broken/Poodle.java
ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/beans/broken/Rottweiler.java
ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/beans/broken/Saluki.java
ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/beans/broken/Spitz.java
ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/beans/broken/Whippet.java
Modified:
ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/ejb/EjbMetaData.java
ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/model/bean/AbstractEnterpriseBeanModel.java
ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/model/bean/EnterpriseBeanModel.java
ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/EnterpriseBeanModelTest.java
ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/beans/Pitbull.java
Log:
More EJB tests + fixes
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-04 07:19:07 UTC (rev 229)
+++ ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/ejb/EjbMetaData.java 2008-11-04 08:27:26 UTC (rev 230)
@@ -14,6 +14,8 @@
import java.util.ArrayList;
import java.util.List;
+import javax.webbeans.Destructor;
+
import org.jboss.webbeans.util.Reflections;
public class EjbMetaData<T>
@@ -58,6 +60,10 @@
{
removeMethods.add(removeMethod);
}
+ for (Method destructorMethod : Reflections.getMethods(type, Destructor.class))
+ {
+ removeMethods.add(destructorMethod);
+ }
}
else if (type.isAnnotationPresent(MESSAGE_DRIVEN_ANNOTATION))
{
Modified: ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/model/bean/AbstractEnterpriseBeanModel.java
===================================================================
--- ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/model/bean/AbstractEnterpriseBeanModel.java 2008-11-04 07:19:07 UTC (rev 229)
+++ ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/model/bean/AbstractEnterpriseBeanModel.java 2008-11-04 08:27:26 UTC (rev 230)
@@ -20,7 +20,6 @@
AnnotatedType<T> xmlAnnotatedItem)
{
super(annotatedItem, xmlAnnotatedItem);
-
}
@Override
Modified: ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/model/bean/EnterpriseBeanModel.java
===================================================================
--- ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/model/bean/EnterpriseBeanModel.java 2008-11-04 07:19:07 UTC (rev 229)
+++ ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/model/bean/EnterpriseBeanModel.java 2008-11-04 08:27:26 UTC (rev 230)
@@ -98,11 +98,11 @@
}
else if (possibleRemoveMethods.size() > 1)
{
- throw new RuntimeException("Multiple remove methods are annotated @Destroys for " + getType());
+ 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 @Destroys for " + getType());
+ throw new RuntimeException("Multiple remove methods are declared, and none are annotated @Destructor for " + getType());
}
}
else if (getEjbMetaData().getRemoveMethods().isEmpty() && !getScopeType().equals(Dependent.class))
@@ -115,7 +115,7 @@
List<Method> destroysMethods = Reflections.getMethods(getType(), Destructor.class);
if (destroysMethods.size() > 0)
{
- throw new RuntimeException("Only stateful enterprise beans can have methods annotated @Destroys; " + getType() + " is not a stateful enterprise bean");
+ throw new RuntimeException("Only stateful enterprise beans can have methods annotated @Destructor; " + getType() + " is not a stateful enterprise bean");
}
}
}
Modified: ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/EnterpriseBeanModelTest.java
===================================================================
--- ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/EnterpriseBeanModelTest.java 2008-11-04 07:19:07 UTC (rev 229)
+++ ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/EnterpriseBeanModelTest.java 2008-11-04 08:27:26 UTC (rev 230)
@@ -4,7 +4,6 @@
import javax.webbeans.DeploymentException;
import javax.webbeans.UnremovedException;
-import org.jboss.webbeans.model.StereotypeModel;
import org.jboss.webbeans.model.bean.EnterpriseBeanModel;
import org.jboss.webbeans.test.beans.Giraffe;
import org.jboss.webbeans.test.beans.GreatDane;
@@ -18,7 +17,12 @@
import org.jboss.webbeans.test.beans.broken.Husky;
import org.jboss.webbeans.test.beans.broken.IrishTerrier;
import org.jboss.webbeans.test.beans.broken.Pekingese;
+import org.jboss.webbeans.test.beans.broken.Poodle;
import org.jboss.webbeans.test.beans.broken.Pug;
+import org.jboss.webbeans.test.beans.broken.Rottweiler;
+import org.jboss.webbeans.test.beans.broken.Saluki;
+import org.jboss.webbeans.test.beans.broken.Spitz;
+import org.jboss.webbeans.test.beans.broken.Whippet;
import org.jboss.webbeans.test.util.Util;
import org.testng.annotations.Test;
@@ -204,7 +208,7 @@
@Test(expectedExceptions = DefinitionException.class)
@SpecAssertion(section = "3.3.4")
- public void testMessageDrivenBeansNotOK()
+ public void testMessageDrivenBeansDefinedWithXMLNotOK()
{
assert false;
}
@@ -227,28 +231,28 @@
@SpecAssertion(section = "3.3.5")
public void testStatefulEJBWithoutRemoveMethodInApplicationScopeFails()
{
- assert false;
+ EnterpriseBeanModel<Poodle> poodle = Util.createEnterpriseBeanModel(Poodle.class, manager);
}
@Test(expectedExceptions = DefinitionException.class)
@SpecAssertion(section = "3.3.5")
public void testStatefulEJBWithoutRemoveMethodInSessionScopeFails()
{
- assert false;
+ EnterpriseBeanModel<Rottweiler> rottweiler = Util.createEnterpriseBeanModel(Rottweiler.class, manager);
}
@Test(expectedExceptions = DefinitionException.class)
@SpecAssertion(section = "3.3.5")
public void testStatefulEJBWithoutRemoveMethodInConversationScopeFails()
{
- assert false;
+ EnterpriseBeanModel<Spitz> spitz = Util.createEnterpriseBeanModel(Spitz.class, manager);
}
@Test(expectedExceptions = DefinitionException.class)
@SpecAssertion(section = "3.3.5")
public void testStatefulEJBWithoutRemoveMethodInRequestScopeFails()
{
- assert false;
+ EnterpriseBeanModel<Saluki> saluki = Util.createEnterpriseBeanModel(Saluki.class, manager);
}
@Test(expectedExceptions = UnremovedException.class)
@@ -290,7 +294,7 @@
@SpecAssertion(section = "3.3.5.1")
public void testEJBWithMultipleDestructorAnnotationsFail()
{
- assert false;
+ EnterpriseBeanModel<Whippet> whippet = Util.createEnterpriseBeanModel(Whippet.class, manager);
}
@Test(expectedExceptions = DefinitionException.class)
@@ -376,7 +380,8 @@
@SpecAssertion(section = "3.3.7")
public void testDefaultName()
{
- assert false;
+ EnterpriseBeanModel<Pitbull> pitbull = Util.createEnterpriseBeanModel(Pitbull.class, manager);
+ assert pitbull.getName().equals("pitbull");
}
Modified: ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/beans/Pitbull.java
===================================================================
--- ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/beans/Pitbull.java 2008-11-04 07:19:07 UTC (rev 229)
+++ ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/beans/Pitbull.java 2008-11-04 08:27:26 UTC (rev 230)
@@ -1,8 +1,10 @@
package org.jboss.webbeans.test.beans;
import javax.ejb.Stateful;
+import javax.webbeans.Named;
@Stateful
+@Named
public class Pitbull
{
Added: ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/beans/broken/Poodle.java
===================================================================
--- ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/beans/broken/Poodle.java (rev 0)
+++ ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/beans/broken/Poodle.java 2008-11-04 08:27:26 UTC (rev 230)
@@ -0,0 +1,11 @@
+package org.jboss.webbeans.test.beans.broken;
+
+import javax.ejb.Stateful;
+import javax.webbeans.ApplicationScoped;
+
+@Stateful
+@ApplicationScoped
+public class Poodle
+{
+
+}
Added: ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/beans/broken/Rottweiler.java
===================================================================
--- ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/beans/broken/Rottweiler.java (rev 0)
+++ ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/beans/broken/Rottweiler.java 2008-11-04 08:27:26 UTC (rev 230)
@@ -0,0 +1,11 @@
+package org.jboss.webbeans.test.beans.broken;
+
+import javax.ejb.Stateful;
+import javax.webbeans.SessionScoped;
+
+@Stateful
+@SessionScoped
+public class Rottweiler
+{
+
+}
Added: ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/beans/broken/Saluki.java
===================================================================
--- ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/beans/broken/Saluki.java (rev 0)
+++ ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/beans/broken/Saluki.java 2008-11-04 08:27:26 UTC (rev 230)
@@ -0,0 +1,11 @@
+package org.jboss.webbeans.test.beans.broken;
+
+import javax.ejb.Stateful;
+import javax.webbeans.RequestScoped;
+
+@Stateful
+@RequestScoped
+public class Saluki
+{
+
+}
Added: ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/beans/broken/Spitz.java
===================================================================
--- ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/beans/broken/Spitz.java (rev 0)
+++ ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/beans/broken/Spitz.java 2008-11-04 08:27:26 UTC (rev 230)
@@ -0,0 +1,11 @@
+package org.jboss.webbeans.test.beans.broken;
+
+import javax.ejb.Stateful;
+import javax.webbeans.ConversationScoped;
+
+@Stateful
+@ConversationScoped
+public class Spitz
+{
+
+}
Added: ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/beans/broken/Whippet.java
===================================================================
--- ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/beans/broken/Whippet.java (rev 0)
+++ ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/beans/broken/Whippet.java 2008-11-04 08:27:26 UTC (rev 230)
@@ -0,0 +1,18 @@
+package org.jboss.webbeans.test.beans.broken;
+
+import javax.ejb.Stateful;
+import javax.webbeans.Destructor;
+
+@Stateful
+public class Whippet
+{
+ @Destructor
+ public void destroy1() {
+
+ }
+
+ @Destructor
+ public void destroy2() {
+
+ }
+}
15 years, 5 months
[webbeans-commits] Webbeans SVN: r229 - in ri/trunk/webbeans-ri/src: main/java/org/jboss/webbeans/model/bean and 4 other directories.
by webbeans-commits@lists.jboss.org
Author: nickarls
Date: 2008-11-04 02:19:07 -0500 (Tue, 04 Nov 2008)
New Revision: 229
Added:
ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/beans/GreatDane.java
ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/beans/Laika.java
ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/beans/Pitbull.java
ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/beans/broken/Beagle.java
ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/beans/broken/Boxer.java
ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/beans/broken/Bullmastiff.java
ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/beans/broken/Dachshund.java
ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/beans/broken/Greyhound.java
ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/beans/broken/Husky.java
ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/beans/broken/IrishTerrier.java
ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/beans/broken/Pekingese.java
ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/beans/broken/Pug.java
ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/beans/broken/RequestScopedStateless.java
Modified:
ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/ejb/EJB.java
ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/model/bean/AbstractEnterpriseBeanModel.java
ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/model/bean/EnterpriseBeanModel.java
ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/AbstractTest.java
ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/EnterpriseBeanModelTest.java
ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/util/Util.java
Log:
Some more EJB tests + fixes
Modified: ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/ejb/EJB.java
===================================================================
--- ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/ejb/EJB.java 2008-11-03 21:22:31 UTC (rev 228)
+++ ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/ejb/EJB.java 2008-11-04 07:19:07 UTC (rev 229)
@@ -21,7 +21,9 @@
STATELESS_ANNOTATION = classForName("javax.ejb.Stateless");
STATEFUL_ANNOTATION = classForName("javax.ejb.Stateful");
MESSAGE_DRIVEN_ANNOTATION = classForName("javax.ejb.MessageDriven");
- SINGLETON_ANNOTATION = classForName("javax.ejb.Singleton");
+// FIXME Faking singleton
+ SINGLETON_ANNOTATION = classForName("org.jboss.webbeans.test.annotations.Singleton");
+// SINGLETON_ANNOTATION = classForName("javax.ejb.Singleton");
REMOVE_ANNOTATION = classForName("javax.ejb.Remove");
}
Modified: ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/model/bean/AbstractEnterpriseBeanModel.java
===================================================================
--- ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/model/bean/AbstractEnterpriseBeanModel.java 2008-11-03 21:22:31 UTC (rev 228)
+++ ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/model/bean/AbstractEnterpriseBeanModel.java 2008-11-04 07:19:07 UTC (rev 229)
@@ -1,7 +1,10 @@
package org.jboss.webbeans.model.bean;
import javax.webbeans.ApplicationScoped;
+import javax.webbeans.Decorator;
+import javax.webbeans.DefinitionException;
import javax.webbeans.Dependent;
+import javax.webbeans.Interceptor;
import org.jboss.webbeans.ManagerImpl;
import org.jboss.webbeans.ejb.EjbMetaData;
@@ -26,6 +29,7 @@
super.init(container);
ejbMetaData = container.getEjbManager().getEjbMetaData(getType());
checkEnterpriseScopeAllowed();
+ checkConflictingRoles();
}
protected EjbMetaData<T> getEjbMetaData()
@@ -33,6 +37,15 @@
return ejbMetaData;
}
+ 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
@@ -41,11 +54,11 @@
{
if (getEjbMetaData().isStateless() && !getScopeType().equals(Dependent.class))
{
- throw new RuntimeException("Scope " + getScopeType() + " is not allowed on stateless enterpise beans for " + getType() + ". Only @Dependent is allowed on stateless enterprise beans");
+ 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)))
+ if (getEjbMetaData().isSingleton() && (!(getScopeType().equals(Dependent.class) || getScopeType().equals(ApplicationScoped.class))))
{
- throw new RuntimeException("Scope " + getScopeType() + " is not allowed on singleton enterpise beans for " + getType() + ". Only @Dependent or @ApplicationScoped is allowed on singleton enterprise beans");
+ throw new DefinitionException("Scope " + getScopeType() + " is not allowed on singleton enterpise beans for " + getType() + ". Only @Dependent or @ApplicationScoped is allowed on singleton enterprise beans");
}
}
Modified: ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/model/bean/EnterpriseBeanModel.java
===================================================================
--- ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/model/bean/EnterpriseBeanModel.java 2008-11-03 21:22:31 UTC (rev 228)
+++ ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/model/bean/EnterpriseBeanModel.java 2008-11-04 07:19:07 UTC (rev 229)
@@ -4,6 +4,8 @@
import java.util.ArrayList;
import java.util.List;
+import javax.webbeans.DefinitionException;
+import javax.webbeans.Dependent;
import javax.webbeans.Destructor;
import org.jboss.webbeans.ManagerImpl;
@@ -103,9 +105,9 @@
throw new RuntimeException("Multiple remove methods are declared, and none are annotated @Destroys for " + getType());
}
}
- else if (getEjbMetaData().getRemoveMethods().size() == 0)
+ else if (getEjbMetaData().getRemoveMethods().isEmpty() && !getScopeType().equals(Dependent.class))
{
- throw new RuntimeException("Stateful enterprise bean bean has no remove methods declared for " + getType());
+ throw new DefinitionException("No remove methods declared for non-dependent scoped bean " + getType());
}
}
else
Modified: ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/AbstractTest.java
===================================================================
--- ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/AbstractTest.java 2008-11-03 21:22:31 UTC (rev 228)
+++ ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/AbstractTest.java 2008-11-04 07:19:07 UTC (rev 229)
@@ -4,6 +4,8 @@
import java.util.ArrayList;
import java.util.List;
+import javax.webbeans.Decorator;
+import javax.webbeans.Interceptor;
import javax.webbeans.Production;
import javax.webbeans.Standard;
@@ -50,6 +52,8 @@
protected void addStereotypes()
{
+ manager.getModelManager().addStereotype(new StereotypeModel<Decorator>(Decorator.class));
+ manager.getModelManager().addStereotype(new StereotypeModel<Interceptor>(Interceptor.class));
manager.getModelManager().addStereotype(new StereotypeModel<AnimalStereotype>(AnimalStereotype.class));
manager.getModelManager().addStereotype(new StereotypeModel<HornedMammalStereotype>(HornedMammalStereotype.class));
manager.getModelManager().addStereotype(new StereotypeModel<MammalStereotype>(MammalStereotype.class));
Modified: ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/EnterpriseBeanModelTest.java
===================================================================
--- ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/EnterpriseBeanModelTest.java 2008-11-03 21:22:31 UTC (rev 228)
+++ ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/EnterpriseBeanModelTest.java 2008-11-04 07:19:07 UTC (rev 229)
@@ -4,6 +4,22 @@
import javax.webbeans.DeploymentException;
import javax.webbeans.UnremovedException;
+import org.jboss.webbeans.model.StereotypeModel;
+import org.jboss.webbeans.model.bean.EnterpriseBeanModel;
+import org.jboss.webbeans.test.beans.Giraffe;
+import org.jboss.webbeans.test.beans.GreatDane;
+import org.jboss.webbeans.test.beans.Laika;
+import org.jboss.webbeans.test.beans.Pitbull;
+import org.jboss.webbeans.test.beans.broken.Beagle;
+import org.jboss.webbeans.test.beans.broken.Boxer;
+import org.jboss.webbeans.test.beans.broken.Bullmastiff;
+import org.jboss.webbeans.test.beans.broken.Dachshund;
+import org.jboss.webbeans.test.beans.broken.Greyhound;
+import org.jboss.webbeans.test.beans.broken.Husky;
+import org.jboss.webbeans.test.beans.broken.IrishTerrier;
+import org.jboss.webbeans.test.beans.broken.Pekingese;
+import org.jboss.webbeans.test.beans.broken.Pug;
+import org.jboss.webbeans.test.util.Util;
import org.testng.annotations.Test;
@SuppressWarnings( { "unchecked", "unused" })
@@ -15,84 +31,84 @@
@SpecAssertion(section = "3.3")
public void testStatelessWithDependentScopeOK()
{
- assert false;
+ EnterpriseBeanModel<Giraffe> giraffe = Util.createEnterpriseBeanModel(Giraffe.class, manager);
}
@Test(expectedExceptions = DefinitionException.class)
@SpecAssertion(section = "3.3")
public void testStatelessWithRequestScopeFails()
{
- assert false;
+ EnterpriseBeanModel<Beagle> beagle = Util.createEnterpriseBeanModel(Beagle.class, manager);
}
@Test(expectedExceptions = DefinitionException.class)
@SpecAssertion(section = "3.3")
public void testStatelessWithConversationScopeFails()
{
- assert false;
+ EnterpriseBeanModel<Boxer> boxer = Util.createEnterpriseBeanModel(Boxer.class, manager);
}
@Test(expectedExceptions = DefinitionException.class)
@SpecAssertion(section = "3.3")
public void testStatelessWithSessionScopeFails()
{
- assert false;
+ EnterpriseBeanModel<Bullmastiff> boxer = Util.createEnterpriseBeanModel(Bullmastiff.class, manager);
}
@Test(expectedExceptions = DefinitionException.class)
@SpecAssertion(section = "3.3")
public void testStatelessWithApplicationScopeFails()
{
- assert false;
+ EnterpriseBeanModel<Dachshund> dachshund = Util.createEnterpriseBeanModel(Dachshund.class, manager);
}
@Test
@SpecAssertion(section = "3.3")
public void testSingletonWithDependentScopeOK()
{
- assert false;
+ EnterpriseBeanModel<GreatDane> greatDane = Util.createEnterpriseBeanModel(GreatDane.class, manager);
}
@Test(expectedExceptions = DefinitionException.class)
@SpecAssertion(section = "3.3")
public void testSingletonWithRequestScopeFails()
{
- assert false;
+ EnterpriseBeanModel<Greyhound> greyhound = Util.createEnterpriseBeanModel(Greyhound.class, manager);
}
@Test(expectedExceptions = DefinitionException.class)
@SpecAssertion(section = "3.3")
public void testSingletonWithConversationScopeFails()
{
- assert false;
+ EnterpriseBeanModel<Husky> husky = Util.createEnterpriseBeanModel(Husky.class, manager);
}
@Test(expectedExceptions = DefinitionException.class)
@SpecAssertion(section = "3.3")
public void testSingletonWithSessionScopeFails()
{
- assert false;
+ EnterpriseBeanModel<IrishTerrier> irishTerrier = Util.createEnterpriseBeanModel(IrishTerrier.class, manager);
}
@Test
@SpecAssertion(section = "3.3")
public void testSingletonWithApplicationScopeOK()
{
- assert false;
+ EnterpriseBeanModel<Laika> laika = Util.createEnterpriseBeanModel(Laika.class, manager);
}
@Test(expectedExceptions = DefinitionException.class)
@SpecAssertion(section = "3.3")
public void testEJBInterceptorFails()
{
- assert false;
+ EnterpriseBeanModel<Pug> pug = Util.createEnterpriseBeanModel(Pug.class, manager);
}
@Test(expectedExceptions = DefinitionException.class)
@SpecAssertion(section = "3.3")
public void testEJBDecoratorFails()
{
- assert false;
+ EnterpriseBeanModel<Pekingese> pekingese = Util.createEnterpriseBeanModel(Pekingese.class, manager);
}
@Test(expectedExceptions = DefinitionException.class)
@@ -176,7 +192,7 @@
@SpecAssertion(section = "3.3.4")
public void testXMLDefinedEJBIgnoresProducerAndDisposalAndObserverAnnotations()
{
-
+ assert false;
}
@Test(expectedExceptions = DefinitionException.class)
@@ -204,7 +220,7 @@
@SpecAssertion(section = "3.3.5")
public void testStatefulEJBWithoutRemoveMethodInDependentScopeOK()
{
- assert false;
+ EnterpriseBeanModel<Pitbull> pitbull = Util.createEnterpriseBeanModel(Pitbull.class, manager);
}
@Test(expectedExceptions = DefinitionException.class)
@@ -314,7 +330,56 @@
assert false;
}
+ @Test(expectedExceptions=DefinitionException.class)
+ @SpecAssertion(section = "3.3.6")
+ public void testSpecializingNotExtendingSpecializedBeanDirectlyFailes()
+ {
+ assert false;
+ }
+
+ @Test
+ @SpecAssertion(section = "3.3.6")
+ public void testSpecializingBeanInheritsBindingTypes()
+ {
+ assert false;
+ }
+
+ @Test
+ @SpecAssertion(section = "3.3.6")
+ public void testSpecializingBeanInheritsNameIfAny()
+ {
+ assert false;
+ }
+
+ @Test(expectedExceptions=DefinitionException.class)
+ @SpecAssertion(section = "3.3.6")
+ public void testSpecializingNotSupportingLocalInterfacesOfSpecializedFails()
+ {
+ assert false;
+ }
+
+ @Test(expectedExceptions=DefinitionException.class)
+ @SpecAssertion(section = "3.3.6")
+ public void testSpecializingNotSupportingLocalViewOfSpecializedFails()
+ {
+ assert false;
+ }
+
+ @Test
+ @SpecAssertion(section = "3.3.6")
+ public void testXMLDefinedSpecializationOnAnnotationDefinedBean()
+ {
+ assert false;
+ }
+ @Test
+ @SpecAssertion(section = "3.3.7")
+ public void testDefaultName()
+ {
+ assert false;
+ }
+
+
/*
@Test
@SpecAssertion(section = "3.3.5.1")
Added: ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/beans/GreatDane.java
===================================================================
--- ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/beans/GreatDane.java (rev 0)
+++ ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/beans/GreatDane.java 2008-11-04 07:19:07 UTC (rev 229)
@@ -0,0 +1,12 @@
+package org.jboss.webbeans.test.beans;
+
+import javax.webbeans.Dependent;
+
+import org.jboss.webbeans.test.annotations.Singleton;
+
+@Singleton
+@Dependent
+public class GreatDane
+{
+
+}
Added: ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/beans/Laika.java
===================================================================
--- ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/beans/Laika.java (rev 0)
+++ ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/beans/Laika.java 2008-11-04 07:19:07 UTC (rev 229)
@@ -0,0 +1,12 @@
+package org.jboss.webbeans.test.beans;
+
+import javax.webbeans.ApplicationScoped;
+
+import org.jboss.webbeans.test.annotations.Singleton;
+
+@Singleton
+@ApplicationScoped
+public class Laika
+{
+
+}
Added: ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/beans/Pitbull.java
===================================================================
--- ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/beans/Pitbull.java (rev 0)
+++ ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/beans/Pitbull.java 2008-11-04 07:19:07 UTC (rev 229)
@@ -0,0 +1,9 @@
+package org.jboss.webbeans.test.beans;
+
+import javax.ejb.Stateful;
+
+@Stateful
+public class Pitbull
+{
+
+}
Added: ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/beans/broken/Beagle.java
===================================================================
--- ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/beans/broken/Beagle.java (rev 0)
+++ ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/beans/broken/Beagle.java 2008-11-04 07:19:07 UTC (rev 229)
@@ -0,0 +1,11 @@
+package org.jboss.webbeans.test.beans.broken;
+
+import javax.ejb.Stateless;
+import javax.webbeans.RequestScoped;
+
+@Stateless
+@RequestScoped
+public class Beagle
+{
+
+}
Added: ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/beans/broken/Boxer.java
===================================================================
--- ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/beans/broken/Boxer.java (rev 0)
+++ ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/beans/broken/Boxer.java 2008-11-04 07:19:07 UTC (rev 229)
@@ -0,0 +1,11 @@
+package org.jboss.webbeans.test.beans.broken;
+
+import javax.ejb.Stateless;
+import javax.webbeans.ConversationScoped;
+
+@Stateless
+@ConversationScoped
+public class Boxer
+{
+
+}
Added: ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/beans/broken/Bullmastiff.java
===================================================================
--- ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/beans/broken/Bullmastiff.java (rev 0)
+++ ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/beans/broken/Bullmastiff.java 2008-11-04 07:19:07 UTC (rev 229)
@@ -0,0 +1,11 @@
+package org.jboss.webbeans.test.beans.broken;
+
+import javax.ejb.Stateless;
+import javax.webbeans.SessionScoped;
+
+@Stateless
+@SessionScoped
+public class Bullmastiff
+{
+
+}
Added: ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/beans/broken/Dachshund.java
===================================================================
--- ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/beans/broken/Dachshund.java (rev 0)
+++ ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/beans/broken/Dachshund.java 2008-11-04 07:19:07 UTC (rev 229)
@@ -0,0 +1,11 @@
+package org.jboss.webbeans.test.beans.broken;
+
+import javax.ejb.Stateless;
+import javax.webbeans.ApplicationScoped;
+
+@Stateless
+@ApplicationScoped
+public class Dachshund
+{
+
+}
Added: ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/beans/broken/Greyhound.java
===================================================================
--- ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/beans/broken/Greyhound.java (rev 0)
+++ ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/beans/broken/Greyhound.java 2008-11-04 07:19:07 UTC (rev 229)
@@ -0,0 +1,12 @@
+package org.jboss.webbeans.test.beans.broken;
+
+import javax.webbeans.RequestScoped;
+
+import org.jboss.webbeans.test.annotations.Singleton;
+
+@Singleton
+@RequestScoped
+public class Greyhound
+{
+
+}
Added: ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/beans/broken/Husky.java
===================================================================
--- ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/beans/broken/Husky.java (rev 0)
+++ ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/beans/broken/Husky.java 2008-11-04 07:19:07 UTC (rev 229)
@@ -0,0 +1,12 @@
+package org.jboss.webbeans.test.beans.broken;
+
+import javax.webbeans.ConversationScoped;
+
+import org.jboss.webbeans.test.annotations.Singleton;
+
+@Singleton
+@ConversationScoped
+public class Husky
+{
+
+}
Added: ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/beans/broken/IrishTerrier.java
===================================================================
--- ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/beans/broken/IrishTerrier.java (rev 0)
+++ ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/beans/broken/IrishTerrier.java 2008-11-04 07:19:07 UTC (rev 229)
@@ -0,0 +1,12 @@
+package org.jboss.webbeans.test.beans.broken;
+
+import javax.webbeans.SessionScoped;
+
+import org.jboss.webbeans.test.annotations.Singleton;
+
+@Singleton
+@SessionScoped
+public class IrishTerrier
+{
+
+}
Added: ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/beans/broken/Pekingese.java
===================================================================
--- ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/beans/broken/Pekingese.java (rev 0)
+++ ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/beans/broken/Pekingese.java 2008-11-04 07:19:07 UTC (rev 229)
@@ -0,0 +1,11 @@
+package org.jboss.webbeans.test.beans.broken;
+
+import javax.ejb.Stateless;
+import javax.webbeans.Decorator;
+
+@Stateless
+@Decorator
+public class Pekingese
+{
+
+}
Added: ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/beans/broken/Pug.java
===================================================================
--- ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/beans/broken/Pug.java (rev 0)
+++ ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/beans/broken/Pug.java 2008-11-04 07:19:07 UTC (rev 229)
@@ -0,0 +1,11 @@
+package org.jboss.webbeans.test.beans.broken;
+
+import javax.ejb.Stateless;
+import javax.webbeans.Interceptor;
+
+@Stateless
+@Interceptor
+public class Pug
+{
+
+}
Added: ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/beans/broken/RequestScopedStateless.java
===================================================================
--- ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/beans/broken/RequestScopedStateless.java (rev 0)
+++ ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/beans/broken/RequestScopedStateless.java 2008-11-04 07:19:07 UTC (rev 229)
@@ -0,0 +1,11 @@
+package org.jboss.webbeans.test.beans.broken;
+
+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/util/Util.java
===================================================================
--- ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/util/Util.java 2008-11-03 21:22:31 UTC (rev 228)
+++ ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/util/Util.java 2008-11-04 07:19:07 UTC (rev 229)
@@ -22,9 +22,9 @@
return new SimpleBeanModel<T>(new SimpleAnnotatedType<T>(clazz), getEmptyAnnotatedType(clazz), manager);
}
- public static <T> SimpleBeanModel<T> createSimpleModel(Class<T> clazz, AnnotatedType<T> annotatedType, ManagerImpl manager)
+ public static <T> SimpleBeanModel<T> createSimpleModel(Class<T> clazz, AnnotatedType<T> xmlAnnotatedType, ManagerImpl manager)
{
- return new SimpleBeanModel<T>(new SimpleAnnotatedType<T>(clazz), annotatedType, manager);
+ return new SimpleBeanModel<T>(new SimpleAnnotatedType<T>(clazz), xmlAnnotatedType, manager);
}
public static <T> EnterpriseBeanModel<T> createEnterpriseBeanModel(Class<T> clazz, ManagerImpl manager)
@@ -32,9 +32,9 @@
return new EnterpriseBeanModel<T>(new SimpleAnnotatedType<T>(clazz), getEmptyAnnotatedType(clazz), manager);
}
- public static <T> EnterpriseBeanModel<T> createEnterpriseBeanModel(Class<T> clazz, AnnotatedType<T> annotatedType, ManagerImpl manager)
+ public static <T> EnterpriseBeanModel<T> createEnterpriseBeanModel(Class<T> clazz, AnnotatedType<T> xmlAnnotatedType, ManagerImpl manager)
{
- return new EnterpriseBeanModel<T>(new SimpleAnnotatedType<T>(clazz), annotatedType, manager);
+ return new EnterpriseBeanModel<T>(new SimpleAnnotatedType<T>(clazz), xmlAnnotatedType, manager);
}
public static <T> AnnotatedType<T> getEmptyAnnotatedType(Class<T> type)
15 years, 5 months
[webbeans-commits] Webbeans SVN: r228 - ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test.
by webbeans-commits@lists.jboss.org
Author: nickarls
Date: 2008-11-03 16:22:31 -0500 (Mon, 03 Nov 2008)
New Revision: 228
Modified:
ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/EnterpriseBeanModelTest.java
Log:
Rewriting EJB model tests
Modified: ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/EnterpriseBeanModelTest.java
===================================================================
--- ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/EnterpriseBeanModelTest.java 2008-11-03 20:13:34 UTC (rev 227)
+++ ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/EnterpriseBeanModelTest.java 2008-11-03 21:22:31 UTC (rev 228)
@@ -1,122 +1,421 @@
package org.jboss.webbeans.test;
-import static org.jboss.webbeans.test.util.Util.getEmptyAnnotatedType;
+import javax.webbeans.DefinitionException;
+import javax.webbeans.DeploymentException;
+import javax.webbeans.UnremovedException;
-import java.lang.annotation.Annotation;
-import java.util.HashMap;
-import java.util.Map;
-
-import javax.webbeans.Current;
-import javax.webbeans.Dependent;
-
-import org.jboss.webbeans.introspector.AnnotatedType;
-import org.jboss.webbeans.introspector.SimpleAnnotatedType;
-import org.jboss.webbeans.model.bean.AbstractEnterpriseBeanModel;
-import org.jboss.webbeans.model.bean.EnterpriseBeanModel;
-import org.jboss.webbeans.test.annotations.Synchronous;
-import org.jboss.webbeans.test.beans.Bear;
-import org.jboss.webbeans.test.beans.Cheetah;
-import org.jboss.webbeans.test.beans.Cougar;
-import org.jboss.webbeans.test.beans.Elephant;
-import org.jboss.webbeans.test.beans.Giraffe;
-import org.jboss.webbeans.test.beans.Leopard;
-import org.jboss.webbeans.test.beans.Lion;
-import org.jboss.webbeans.test.beans.Panther;
-import org.jboss.webbeans.test.beans.Puma;
-import org.jboss.webbeans.test.beans.Tiger;
-import org.jboss.webbeans.test.util.Util;
-import org.jboss.webbeans.util.Reflections;
import org.testng.annotations.Test;
@SuppressWarnings( { "unchecked", "unused" })
+@SpecVersion("PDR")
public class EnterpriseBeanModelTest extends AbstractTest
{
@Test
- public void testStateless()
+ @SpecAssertion(section = "3.3")
+ public void testStatelessWithDependentScopeOK()
{
- EnterpriseBeanModel<Lion> lion = new EnterpriseBeanModel<Lion>(new SimpleAnnotatedType<Lion>(Lion.class), getEmptyAnnotatedType(Lion.class), manager);
- assert lion.getScopeType().equals(Dependent.class);
- Reflections.annotationSetMatches(lion.getBindingTypes(), Current.class);
- assert lion.getName().equals("lion");
+ assert false;
}
+ @Test(expectedExceptions = DefinitionException.class)
+ @SpecAssertion(section = "3.3")
+ public void testStatelessWithRequestScopeFails()
+ {
+ assert false;
+ }
+
+ @Test(expectedExceptions = DefinitionException.class)
+ @SpecAssertion(section = "3.3")
+ public void testStatelessWithConversationScopeFails()
+ {
+ assert false;
+ }
+
+ @Test(expectedExceptions = DefinitionException.class)
+ @SpecAssertion(section = "3.3")
+ public void testStatelessWithSessionScopeFails()
+ {
+ assert false;
+ }
+
+ @Test(expectedExceptions = DefinitionException.class)
+ @SpecAssertion(section = "3.3")
+ public void testStatelessWithApplicationScopeFails()
+ {
+ assert false;
+ }
+
@Test
- public void testStatelessDefinedInXml()
+ @SpecAssertion(section = "3.3")
+ public void testSingletonWithDependentScopeOK()
{
- EnterpriseBeanModel<Giraffe> giraffe = Util.createEnterpriseBeanModel(Giraffe.class, manager);
- assert giraffe.getScopeType().equals(Dependent.class);
- assert Reflections.annotationSetMatches(giraffe.getBindingTypes(), Current.class);
+ assert false;
}
- @Test(expectedExceptions = RuntimeException.class)
- public void testStatelessWithRequestScope()
+ @Test(expectedExceptions = DefinitionException.class)
+ @SpecAssertion(section = "3.3")
+ public void testSingletonWithRequestScopeFails()
{
- EnterpriseBeanModel<Bear> bear = Util.createEnterpriseBeanModel(Bear.class, manager);
+ assert false;
}
- @Test(groups = "ejb3")
- public void testSingleton()
+ @Test(expectedExceptions = DefinitionException.class)
+ @SpecAssertion(section = "3.3")
+ public void testSingletonWithConversationScopeFails()
{
assert false;
}
- @Test(groups = "ejb3")
- public void testSingletonWithRequestScope()
+ @Test(expectedExceptions = DefinitionException.class)
+ @SpecAssertion(section = "3.3")
+ public void testSingletonWithSessionScopeFails()
{
assert false;
}
@Test
- public void testStateful()
+ @SpecAssertion(section = "3.3")
+ public void testSingletonWithApplicationScopeOK()
{
- EnterpriseBeanModel<Tiger> tiger = Util.createEnterpriseBeanModel(Tiger.class, manager);
- assert Reflections.annotationSetMatches(tiger.getBindingTypes(), Synchronous.class);
- assert tiger.getRemoveMethod().getAnnotatedItem().getDelegate().getName().equals("remove");
- assert tiger.getName() == null;
+ assert false;
}
+ @Test(expectedExceptions = DefinitionException.class)
+ @SpecAssertion(section = "3.3")
+ public void testEJBInterceptorFails()
+ {
+ assert false;
+ }
+
+ @Test(expectedExceptions = DefinitionException.class)
+ @SpecAssertion(section = "3.3")
+ public void testEJBDecoratorFails()
+ {
+ assert false;
+ }
+
+ @Test(expectedExceptions = DefinitionException.class)
+ @SpecAssertion(section = "3.3")
+ public void testMultipleAnnotationDefinedEJBsWithSameImplementationClassFails()
+ {
+ assert false;
+ }
+
@Test
- public void testMultipleRemoveMethodsWithDestroys()
+ @SpecAssertion(section = "3.3")
+ public void testMultipleXMLDefinedEJBsWithSameImplementationClassOK()
{
- EnterpriseBeanModel<Elephant> elephant = Util.createEnterpriseBeanModel(Elephant.class, manager);
- assert elephant.getRemoveMethod().getAnnotatedItem().getDelegate().getName().equals("remove2");
+ assert false;
}
- @Test(expectedExceptions=RuntimeException.class)
- public void testMultipleRemoveMethodsWithoutDestroys()
+ @Test(expectedExceptions = DeploymentException.class)
+ @SpecAssertion(section = "3.3")
+ public void testMultipleEnabledSpecializedEJBFails()
{
- EnterpriseBeanModel<Puma> puma = Util.createEnterpriseBeanModel(Puma.class, manager);
+ assert false;
}
- @Test(expectedExceptions=RuntimeException.class)
- public void testMultipleRemoveMethodsWithMultipleDestroys()
+ @Test
+ @SpecAssertion(section = "3.3.1")
+ public void testAnnotatedEJB()
{
- EnterpriseBeanModel<Cougar> cougar = Util.createEnterpriseBeanModel(Cougar.class, manager);
+ assert false;
}
- @Test(expectedExceptions=RuntimeException.class)
- public void testNonStatefulEnterpriseBeanWithDestroys()
+ @Test
+ @SpecAssertion(section = "3.3.1")
+ public void testAnnotatedEJBComplementedWithXML()
{
- EnterpriseBeanModel<Cheetah> cheetah = Util.createEnterpriseBeanModel(Cheetah.class, manager);
+ assert false;
}
@Test
- public void testRemoveMethodWithDefaultBinding()
+ @SpecAssertion(section = "3.3.1")
+ public void testEJBJARDefinedEJB()
{
- EnterpriseBeanModel<Panther> panther = Util.createEnterpriseBeanModel(Panther.class, manager);
- assert panther.getRemoveMethod().getAnnotatedItem().getDelegate().getName().equals("remove");
- assert panther.getRemoveMethod().getParameters().size() == 1;
- assert panther.getRemoveMethod().getParameters().get(0).getType().equals(String.class);
- assert panther.getRemoveMethod().getParameters().get(0).getBindingTypes().size() == 1;
- assert Reflections.annotationSetMatches(panther.getRemoveMethod().getParameters().get(0).getBindingTypes(), Current.class);
+ assert false;
}
@Test
- public void testMessageDriven()
+ @SpecAssertion(section = "3.3.1")
+ public void testEJBJARDefinedEJBComplementedWithXML()
{
- EnterpriseBeanModel<Leopard> leopard = Util.createEnterpriseBeanModel(Leopard.class, manager);
- assert Reflections.annotationSetMatches(leopard.getBindingTypes(), Current.class);
+ assert false;
}
+ @Test
+ @SpecAssertion(section = "3.3.2")
+ public void testAPITypesAreLocalInterfacesWithoutWildcardTypesOrTypeVariablesWithSuperInterfaces()
+ {
+ assert false;
+ }
+
+ @Test
+ @SpecAssertion(section = "3.3.2")
+ public void testEJBWithLocalViewAndParameterizedTypeIncludesBeanClassAndSuperclassesInAPITypes()
+ {
+ assert false;
+ }
+
+ @Test
+ @SpecAssertion(section = "3.3.2")
+ public void testObjectIsInAPITypes()
+ {
+ assert false;
+ }
+
+ @Test
+ @SpecAssertion(section = "3.3.2")
+ public void testRemoteInterfacesAreNotInAPITypes()
+ {
+ assert false;
+ }
+
+ @Test
+ @SpecAssertion(section = "3.3.4")
+ public void testXMLDefinedEJBIgnoresProducerAndDisposalAndObserverAnnotations()
+ {
+
+ }
+
+ @Test(expectedExceptions = DefinitionException.class)
+ @SpecAssertion(section = "3.3.4")
+ public void testXMLDefinedSingletonsFail()
+ {
+ assert false;
+ }
+
+ @Test(expectedExceptions = DefinitionException.class)
+ @SpecAssertion(section = "3.3.4")
+ public void testMessageDrivenBeansNotOK()
+ {
+ assert false;
+ }
+
+ @Test
+ @SpecAssertion(section = "3.3.5")
+ public void testStatefulEJBRemoveMethodCalledOnDestroy()
+ {
+ assert false;
+ }
+
+ @Test
+ @SpecAssertion(section = "3.3.5")
+ public void testStatefulEJBWithoutRemoveMethodInDependentScopeOK()
+ {
+ assert false;
+ }
+
+ @Test(expectedExceptions = DefinitionException.class)
+ @SpecAssertion(section = "3.3.5")
+ public void testStatefulEJBWithoutRemoveMethodInApplicationScopeFails()
+ {
+ assert false;
+ }
+
+ @Test(expectedExceptions = DefinitionException.class)
+ @SpecAssertion(section = "3.3.5")
+ public void testStatefulEJBWithoutRemoveMethodInSessionScopeFails()
+ {
+ assert false;
+ }
+
+ @Test(expectedExceptions = DefinitionException.class)
+ @SpecAssertion(section = "3.3.5")
+ public void testStatefulEJBWithoutRemoveMethodInConversationScopeFails()
+ {
+ assert false;
+ }
+
+ @Test(expectedExceptions = DefinitionException.class)
+ @SpecAssertion(section = "3.3.5")
+ public void testStatefulEJBWithoutRemoveMethodInRequestScopeFails()
+ {
+ assert false;
+ }
+
+ @Test(expectedExceptions = UnremovedException.class)
+ @SpecAssertion(section = "3.3.5")
+ public void testStatefulEJBWithoutRemoveMethodNotExplicitlyDestroyedBeforeManagerAttemptFails()
+ {
+ assert false;
+ }
+
+ @Test
+ @SpecAssertion(section = "3.3.5")
+ public void testNoParametersPassedWhenEJBRemoveMethodCalledFromApplication()
+ {
+ assert false;
+ }
+
+ @Test
+ @SpecAssertion(section = "3.3.5")
+ public void testWebBeanRemoveMethodCallRemovesInstanceFromContext()
+ {
+ assert false;
+ }
+
+ @Test
+ @SpecAssertion(section = "3.3.5.1")
+ public void testAnnotationDefinedEJBWithoutDestructorUsesRemoveMethodWithoutParamsAsWebBeansRemoveMethod()
+ {
+ assert false;
+ }
+
+ @Test
+ @SpecAssertion(section = "3.3.5.1")
+ public void testAnnotationDefinedEJBWithoutDestructorAndRemoveMethodWithoutParamsHasNoWebBeansRemoveMethod()
+ {
+ assert false;
+ }
+
+ @Test(expectedExceptions = DefinitionException.class)
+ @SpecAssertion(section = "3.3.5.1")
+ public void testEJBWithMultipleDestructorAnnotationsFail()
+ {
+ assert false;
+ }
+
+ @Test(expectedExceptions = DefinitionException.class)
+ @SpecAssertion(section = "3.3.5.1")
+ public void testAnnotationDefinedEJBWithDestructorAnnotationOnMethodNotAnEJBRemoveMethodFails()
+ {
+ assert false;
+ }
+
+ @Test(expectedExceptions = DefinitionException.class)
+ @SpecAssertion(section = "3.3.5.1")
+ public void testEJBWithInitializerAnnotationOnRemoveMethodFails()
+ {
+ assert false;
+ }
+
+ @Test(expectedExceptions = DefinitionException.class)
+ @SpecAssertion(section = "3.3.5.1")
+ public void testEJBWithProducerAnnotationOnRemoveMethodFails()
+ {
+ assert false;
+ }
+
+ @Test(expectedExceptions = DefinitionException.class)
+ @SpecAssertion(section = "3.3.5.1")
+ public void testEJBWithRemoveMethodTakingObserverAnnotatedParameterFails()
+ {
+ assert false;
+ }
+
+ // TODO Separate section for XML defined beans?
+
+ @Test
+ @SpecAssertion(section = "3.3.5.3")
+ public void testRemoveMethodParameters()
+ {
+ assert false;
+ }
+
+
+/*
+ @Test
+ @SpecAssertion(section = "3.3.5.1")
+ public void test()
+ {
+ assert false;
+ }
+/*
+
+ /*
+ * @Test public void testStateless() { EnterpriseBeanModel<Lion> lion = new
+ * EnterpriseBeanModel<Lion>(new SimpleAnnotatedType<Lion>(Lion.class),
+ * getEmptyAnnotatedType(Lion.class), manager); assert
+ * lion.getScopeType().equals(Dependent.class);
+ * Reflections.annotationSetMatches(lion.getBindingTypes(), Current.class);
+ * assert lion.getName().equals("lion"); }
+ *
+ * @Test @SpecAssertion(section="3.3") public void
+ * testStatelessWithDependentScopeOK() { EnterpriseBeanModel<Giraffe> giraffe
+ * = Util.createEnterpriseBeanModel(Giraffe.class, manager); assert
+ * giraffe.getScopeType().equals(Dependent.class); assert
+ * Reflections.annotationSetMatches(giraffe.getBindingTypes(),
+ * Current.class); }
+ *
+ * @Test(expectedExceptions = RuntimeException.class)
+ * @SpecAssertion(section="3.3") public void
+ * testStatelessWithRequestScopeFails() { EnterpriseBeanModel<Bear> bear =
+ * Util.createEnterpriseBeanModel(Bear.class, manager); }
+ *
+ * @Test(expectedExceptions = RuntimeException.class)
+ * @SpecAssertion(section="3.3") public void
+ * testStatelessWithApplicationScopeFails() { assert false; }
+ *
+ * @Test(expectedExceptions = RuntimeException.class)
+ * @SpecAssertion(section="3.3") public void
+ * testStatelessWithSessionScopeFails() { assert false; }
+ *
+ * @Test(expectedExceptions = RuntimeException.class)
+ * @SpecAssertion(section="3.3") public void
+ * testStatelessWithConversationScopeFails() { assert false; }
+ *
+ * public void testSingletonWithDependentScopeOK() { assert false; }
+ *
+ * @Test(expectedExceptions = RuntimeException.class)
+ * @SpecAssertion(section="3.3") public void
+ * testSingletonWithRequestScopeFails() { assert false; }
+ *
+ * @Test(expectedExceptions = RuntimeException.class)
+ * @SpecAssertion(section="3.3") public void
+ * testSingletonWithApplicationScopeOK() { assert false; }
+ *
+ * @Test(expectedExceptions = RuntimeException.class)
+ * @SpecAssertion(section="3.3") public void
+ * testSingletonWithSessionScopeFails() { assert false; }
+ *
+ * @Test(expectedExceptions = RuntimeException.class)
+ * @SpecAssertion(section="3.3") public void
+ * testSingletonWithConversationScopeFails() { assert false; }
+ *
+ * @Test public void testStateful() { EnterpriseBeanModel<Tiger> tiger =
+ * Util.createEnterpriseBeanModel(Tiger.class, manager); assert
+ * Reflections.annotationSetMatches(tiger.getBindingTypes(),
+ * Synchronous.class); assert
+ * tiger.getRemoveMethod().getAnnotatedItem().getDelegate
+ * ().getName().equals("remove"); assert tiger.getName() == null; }
+ *
+ * @Test public void testMultipleRemoveMethodsWithDestroys() {
+ * EnterpriseBeanModel<Elephant> elephant =
+ * Util.createEnterpriseBeanModel(Elephant.class, manager); assert
+ * elephant.getRemoveMethod
+ * ().getAnnotatedItem().getDelegate().getName().equals("remove2"); }
+ *
+ * @Test(expectedExceptions=RuntimeException.class) public void
+ * testMultipleRemoveMethodsWithoutDestroys() { EnterpriseBeanModel<Puma>
+ * puma = Util.createEnterpriseBeanModel(Puma.class, manager); }
+ *
+ * @Test(expectedExceptions=RuntimeException.class) public void
+ * testMultipleRemoveMethodsWithMultipleDestroys() {
+ * EnterpriseBeanModel<Cougar> cougar =
+ * Util.createEnterpriseBeanModel(Cougar.class, manager); }
+ *
+ * @Test(expectedExceptions=RuntimeException.class) public void
+ * testNonStatefulEnterpriseBeanWithDestroys() { EnterpriseBeanModel<Cheetah>
+ * cheetah = Util.createEnterpriseBeanModel(Cheetah.class, manager); }
+ *
+ * @Test public void testRemoveMethodWithDefaultBinding() {
+ * EnterpriseBeanModel<Panther> panther =
+ * Util.createEnterpriseBeanModel(Panther.class, manager); assert
+ * panther.getRemoveMethod
+ * ().getAnnotatedItem().getDelegate().getName().equals("remove"); assert
+ * panther.getRemoveMethod().getParameters().size() == 1; assert
+ * panther.getRemoveMethod
+ * ().getParameters().get(0).getType().equals(String.class); assert
+ * panther.getRemoveMethod().getParameters().get(0).getBindingTypes().size()
+ * == 1; assert
+ * Reflections.annotationSetMatches(panther.getRemoveMethod().getParameters
+ * ().get(0).getBindingTypes(), Current.class); }
+ *
+ * @Test public void testMessageDriven() { EnterpriseBeanModel<Leopard>
+ * leopard = Util.createEnterpriseBeanModel(Leopard.class, manager); assert
+ * Reflections.annotationSetMatches(leopard.getBindingTypes(),
+ * Current.class); }
+ */
}
15 years, 5 months
[webbeans-commits] Webbeans SVN: r227 - in ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test: annotations and 1 other directories.
by webbeans-commits@lists.jboss.org
Author: nickarls
Date: 2008-11-03 15:13:34 -0500 (Mon, 03 Nov 2008)
New Revision: 227
Added:
ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/annotations/Singleton.java
Modified:
ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/EnterpriseBeanModelTest.java
ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/util/Util.java
Log:
Adding creating methods in Util for EJBs
Cleaning up EJB tests
Dummy EJB 3.1 singleton annotation
Modified: ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/EnterpriseBeanModelTest.java
===================================================================
--- ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/EnterpriseBeanModelTest.java 2008-11-03 19:18:33 UTC (rev 226)
+++ ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/EnterpriseBeanModelTest.java 2008-11-03 20:13:34 UTC (rev 227)
@@ -24,13 +24,14 @@
import org.jboss.webbeans.test.beans.Panther;
import org.jboss.webbeans.test.beans.Puma;
import org.jboss.webbeans.test.beans.Tiger;
+import org.jboss.webbeans.test.util.Util;
import org.jboss.webbeans.util.Reflections;
import org.testng.annotations.Test;
+@SuppressWarnings( { "unchecked", "unused" })
public class EnterpriseBeanModelTest extends AbstractTest
-{
-
- @SuppressWarnings("unchecked")
+{
+
@Test
public void testStateless()
{
@@ -39,134 +40,83 @@
Reflections.annotationSetMatches(lion.getBindingTypes(), Current.class);
assert lion.getName().equals("lion");
}
-
- @SuppressWarnings("unchecked")
+
@Test
public void testStatelessDefinedInXml()
{
- Map<Class<? extends Annotation>, Annotation> annotations = new HashMap<Class<? extends Annotation>, Annotation>();
- AnnotatedType annotatedItem = new SimpleAnnotatedType(Giraffe.class, annotations);
-
- EnterpriseBeanModel<Giraffe> giraffe = new EnterpriseBeanModel<Giraffe>(new SimpleAnnotatedType(Giraffe.class), annotatedItem, manager);
+ EnterpriseBeanModel<Giraffe> giraffe = Util.createEnterpriseBeanModel(Giraffe.class, manager);
assert giraffe.getScopeType().equals(Dependent.class);
- Reflections.annotationSetMatches(giraffe.getBindingTypes(), Current.class);
+ assert Reflections.annotationSetMatches(giraffe.getBindingTypes(), Current.class);
}
-
- @Test
+
+ @Test(expectedExceptions = RuntimeException.class)
public void testStatelessWithRequestScope()
{
- boolean exception = false;
- try
- {
- new EnterpriseBeanModel<Bear>(new SimpleAnnotatedType<Bear>(Bear.class), getEmptyAnnotatedType(Bear.class), manager);
- }
- catch (Exception e)
- {
- exception = true;
- }
- assert exception;
+ EnterpriseBeanModel<Bear> bear = Util.createEnterpriseBeanModel(Bear.class, manager);
}
-
- @Test(groups="ejb3")
+
+ @Test(groups = "ejb3")
public void testSingleton()
{
assert false;
}
-
- @Test(groups="ejb3")
+
+ @Test(groups = "ejb3")
public void testSingletonWithRequestScope()
{
assert false;
}
-
- @SuppressWarnings("unchecked")
+
@Test
public void testStateful()
{
-
- AbstractEnterpriseBeanModel<Tiger> tiger = new EnterpriseBeanModel<Tiger>(new SimpleAnnotatedType(Tiger.class), getEmptyAnnotatedType(Tiger.class), manager);
- Reflections.annotationSetMatches(tiger.getBindingTypes(), Synchronous.class);
+ EnterpriseBeanModel<Tiger> tiger = Util.createEnterpriseBeanModel(Tiger.class, manager);
+ assert Reflections.annotationSetMatches(tiger.getBindingTypes(), Synchronous.class);
assert tiger.getRemoveMethod().getAnnotatedItem().getDelegate().getName().equals("remove");
assert tiger.getName() == null;
}
-
- @SuppressWarnings("unchecked")
+
@Test
public void testMultipleRemoveMethodsWithDestroys()
{
-
- AbstractEnterpriseBeanModel<Elephant> elephant = new EnterpriseBeanModel<Elephant>(new SimpleAnnotatedType(Elephant.class), getEmptyAnnotatedType(Elephant.class), manager);
+ EnterpriseBeanModel<Elephant> elephant = Util.createEnterpriseBeanModel(Elephant.class, manager);
assert elephant.getRemoveMethod().getAnnotatedItem().getDelegate().getName().equals("remove2");
}
-
- @SuppressWarnings("unchecked")
- @Test
+
+ @Test(expectedExceptions=RuntimeException.class)
public void testMultipleRemoveMethodsWithoutDestroys()
{
- boolean exception = false;
- try
- {
- new EnterpriseBeanModel<Puma>(new SimpleAnnotatedType(Puma.class), getEmptyAnnotatedType(Puma.class), manager);
- }
- catch (Exception e)
- {
- exception = true;
- }
- assert exception;
+ EnterpriseBeanModel<Puma> puma = Util.createEnterpriseBeanModel(Puma.class, manager);
}
-
- @SuppressWarnings("unchecked")
- @Test
+
+ @Test(expectedExceptions=RuntimeException.class)
public void testMultipleRemoveMethodsWithMultipleDestroys()
{
- boolean exception = false;
- try
- {
- new EnterpriseBeanModel<Cougar>(new SimpleAnnotatedType(Cougar.class), getEmptyAnnotatedType(Cougar.class), manager);
- }
- catch (Exception e)
- {
- exception = true;
- }
- assert exception;
+ EnterpriseBeanModel<Cougar> cougar = Util.createEnterpriseBeanModel(Cougar.class, manager);
}
-
- @SuppressWarnings("unchecked")
- @Test
+
+ @Test(expectedExceptions=RuntimeException.class)
public void testNonStatefulEnterpriseBeanWithDestroys()
{
- boolean exception = false;
- try
- {
- new EnterpriseBeanModel<Cheetah>(new SimpleAnnotatedType(Cheetah.class), getEmptyAnnotatedType(Cheetah.class), manager);
- }
- catch (Exception e)
- {
- exception = true;
- }
- assert exception;
+ EnterpriseBeanModel<Cheetah> cheetah = Util.createEnterpriseBeanModel(Cheetah.class, manager);
}
-
- @SuppressWarnings("unchecked")
+
@Test
public void testRemoveMethodWithDefaultBinding()
{
-
- AbstractEnterpriseBeanModel<Panther> panther = new EnterpriseBeanModel<Panther>(new SimpleAnnotatedType<Panther>(Panther.class), getEmptyAnnotatedType(Panther.class), manager);
-
+ EnterpriseBeanModel<Panther> panther = Util.createEnterpriseBeanModel(Panther.class, manager);
assert panther.getRemoveMethod().getAnnotatedItem().getDelegate().getName().equals("remove");
assert panther.getRemoveMethod().getParameters().size() == 1;
assert panther.getRemoveMethod().getParameters().get(0).getType().equals(String.class);
assert panther.getRemoveMethod().getParameters().get(0).getBindingTypes().size() == 1;
assert Reflections.annotationSetMatches(panther.getRemoveMethod().getParameters().get(0).getBindingTypes(), Current.class);
}
-
- @SuppressWarnings("unchecked")
+
@Test
public void testMessageDriven()
{
- AbstractEnterpriseBeanModel<Leopard> leopard = new EnterpriseBeanModel<Leopard>(new SimpleAnnotatedType(Leopard.class), getEmptyAnnotatedType(Leopard.class), manager);
- Reflections.annotationSetMatches(leopard.getBindingTypes(), Current.class);
+ EnterpriseBeanModel<Leopard> leopard = Util.createEnterpriseBeanModel(Leopard.class, manager);
+ assert Reflections.annotationSetMatches(leopard.getBindingTypes(), Current.class);
}
}
Added: ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/annotations/Singleton.java
===================================================================
--- ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/annotations/Singleton.java (rev 0)
+++ ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/annotations/Singleton.java 2008-11-03 20:13:34 UTC (rev 227)
@@ -0,0 +1,13 @@
+package org.jboss.webbeans.test.annotations;
+
+import static java.lang.annotation.ElementType.TYPE;
+import static java.lang.annotation.RetentionPolicy.RUNTIME;
+import java.lang.annotation.Retention;
+import java.lang.annotation.Target;
+
+@Target(value=TYPE)
+@Retention(value=RUNTIME)
+public @interface Singleton
+{
+ // EJB 3.1. Fake it 'til you make it.
+}
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-03 19:18:33 UTC (rev 226)
+++ ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/util/Util.java 2008-11-03 20:13:34 UTC (rev 227)
@@ -7,31 +7,41 @@
import org.jboss.webbeans.SimpleBeanImpl;
import org.jboss.webbeans.introspector.AnnotatedType;
import org.jboss.webbeans.introspector.SimpleAnnotatedType;
+import org.jboss.webbeans.model.bean.EnterpriseBeanModel;
import org.jboss.webbeans.model.bean.SimpleBeanModel;
-
public class Util
{
public static <T> SimpleBeanImpl<T> createSimpleWebBean(Class<T> clazz, ManagerImpl manager)
{
return new SimpleBeanImpl<T>(createSimpleModel(clazz, manager), manager);
}
-
+
public static <T> SimpleBeanModel<T> createSimpleModel(Class<T> clazz, ManagerImpl manager)
{
return new SimpleBeanModel<T>(new SimpleAnnotatedType<T>(clazz), getEmptyAnnotatedType(clazz), manager);
}
-
- public static <T> SimpleBeanModel<T> createSimpleModel(Class<T> clazz, AnnotatedType<T> xmlAnnotatedType, ManagerImpl manager)
+
+ public static <T> SimpleBeanModel<T> createSimpleModel(Class<T> clazz, AnnotatedType<T> annotatedType, ManagerImpl manager)
{
- return new SimpleBeanModel<T>(new SimpleAnnotatedType<T>(clazz), xmlAnnotatedType, manager);
+ return new SimpleBeanModel<T>(new SimpleAnnotatedType<T>(clazz), annotatedType, manager);
}
-
+
+ public static <T> EnterpriseBeanModel<T> createEnterpriseBeanModel(Class<T> clazz, ManagerImpl manager)
+ {
+ return new EnterpriseBeanModel<T>(new SimpleAnnotatedType<T>(clazz), getEmptyAnnotatedType(clazz), manager);
+ }
+
+ public static <T> EnterpriseBeanModel<T> createEnterpriseBeanModel(Class<T> clazz, AnnotatedType<T> annotatedType, ManagerImpl manager)
+ {
+ return new EnterpriseBeanModel<T>(new SimpleAnnotatedType<T>(clazz), annotatedType, manager);
+ }
+
public static <T> AnnotatedType<T> getEmptyAnnotatedType(Class<T> type)
{
return new SimpleAnnotatedType<T>(type, new HashMap<Class<? extends Annotation>, Annotation>());
}
+
-
}
15 years, 5 months
[webbeans-commits] Webbeans SVN: r226 - in ri/trunk/webbeans-ri/src: main/java/org/jboss/webbeans/contexts and 2 other directories.
by webbeans-commits@lists.jboss.org
Author: nickarls
Date: 2008-11-03 14:18:33 -0500 (Mon, 03 Nov 2008)
New Revision: 226
Added:
ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/NormalContextTest.java
Removed:
ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/CommonContextTest.java
Modified:
ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/ManagerImpl.java
ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/contexts/AbstractContext.java
ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/util/ProxyMethodHandler.java
ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/ManagerTest.java
ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/ResolutionByTypeTest.java
Log:
BeanMap backing Map -> ConcurrentHashMap
CopyOnWriteArrayList setter for beans in Manager
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-03 16:30:43 UTC (rev 225)
+++ ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/ManagerImpl.java 2008-11-03 19:18:33 UTC (rev 226)
@@ -3,6 +3,7 @@
import java.lang.annotation.Annotation;
import java.lang.reflect.Method;
import java.util.ArrayList;
+import java.util.Collection;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
@@ -195,6 +196,18 @@
return resolutionManager;
}
+ /**
+ * Wraps a collection of beans into a thread safe list.
+ * Since this overwrites any existing list of beans in the manager,
+ * this should only be done on startup and other controlled situations.
+ *
+ * @param beans The collection of beans to wrap.
+ */
+ public Manager setBeans(Collection<Bean<?>> beans) {
+ this.beans = new CopyOnWriteArrayList<Bean<?>>(beans);
+ return this;
+ }
+
public List<Bean<?>> getBeans()
{
return beans;
Modified: ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/contexts/AbstractContext.java
===================================================================
--- ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/contexts/AbstractContext.java 2008-11-03 16:30:43 UTC (rev 225)
+++ ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/contexts/AbstractContext.java 2008-11-03 19:18:33 UTC (rev 226)
@@ -1,7 +1,7 @@
package org.jboss.webbeans.contexts;
import java.lang.annotation.Annotation;
-import java.util.HashMap;
+import java.util.concurrent.ConcurrentHashMap;
import javax.webbeans.manager.Bean;
import javax.webbeans.manager.Context;
@@ -22,10 +22,10 @@
protected class BeanMap extends MapWrapper<Bean<? extends Object>, Object>
{
-
+
public BeanMap()
{
- super(new HashMap<Bean<? extends Object>, Object>());
+ super(new ConcurrentHashMap<Bean<? extends Object>, Object>());
}
@SuppressWarnings("unchecked")
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-03 16:30:43 UTC (rev 225)
+++ ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/util/ProxyMethodHandler.java 2008-11-03 19:18:33 UTC (rev 226)
@@ -2,7 +2,6 @@
import java.io.Serializable;
import java.lang.reflect.Method;
-import java.util.List;
import javassist.util.proxy.MethodHandler;
@@ -26,7 +25,6 @@
ProxyMethodHandler.manager = manager;
}
- //@Override Let's stay compatible with JDK5 :-)
public Object invoke(Object self, Method method, Method proceed, Object[] args) throws Throwable
{
if (bean == null)
Deleted: ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/CommonContextTest.java
===================================================================
--- ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/CommonContextTest.java 2008-11-03 16:30:43 UTC (rev 225)
+++ ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/CommonContextTest.java 2008-11-03 19:18:33 UTC (rev 226)
@@ -1,86 +0,0 @@
-package org.jboss.webbeans.test;
-
-import static org.jboss.webbeans.test.util.Util.getEmptyAnnotatedType;
-
-import java.lang.reflect.Method;
-
-import javax.webbeans.ContextNotActiveException;
-import javax.webbeans.manager.Bean;
-import javax.webbeans.manager.Context;
-
-import org.jboss.webbeans.contexts.AbstractContext;
-import org.jboss.webbeans.contexts.RequestContext;
-import org.jboss.webbeans.introspector.SimpleAnnotatedMethod;
-import org.jboss.webbeans.introspector.SimpleAnnotatedType;
-import org.jboss.webbeans.model.bean.ProducerMethodBeanModel;
-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;
-import org.jboss.webbeans.test.util.Util;
-import org.testng.annotations.BeforeMethod;
-import org.testng.annotations.Test;
-
-/**
- *
- * @author Nicklas Karlsson (nickarls(a)gmail.com)
- * @author Pete Muir
- *
- * This class tests a basic context against section 8 of the specification
- *
- */
-@SpecVersion("PDR")
-public class CommonContextTest extends AbstractTest
-{
- Context context;
-
- @BeforeMethod
- public void initContext() {
- context = new RequestContext();
- }
-
- @Test(groups="contexts") @SpecAssertion(section="8.1")
- public void testGetWithCreateFalseReturnsNull() {
- Bean<Tuna> tunaBean = Util.createSimpleWebBean(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);
- assert context.get(tunaBean, true) != null;
- }
-
- @Test(groups="contexts", expectedExceptions=ContextNotActiveException.class) @SpecAssertion(section="8.1")
- public void testInactiveContextThrowsContextNotActiveException() {
- ((AbstractContext)context).setActive(false);
- context.get(null, false);
- assert true;
- }
-
- @Test(groups="contexts") @SpecAssertion(section="8.1")
- public void testReturnsCorrectExistingBean() {
- Bean<Tuna> tunaBean = Util.createSimpleWebBean(Tuna.class, manager);
- Tuna firstTuna = context.get(tunaBean, true);
- Tuna secondTuna = context.get(tunaBean, false);
- assert firstTuna == secondTuna;
- }
-
- @Test(groups={"contexts", "producerMethod"}) @SpecAssertion(section="8.1")
- public void testProducerMethodReturningNullOK() throws SecurityException, NoSuchMethodException {
- SimpleBeanModel<SpiderProducer> producer = new SimpleBeanModel<SpiderProducer>(new SimpleAnnotatedType<SpiderProducer>(SpiderProducer.class), getEmptyAnnotatedType(SpiderProducer.class), manager);
- manager.getModelManager().addBeanModel(producer);
- Method nullProducer = SpiderProducer.class.getMethod("produceShelob");
- ProducerMethodBeanModel<Tarantula> producerModel = new ProducerMethodBeanModel<Tarantula>(new SimpleAnnotatedMethod<Tarantula>(nullProducer), manager);
- //Bean<Tarantula> shelobBean = new ProducerBeanImpl<Tarantula>(producerModel, manager);
- //assert context.get(shelobBean, true) == null;
- }
-
- @Test(groups="contexts")
- public void testDestroy() {
- Bean<Tuna> tunaBean = Util.createSimpleWebBean(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/ManagerTest.java
===================================================================
--- ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/ManagerTest.java 2008-11-03 16:30:43 UTC (rev 225)
+++ ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/ManagerTest.java 2008-11-03 19:18:33 UTC (rev 226)
@@ -60,7 +60,14 @@
{
assert false;
}
-
+
+ @Test(groups="manager")
+ public void testWrappingOfBeanCollection()
+ {
+ // TODO stub
+ assert false;
+ }
+
/*
@Test(groups="manager") @SpecAssertion(section="4.8")
Copied: ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/NormalContextTest.java (from rev 214, ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/CommonContextTest.java)
===================================================================
--- ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/NormalContextTest.java (rev 0)
+++ ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/NormalContextTest.java 2008-11-03 19:18:33 UTC (rev 226)
@@ -0,0 +1,93 @@
+package org.jboss.webbeans.test;
+
+import static org.jboss.webbeans.test.util.Util.getEmptyAnnotatedType;
+
+import java.lang.reflect.Method;
+
+import javax.webbeans.ContextNotActiveException;
+import javax.webbeans.manager.Bean;
+import javax.webbeans.manager.Context;
+
+import org.jboss.webbeans.contexts.AbstractContext;
+import org.jboss.webbeans.contexts.RequestContext;
+import org.jboss.webbeans.introspector.SimpleAnnotatedMethod;
+import org.jboss.webbeans.introspector.SimpleAnnotatedType;
+import org.jboss.webbeans.model.bean.ProducerMethodBeanModel;
+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;
+import org.jboss.webbeans.test.util.Util;
+import org.testng.annotations.BeforeMethod;
+import org.testng.annotations.Test;
+
+/**
+ *
+ * @author Nicklas Karlsson (nickarls(a)gmail.com)
+ * @author Pete Muir
+ *
+ * This class tests a basic context against section 8 of the specification
+ *
+ */
+@SpecVersion("PDR")
+public class NormalContextTest extends AbstractTest
+{
+ Context context;
+
+ @BeforeMethod
+ public void initContext() {
+ context = new RequestContext();
+ }
+
+ @Test(groups="contexts") @SpecAssertion(section="8.1")
+ public void testGetWithCreateFalseReturnsNull() {
+ Bean<Tuna> tunaBean = Util.createSimpleWebBean(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);
+ assert context.get(tunaBean, true) != null;
+ }
+
+ @Test(groups="contexts", expectedExceptions=ContextNotActiveException.class) @SpecAssertion(section="8.1")
+ public void testInactiveContextThrowsContextNotActiveException() {
+ ((AbstractContext)context).setActive(false);
+ context.get(null, false);
+ assert true;
+ }
+
+ @Test(groups="contexts") @SpecAssertion(section="8.1")
+ public void testReturnsCorrectExistingBean() {
+ Bean<Tuna> tunaBean = Util.createSimpleWebBean(Tuna.class, manager);
+ Tuna firstTuna = context.get(tunaBean, true);
+ Tuna secondTuna = context.get(tunaBean, false);
+ assert firstTuna == secondTuna;
+ }
+
+ @Test(groups={"contexts", "producerMethod"}) @SpecAssertion(section="8.1")
+ public void testProducerMethodReturningNullOK() throws SecurityException, NoSuchMethodException {
+ SimpleBeanModel<SpiderProducer> producer = new SimpleBeanModel<SpiderProducer>(new SimpleAnnotatedType<SpiderProducer>(SpiderProducer.class), getEmptyAnnotatedType(SpiderProducer.class), manager);
+ manager.getModelManager().addBeanModel(producer);
+ Method nullProducer = SpiderProducer.class.getMethod("produceShelob");
+ ProducerMethodBeanModel<Tarantula> producerModel = new ProducerMethodBeanModel<Tarantula>(new SimpleAnnotatedMethod<Tarantula>(nullProducer), manager);
+ //Bean<Tarantula> shelobBean = new ProducerBeanImpl<Tarantula>(producerModel, manager);
+ //assert context.get(shelobBean, true) == null;
+ }
+
+ @Test(groups="contexts")
+ public void testDestroy() {
+ Bean<Tuna> tunaBean = Util.createSimpleWebBean(Tuna.class, manager);
+ assert context.get(tunaBean, true) instanceof Tuna;
+ ((AbstractContext)context).destroy(manager);
+ assert context.get(tunaBean, false) == null;
+ }
+
+ @Test(groups="contexts")
+ public void testThreadSafety() {
+ //TODO stub
+ assert false;
+ }
+
+}
Property changes on: ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/NormalContextTest.java
___________________________________________________________________
Name: svn:mergeinfo
+
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-03 16:30:43 UTC (rev 225)
+++ ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/ResolutionByTypeTest.java 2008-11-03 19:18:33 UTC (rev 226)
@@ -3,7 +3,6 @@
import static org.jboss.webbeans.test.util.Util.createSimpleWebBean;
import java.util.ArrayList;
-import java.util.HashSet;
import java.util.List;
import java.util.Set;
15 years, 5 months
[webbeans-commits] Webbeans SVN: r225 - ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/model/bean.
by webbeans-commits@lists.jboss.org
Author: gavin.king(a)jboss.com
Date: 2008-11-03 11:30:43 -0500 (Mon, 03 Nov 2008)
New Revision: 225
Modified:
ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/model/bean/AbstractBeanModel.java
ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/model/bean/EnterpriseBeanModel.java
ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/model/bean/SimpleBeanModel.java
Log:
fix build failure
Modified: ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/model/bean/AbstractBeanModel.java
===================================================================
--- ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/model/bean/AbstractBeanModel.java 2008-11-03 16:15:06 UTC (rev 224)
+++ ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/model/bean/AbstractBeanModel.java 2008-11-03 16:30:43 UTC (rev 225)
@@ -1,6 +1,7 @@
package org.jboss.webbeans.model.bean;
import java.lang.annotation.Annotation;
+import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
@@ -23,6 +24,7 @@
import org.jboss.webbeans.injectable.InjectableMethod;
import org.jboss.webbeans.injectable.InjectableParameter;
import org.jboss.webbeans.introspector.AnnotatedItem;
+import org.jboss.webbeans.introspector.SimpleAnnotatedType;
import org.jboss.webbeans.model.MergedStereotypesModel;
import org.jboss.webbeans.util.LoggerUtil;
import org.jboss.webbeans.util.Reflections;
@@ -65,6 +67,10 @@
throw new UnsupportedOperationException();
}
+ protected static <T> SimpleAnnotatedType getEmptyAnnotatedType(Class<T> type) {
+ return new SimpleAnnotatedType<T>(type, new HashMap<Class<? extends Annotation>, Annotation>());
+ }
+
protected void initInjectionPoints()
{
injectionPoints = new HashSet<Injectable<?,?>>();
Modified: ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/model/bean/EnterpriseBeanModel.java
===================================================================
--- ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/model/bean/EnterpriseBeanModel.java 2008-11-03 16:15:06 UTC (rev 224)
+++ ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/model/bean/EnterpriseBeanModel.java 2008-11-03 16:30:43 UTC (rev 225)
@@ -13,7 +13,6 @@
import org.jboss.webbeans.injectable.InjectableParameter;
import org.jboss.webbeans.introspector.AnnotatedType;
import org.jboss.webbeans.introspector.SimpleAnnotatedType;
-import org.jboss.webbeans.test.util.Util;
import org.jboss.webbeans.util.Reflections;
public class EnterpriseBeanModel<T> extends AbstractEnterpriseBeanModel<T>
@@ -126,7 +125,7 @@
Class<?> superclass = getAnnotatedItem().getType().getSuperclass();
if ( superclass!=null )
{
- return new EnterpriseBeanModel( new SimpleAnnotatedType( superclass ), Util.getEmptyAnnotatedType( getAnnotatedItem().getType().getSuperclass() ), container );
+ return new EnterpriseBeanModel(new SimpleAnnotatedType(superclass), getEmptyAnnotatedType(superclass), container);
}
else {
throw new RuntimeException();
Modified: ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/model/bean/SimpleBeanModel.java
===================================================================
--- ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/model/bean/SimpleBeanModel.java 2008-11-03 16:15:06 UTC (rev 224)
+++ ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/model/bean/SimpleBeanModel.java 2008-11-03 16:30:43 UTC (rev 225)
@@ -12,7 +12,6 @@
import org.jboss.webbeans.injectable.SimpleConstructor;
import org.jboss.webbeans.introspector.AnnotatedType;
import org.jboss.webbeans.introspector.SimpleAnnotatedType;
-import org.jboss.webbeans.test.util.Util;
import org.jboss.webbeans.util.LoggerUtil;
import org.jboss.webbeans.util.Reflections;
@@ -128,7 +127,7 @@
Class<?> superclass = getAnnotatedItem().getType().getSuperclass();
if ( superclass!=null )
{
- return new SimpleBeanModel( new SimpleAnnotatedType( superclass ), Util.getEmptyAnnotatedType( getAnnotatedItem().getType().getSuperclass() ), container );
+ return new SimpleBeanModel(new SimpleAnnotatedType(superclass), getEmptyAnnotatedType(superclass), container);
}
else {
throw new RuntimeException();
15 years, 5 months
[webbeans-commits] Webbeans SVN: r224 - ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/util.
by webbeans-commits@lists.jboss.org
Author: gavin.king(a)jboss.com
Date: 2008-11-03 11:15:06 -0500 (Mon, 03 Nov 2008)
New Revision: 224
Modified:
ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/util/ProxyMethodHandler.java
Log:
@Override does not work with interface methods in JDK5
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-03 13:35:37 UTC (rev 223)
+++ ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/util/ProxyMethodHandler.java 2008-11-03 16:15:06 UTC (rev 224)
@@ -26,7 +26,7 @@
ProxyMethodHandler.manager = manager;
}
- @Override
+ //@Override Let's stay compatible with JDK5 :-)
public Object invoke(Object self, Method method, Method proceed, Object[] args) throws Throwable
{
if (bean == null)
15 years, 5 months
[webbeans-commits] Webbeans SVN: r223 - ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans.
by webbeans-commits@lists.jboss.org
Author: nickarls
Date: 2008-11-03 08:35:37 -0500 (Mon, 03 Nov 2008)
New Revision: 223
Modified:
ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/ManagerImpl.java
Log:
Minor. ArryList -> CopyOnWriteArrayList
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-03 11:29:51 UTC (rev 222)
+++ ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/ManagerImpl.java 2008-11-03 13:35:37 UTC (rev 223)
@@ -7,6 +7,7 @@
import java.util.HashSet;
import java.util.List;
import java.util.Set;
+import java.util.concurrent.CopyOnWriteArrayList;
import javax.webbeans.AmbiguousDependencyException;
import javax.webbeans.ContextNotActiveException;
@@ -78,7 +79,7 @@
initContexts(null);
this.modelManager = new ModelManager();
this.ejbLookupManager = new EjbManager();
- this.beans = new ArrayList<Bean<?>>();
+ this.beans = new CopyOnWriteArrayList<Bean<?>>();
this.eventBus = new EventBus();
this.resolutionManager = new ResolutionManager(this);
this.proxyPool = new ProxyPool(this);
15 years, 5 months
[webbeans-commits] Webbeans SVN: r222 - in ri/trunk/webbeans-ri/src: test/java/org/jboss/webbeans/test and 1 other directory.
by webbeans-commits@lists.jboss.org
Author: nickarls
Date: 2008-11-03 06:29:51 -0500 (Mon, 03 Nov 2008)
New Revision: 222
Modified:
ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/util/ClientProxy.java
ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/ClientProxyTest.java
Log:
Minor. Test restructure + helper methods.
Modified: ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/util/ClientProxy.java
===================================================================
--- ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/util/ClientProxy.java 2008-11-03 09:36:41 UTC (rev 221)
+++ ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/util/ClientProxy.java 2008-11-03 11:29:51 UTC (rev 222)
@@ -31,4 +31,8 @@
}
}
+ public static boolean isProxy(Object instance) {
+ return instance.getClass().getName().indexOf("_$$_javassist_") > 0;
+ }
+
}
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-03 09:36:41 UTC (rev 221)
+++ ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/ClientProxyTest.java 2008-11-03 11:29:51 UTC (rev 222)
@@ -14,6 +14,7 @@
import org.jboss.webbeans.test.beans.Tuna;
import org.jboss.webbeans.test.beans.TunedTuna;
import org.jboss.webbeans.test.util.Util;
+import org.jboss.webbeans.util.ClientProxy;
import org.testng.annotations.Test;
@SpecVersion("PDR")
@@ -26,7 +27,7 @@
{
Bean<Tuna> tunaBean = Util.createSimpleWebBean(Tuna.class, manager);
Tuna tuna = manager.getInstance(tunaBean);
- assert tuna.getClass().getName().indexOf("$$_javassist_") > 0;
+ assert ClientProxy.isProxy(tuna);
}
@Test(groups = "clientProxy")
@@ -35,57 +36,32 @@
{
Bean<Fox> foxBean = Util.createSimpleWebBean(Fox.class, manager);
Fox fox = manager.getInstance(foxBean);
- assert fox.getClass() == Fox.class;
+ assert !ClientProxy.isProxy(fox);
}
+ private byte[] serializeBean(Object instance) throws IOException {
+ ByteArrayOutputStream bytes = new ByteArrayOutputStream();
+ ObjectOutputStream out = new ObjectOutputStream(bytes);
+ out.writeObject(instance);
+ return bytes.toByteArray();
+ }
+
+ private Object deserializeBean(byte[] bytes) throws IOException, ClassNotFoundException {
+ ObjectInputStream in = new ObjectInputStream(new ByteArrayInputStream(bytes));
+ return in.readObject();
+ }
+
@Test(groups = "clientProxy")
@SpecAssertion(section = "4.4")
- public void testSimpleWebBeanClientProxyIsSerializable()
+ public void testSimpleWebBeanClientProxyIsSerializable() throws IOException, ClassNotFoundException
{
Bean<TunedTuna> tunaBean = Util.createSimpleWebBean(TunedTuna.class, manager);
- manager.addBean(tunaBean);
TunedTuna tuna = manager.getInstance(tunaBean);
- ByteArrayOutputStream bytes = new ByteArrayOutputStream();
- ObjectOutputStream out = null;
- ObjectInputStream in = null;
- try
- {
- out = new ObjectOutputStream(bytes);
- out.writeObject(tuna);
- out.flush();
- byte[] data = bytes.toByteArray();
- in = new ObjectInputStream(new ByteArrayInputStream(data));
- tuna = (TunedTuna) in.readObject();
- assert tuna.getState().equals("tuned");
- }
- catch (Exception e)
- {
- e.printStackTrace();
- assert false;
- }
- finally
- {
- try
- {
- if (bytes != null)
- {
- bytes.close();
- }
- if (out != null)
- {
- out.close();
- }
- if (in != null)
- {
- in.close();
- }
- }
- catch (IOException e)
- {
- e.printStackTrace();
- }
- }
- assert true;
+ assert ClientProxy.isProxy(tuna);
+ byte[] bytes = serializeBean(tuna);
+ tuna = (TunedTuna) deserializeBean(bytes);
+ assert ClientProxy.isProxy(tuna);
+ assert tuna.getState().equals("tuned");
}
@Test(groups = "clientProxy", expectedExceptions = UnproxyableDependencyException.class)
@@ -105,7 +81,7 @@
Bean<TunedTuna> tunaBean = Util.createSimpleWebBean(TunedTuna.class, manager);
manager.addBean(tunaBean);
TunedTuna tuna = manager.getInstance(tunaBean);
- assert tuna.getClass().getName().indexOf("$$_javassist_") > 0;
+ assert ClientProxy.isProxy(tuna);
assert tuna.getState().equals("tuned");
}
15 years, 5 months