Author: nickarls
Date: 2008-11-04 07:45:24 -0500 (Tue, 04 Nov 2008)
New Revision: 232
Added:
ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/beans/broken/Armant.java
ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/beans/broken/GoldenRetriever.java
Modified:
ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/ManagerImpl.java
ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/event/EventImpl.java
ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/exceptions/TypesafeResolutionLocation.java
ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/injectable/ResolverInjectable.java
ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/AbstractAnnotatedItem.java
ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/AnnotatedItem.java
ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/SimpleAnnotatedAnnotation.java
ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/SimpleAnnotatedConstructor.java
ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/SimpleAnnotatedField.java
ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/SimpleAnnotatedItem.java
ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/SimpleAnnotatedMethod.java
ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/SimpleAnnotatedType.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/main/java/org/jboss/webbeans/util/Reflections.java
ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/EnterpriseBeanModelTest.java
Log:
Some more tests.
arguement -> argument
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-04
10:45:28 UTC (rev 231)
+++ ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/ManagerImpl.java 2008-11-04
12:45:24 UTC (rev 232)
@@ -247,7 +247,7 @@
{
// TODO Using the eventType TypeLiteral<T>, the Class<T> object must
be
// retrieved
- this.eventBus.addObserver(observer, (Class<T>)
Reflections.getActualTypeArguements(eventType.getClass())[0], bindings);
+ this.eventBus.addObserver(observer, (Class<T>)
Reflections.getActualTypeArguments(eventType.getClass())[0], bindings);
return this;
}
@@ -374,7 +374,7 @@
{
// TODO The Class<T> for the event type must be retrieved from the
// TypeLiteral<T> instance
- this.eventBus.removeObserver(observer, (Class<T>)
Reflections.getActualTypeArguements(eventType.getClass())[0], bindings);
+ this.eventBus.removeObserver(observer, (Class<T>)
Reflections.getActualTypeArguments(eventType.getClass())[0], bindings);
return this;
}
Modified: ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/event/EventImpl.java
===================================================================
--- ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/event/EventImpl.java 2008-11-04
10:45:28 UTC (rev 231)
+++ ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/event/EventImpl.java 2008-11-04
12:45:24 UTC (rev 232)
@@ -76,7 +76,7 @@
Set<Annotation> eventBindings = new HashSet<Annotation>();
eventBindings.addAll(this.getBindingTypes());
addAnnotationBindings(eventBindings, bindings);
- Type[] observerTypeArguments =
Reflections.getActualTypeArguements(observer.getClass());
+ Type[] observerTypeArguments =
Reflections.getActualTypeArguments(observer.getClass());
webBeansManager.addObserver(observer, (Class<T>) observerTypeArguments[0],
bindings);
}
Modified:
ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/exceptions/TypesafeResolutionLocation.java
===================================================================
---
ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/exceptions/TypesafeResolutionLocation.java 2008-11-04
10:45:28 UTC (rev 231)
+++
ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/exceptions/TypesafeResolutionLocation.java 2008-11-04
12:45:24 UTC (rev 232)
@@ -43,16 +43,16 @@
return location;
}
- public static String createMessage(Class<?> type, Type[] actualTypeArguements,
Set<Annotation> annotations)
+ public static String createMessage(Class<?> type, Type[] actualTypeArguments,
Set<Annotation> annotations)
{
String string = type.toString();
- if (actualTypeArguements.length > 0)
+ if (actualTypeArguments.length > 0)
{
string += "<";
- for (int i = 0; i < actualTypeArguements.length; i++)
+ for (int i = 0; i < actualTypeArguments.length; i++)
{
- string += actualTypeArguements[i].toString();
- if (i < actualTypeArguements.length - 1)
+ string += actualTypeArguments[i].toString();
+ if (i < actualTypeArguments.length - 1)
{
string += ",";
}
Modified:
ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/injectable/ResolverInjectable.java
===================================================================
---
ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/injectable/ResolverInjectable.java 2008-11-04
10:45:28 UTC (rev 231)
+++
ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/injectable/ResolverInjectable.java 2008-11-04
12:45:24 UTC (rev 232)
@@ -79,9 +79,9 @@
this(new SimpleAnnotatedItem<T, Object>(bindingTypes, type), modelManager);
}
- public ResolverInjectable(Class<T> type, Annotation[] bindingTypes, ModelManager
modelManager, Type ... actualTypeArguements)
+ public ResolverInjectable(Class<T> type, Annotation[] bindingTypes, ModelManager
modelManager, Type ... actualTypeArguments)
{
- this(new SimpleAnnotatedItem<T, Object>(bindingTypes, type,
actualTypeArguements), modelManager);
+ this(new SimpleAnnotatedItem<T, Object>(bindingTypes, type,
actualTypeArguments), modelManager);
}
public ResolverInjectable(TypeLiteral<T> apiType, Annotation[] bindingTypes,
ModelManager modelManager)
Modified:
ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/AbstractAnnotatedItem.java
===================================================================
---
ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/AbstractAnnotatedItem.java 2008-11-04
10:45:28 UTC (rev 231)
+++
ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/AbstractAnnotatedItem.java 2008-11-04
12:45:24 UTC (rev 232)
@@ -131,14 +131,14 @@
public boolean isAssignableFrom(AnnotatedItem<?, ?> that)
{
- return isAssignableFrom(that.getType(), that.getActualTypeArguements());
+ return isAssignableFrom(that.getType(), that.getActualTypeArguments());
}
public boolean isAssignableFrom(Set<Class<?>> types)
{
for (Class<?> type : types)
{
- if (isAssignableFrom(type, Reflections.getActualTypeArguements(type)))
+ if (isAssignableFrom(type, Reflections.getActualTypeArguments(type)))
{
return true;
}
@@ -146,9 +146,9 @@
return false;
}
- private boolean isAssignableFrom(Class<?> type, Type[] actualTypeArguements)
+ private boolean isAssignableFrom(Class<?> type, Type[] actualTypeArguments)
{
- return getType().isAssignableFrom(type) &&
Arrays.equals(getActualTypeArguements(), actualTypeArguements);
+ return getType().isAssignableFrom(type) &&
Arrays.equals(getActualTypeArguments(), actualTypeArguments);
}
@Override
@@ -160,7 +160,7 @@
@Override
public String toString()
{
- return TypesafeResolutionLocation.createMessage(getType(),
getActualTypeArguements(), getAnnotations());
+ return TypesafeResolutionLocation.createMessage(getType(),
getActualTypeArguments(), getAnnotations());
}
}
\ No newline at end of file
Modified:
ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/AnnotatedItem.java
===================================================================
---
ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/AnnotatedItem.java 2008-11-04
10:45:28 UTC (rev 231)
+++
ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/AnnotatedItem.java 2008-11-04
12:45:24 UTC (rev 232)
@@ -57,6 +57,6 @@
public boolean isAssignableFrom(Set<Class<?>> types);
- public Type[] getActualTypeArguements();
+ public Type[] getActualTypeArguments();
}
\ No newline at end of file
Modified:
ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/SimpleAnnotatedAnnotation.java
===================================================================
---
ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/SimpleAnnotatedAnnotation.java 2008-11-04
10:45:28 UTC (rev 231)
+++
ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/SimpleAnnotatedAnnotation.java 2008-11-04
12:45:24 UTC (rev 232)
@@ -23,7 +23,7 @@
this.clazz = annotationType;
}
- public Type[] getActualTypeArguements()
+ public Type[] getActualTypeArguments()
{
return new Type[0];
}
Modified:
ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/SimpleAnnotatedConstructor.java
===================================================================
---
ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/SimpleAnnotatedConstructor.java 2008-11-04
10:45:28 UTC (rev 231)
+++
ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/SimpleAnnotatedConstructor.java 2008-11-04
12:45:24 UTC (rev 232)
@@ -6,7 +6,7 @@
public class SimpleAnnotatedConstructor<T> extends AbstractAnnotatedItem<T,
Constructor<T>> implements AnnotatedConstructor<T>
{
- private static final Type[] actualTypeArguements = new Type[0];
+ private static final Type[] actualTypeArguments = new Type[0];
private Constructor<T> constructor;
@@ -31,9 +31,9 @@
return constructor.getDeclaringClass();
}
- public Type[] getActualTypeArguements()
+ public Type[] getActualTypeArguments()
{
- return actualTypeArguements;
+ return actualTypeArguments;
}
}
Modified:
ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/SimpleAnnotatedField.java
===================================================================
---
ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/SimpleAnnotatedField.java 2008-11-04
10:45:28 UTC (rev 231)
+++
ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/SimpleAnnotatedField.java 2008-11-04
12:45:24 UTC (rev 232)
@@ -7,7 +7,7 @@
public class SimpleAnnotatedField<T> extends AbstractAnnotatedItem<T, Field>
implements AnnotatedField<T>
{
- private Type[] actualTypeArguements = new Type[0];
+ private Type[] actualTypeArguments = new Type[0];
private Field field;
@@ -18,7 +18,7 @@
if (field.getGenericType() instanceof ParameterizedType)
{
ParameterizedType type = (ParameterizedType) field.getGenericType();
- actualTypeArguements = type.getActualTypeArguments();
+ actualTypeArguments = type.getActualTypeArguments();
}
}
@@ -37,9 +37,9 @@
return (Class<T>) field.getType();
}
- public Type[] getActualTypeArguements()
+ public Type[] getActualTypeArguments()
{
- return actualTypeArguements;
+ return actualTypeArguments;
}
}
Modified:
ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/SimpleAnnotatedItem.java
===================================================================
---
ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/SimpleAnnotatedItem.java 2008-11-04
10:45:28 UTC (rev 231)
+++
ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/SimpleAnnotatedItem.java 2008-11-04
12:45:24 UTC (rev 232)
@@ -35,10 +35,10 @@
}
}
- private SimpleAnnotatedItem(Map<Class<? extends Annotation>, Annotation>
annotationMap, Class<? extends T> type, Type[] actualTypeArguements)
+ private SimpleAnnotatedItem(Map<Class<? extends Annotation>, Annotation>
annotationMap, Class<? extends T> type, Type[] actualTypeArguments)
{
this(annotationMap, type);
- this.actualTypeArguments = actualTypeArguements;
+ this.actualTypeArguments = actualTypeArguments;
}
public SimpleAnnotatedItem(Annotation[] annotations)
@@ -59,9 +59,9 @@
this.actualAnnotations = annotations;
}
- public SimpleAnnotatedItem(Annotation[] annotations, Class<? extends T> type,
Type[] actualTypeArguements)
+ public SimpleAnnotatedItem(Annotation[] annotations, Class<? extends T> type,
Type[] actualTypeArguments)
{
- this(buildAnnotationMap(annotations), type, actualTypeArguements);
+ this(buildAnnotationMap(annotations), type, actualTypeArguments);
this.actualAnnotations = annotations;
}
@@ -75,7 +75,7 @@
return type;
}
- public Type[] getActualTypeArguements()
+ public Type[] getActualTypeArguments()
{
return actualTypeArguments;
}
Modified:
ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/SimpleAnnotatedMethod.java
===================================================================
---
ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/SimpleAnnotatedMethod.java 2008-11-04
10:45:28 UTC (rev 231)
+++
ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/SimpleAnnotatedMethod.java 2008-11-04
12:45:24 UTC (rev 232)
@@ -6,7 +6,7 @@
public class SimpleAnnotatedMethod<T> extends AbstractAnnotatedItem<T,
Method> implements AnnotatedMethod<T>
{
- private static final Type[] actualTypeArguements = new Type[0];
+ private static final Type[] actualTypeArgements = new Type[0];
private Method method;
@@ -31,9 +31,9 @@
return (Class<T>) method.getReturnType();
}
- public Type[] getActualTypeArguements()
+ public Type[] getActualTypeArguments()
{
- return actualTypeArguements;
+ return actualTypeArgements;
}
}
Modified:
ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/SimpleAnnotatedType.java
===================================================================
---
ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/SimpleAnnotatedType.java 2008-11-04
10:45:28 UTC (rev 231)
+++
ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/SimpleAnnotatedType.java 2008-11-04
12:45:24 UTC (rev 232)
@@ -20,7 +20,7 @@
{
private Class<T> clazz;
- private Type[] actualTypeArguements;
+ private Type[] actualTypeArguments;
private Set<AnnotatedField<Object>> fields;
private Map<Class<? extends Annotation>,
Set<AnnotatedField<Object>>> annotatedFields;
private Map<Class<? extends Annotation>,
Set<AnnotatedField<Object>>> metaAnnotatedFields;
@@ -32,11 +32,11 @@
if (this.clazz.getGenericSuperclass() instanceof ParameterizedType)
{
ParameterizedType type = (ParameterizedType) this.clazz.getGenericSuperclass();
- actualTypeArguements = type.getActualTypeArguments();
+ actualTypeArguments = type.getActualTypeArguments();
}
else
{
- actualTypeArguements = new Type[0];
+ actualTypeArguments = new Type[0];
}
}
@@ -143,9 +143,9 @@
return clazz;
}
- public Type[] getActualTypeArguements()
+ public Type[] getActualTypeArguments()
{
- return actualTypeArguements;
+ return actualTypeArguments;
}
}
\ No newline at end of file
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
10:45:28 UTC (rev 231)
+++
ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/model/bean/AbstractEnterpriseBeanModel.java 2008-11-04
12:45:24 UTC (rev 232)
@@ -27,10 +27,18 @@
{
super.init(container);
ejbMetaData = container.getEjbManager().getEjbMetaData(getType());
+ checkEnterpriseBeanTypeAllowed();
checkEnterpriseScopeAllowed();
checkConflictingRoles();
}
+ private void checkEnterpriseBeanTypeAllowed()
+ {
+ if (getEjbMetaData().isMessageDriven()) {
+ throw new DefinitionException("Message Driven Beans can't be Web
Beans");
+ }
+ }
+
protected EjbMetaData<T> getEjbMetaData()
{
return ejbMetaData;
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
10:45:28 UTC (rev 231)
+++
ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/model/bean/EnterpriseBeanModel.java 2008-11-04
12:45:24 UTC (rev 232)
@@ -16,6 +16,7 @@
import javax.webbeans.Produces;
import org.jboss.webbeans.ManagerImpl;
+import org.jboss.webbeans.ejb.EJB;
import org.jboss.webbeans.injectable.BeanConstructor;
import org.jboss.webbeans.injectable.EnterpriseConstructor;
import org.jboss.webbeans.injectable.InjectableMethod;
@@ -132,6 +133,9 @@
private InjectableMethod<?> checkRemoveMethod(Method method)
{
+ if (method.isAnnotationPresent(Destructor.class) &&
!method.isAnnotationPresent(EJB.REMOVE_ANNOTATION)) {
+ throw new DefinitionException("Methods marked @Destructor must also be
marked @Remove on " + method.getName());
+ }
if (method.isAnnotationPresent(Initializer.class)) {
throw new DefinitionException("Remove methods cannot be initializers on
" + method.getName());
}
Modified: ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/util/Reflections.java
===================================================================
--- ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/util/Reflections.java 2008-11-04
10:45:28 UTC (rev 231)
+++ ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/util/Reflections.java 2008-11-04
12:45:24 UTC (rev 232)
@@ -230,7 +230,7 @@
return annotationTypeList.size() == 0;
}
- public static Type[] getActualTypeArguements(Class<?> clazz)
+ public static Type[] getActualTypeArguments(Class<?> clazz)
{
if (clazz.getGenericSuperclass() instanceof ParameterizedType)
{
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
10:45:28 UTC (rev 231)
+++
ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/EnterpriseBeanModelTest.java 2008-11-04
12:45:24 UTC (rev 232)
@@ -8,11 +8,14 @@
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.Leopard;
import org.jboss.webbeans.test.beans.Pitbull;
+import org.jboss.webbeans.test.beans.broken.Armant;
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.GoldenRetriever;
import org.jboss.webbeans.test.beans.broken.Greyhound;
import org.jboss.webbeans.test.beans.broken.Husky;
import org.jboss.webbeans.test.beans.broken.IrishTerrier;
@@ -213,10 +216,10 @@
}
@Test(expectedExceptions = DefinitionException.class)
- @SpecAssertion(section = "3.3.4")
- public void testMessageDrivenBeansDefinedWithXMLNotOK()
+ @SpecAssertion(section = "3.3")
+ public void testMessageDrivenBeansNotOK()
{
- assert false;
+ EnterpriseBeanModel<Leopard> Leopard =
Util.createEnterpriseBeanModel(Leopard.class, manager);
}
@Test
@@ -286,14 +289,16 @@
@SpecAssertion(section = "3.3.5.1")
public void
testAnnotationDefinedEJBWithoutDestructorUsesRemoveMethodWithoutParamsAsWebBeansRemoveMethod()
{
- assert false;
+ EnterpriseBeanModel<Armant> whippet =
Util.createEnterpriseBeanModel(Armant.class, manager);
+ assert
whippet.getRemoveMethod().getAnnotatedItem().getDelegate().getName().equals("destroy");
}
@Test
@SpecAssertion(section = "3.3.5.1")
public void
testAnnotationDefinedEJBWithoutDestructorAndRemoveMethodWithoutParamsHasNoWebBeansRemoveMethod()
{
- assert false;
+ EnterpriseBeanModel<Laika> laika =
Util.createEnterpriseBeanModel(Laika.class, manager);
+ assert laika.getRemoveMethod() == null;
}
@Test(expectedExceptions = DefinitionException.class)
@@ -307,7 +312,7 @@
@SpecAssertion(section = "3.3.5.1")
public void
testAnnotationDefinedEJBWithDestructorAnnotationOnMethodNotAnEJBRemoveMethodFails()
{
- assert false;
+ EnterpriseBeanModel<GoldenRetriever> goldenRetriever =
Util.createEnterpriseBeanModel(GoldenRetriever.class, manager);
}
@Test(expectedExceptions = DefinitionException.class)
Added:
ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/beans/broken/Armant.java
===================================================================
--- ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/beans/broken/Armant.java
(rev 0)
+++
ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/beans/broken/Armant.java 2008-11-04
12:45:24 UTC (rev 232)
@@ -0,0 +1,13 @@
+package org.jboss.webbeans.test.beans.broken;
+
+import javax.ejb.Remove;
+import javax.ejb.Stateful;
+
+@Stateful
+public class Armant
+{
+ @Remove
+ public void destroy() {
+
+ }
+}
Added:
ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/beans/broken/GoldenRetriever.java
===================================================================
---
ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/beans/broken/GoldenRetriever.java
(rev 0)
+++
ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/beans/broken/GoldenRetriever.java 2008-11-04
12:45:24 UTC (rev 232)
@@ -0,0 +1,13 @@
+package org.jboss.webbeans.test.beans.broken;
+
+import javax.ejb.Stateful;
+import javax.webbeans.Destructor;
+
+@Stateful
+public class GoldenRetriever
+{
+ @Destructor
+ public void destroy() {
+
+ }
+}