Author: shane.bryzak(a)jboss.com
Date: 2009-02-16 02:53:42 -0500 (Mon, 16 Feb 2009)
New Revision: 1537
Modified:
tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/context/passivating/PassivatingContextTest.java
tck/trunk/impl/src/main/resources/tck-audit.xml
Log:
finer grained assertions for 8.4, mapped passivation tests
Modified:
tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/context/passivating/PassivatingContextTest.java
===================================================================
---
tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/context/passivating/PassivatingContextTest.java 2009-02-16
06:17:50 UTC (rev 1536)
+++
tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/context/passivating/PassivatingContextTest.java 2009-02-16
07:53:42 UTC (rev 1537)
@@ -23,28 +23,15 @@
*/
public class PassivatingContextTest extends AbstractDeclarativeTest
{
-
- /**
- * Simple Web Beans are not required to be serializable. If a simple Web Bean
- * declares a passivating scope, and the implementation class is not
- * serializable, a DefinitionException is thrown by the Web Bean manager at
- * initialization time.
- */
@Test(groups = { "contexts", "passivation" }, expectedExceptions =
DefinitionException.class)
- @SpecAssertion(section = "8.4", id = "unknown")
+ @SpecAssertion(section = "8.4", id = "b")
public void testSimpleWebBeanWithNonSerializableImplementationClassFails()
{
deployBeans(Hamina_Broken.class);
}
- /**
- * Simple Web Beans are not required to be serializable. If a simple Web Bean
- * declares a passivating scope, and the implementation class is not
- * serializable, a DefinitionException is thrown by the Web Bean manager at
- * initialization time.
- */
@Test(groups = { "contexts", "passivation" })
- @SpecAssertion(section = "8.4", id = "unknown")
+ @SpecAssertion(section = "8.4", id = "b")
public void testSimpleWebBeanWithSerializableImplementationClassOK()
{
deployBeans(Jyvaskyla.class);
@@ -59,19 +46,15 @@
getCurrentManager().getInstanceByType(NumberConsumer.class).ping();
}
- @Test @SpecAssertion(section="8.4", id = "unknown")
+ @Test @SpecAssertion(section="8.4", id = "outdated")
public void testInjectionOfDependentPrimitiveProductIntoNormalBean()
{
deployBeans(Generator.class, FooConsumer.class);
getCurrentManager().getInstanceByType(FooConsumer.class).ping();
}
- /**
- * the Web Bean declares a passivating scope type, and context passivation
- * occurs, or
- */
@Test(groups = { "contexts", "passivation" })
- @SpecAssertion(section = "8.4", id = "unknown")
+ @SpecAssertion(section = "8.4", id = "f")
public void
testSimpleWebBeanDeclaringPassivatingScopeIsSerializedWhenContextIsPassivated() throws
IOException, ClassNotFoundException
{
deployBeans(Kajaani.class);
@@ -94,14 +77,8 @@
return resurrected.toString().equals(instance.toString());
}
- /**
- * On the other hand, dependent objects (including interceptors and
- * decorators with scope @Dependent) of a stateful session bean or of a Web
- * Bean with a passivating scope must be serialized and deserialized along
- * with their owner
- */
@Test(groups = { "contexts", "passivation", "stub" },
expectedExceptions = UnserializableDependencyException.class)
- @SpecAssertion(section = "8.4", id = "unknown")
+ @SpecAssertion(section = "8.4", id = "j")
public void testDependentInterceptorsOfStatefulEnterpriseBeanMustBeSerializable()
{
//deployBeans(Kaarina_Broken.class);
@@ -115,35 +92,23 @@
* with their owner
*/
@Test(groups = { "contexts", "passivation", "stub" },
expectedExceptions = UnserializableDependencyException.class)
- @SpecAssertion(section = "8.4", id = "unknown")
+ @SpecAssertion(section = "8.4", id = "j")
public void testDependentDecoratorsOfStatefulEnterpriseBeanMustBeSerializable()
{
//deployBeans(Porvoo_Broken.class);
assert false;
}
- /**
- * On the other hand, dependent objects (including interceptors and
- * decorators with scope @Dependent) of a stateful session bean or of a Web
- * Bean with a passivating scope must be serialized and deserialized along
- * with their owner
- */
@Test(groups = { "contexts", "passivation", "stub" },
expectedExceptions = UnserializableDependencyException.class)
- @SpecAssertion(section = "8.4", id = "unknown")
+ @SpecAssertion(section = "8.4", id = "k")
public void
testDependentInterceptorsOfWebBeanWithPassivatingScopeMustBeSerializable()
{
//deployBeans(Kotka_Broken.class);
assert false;
}
- /**
- * On the other hand, dependent objects (including interceptors and
- * decorators with scope @Dependent) of a stateful session bean or of a Web
- * Bean with a passivating scope must be serialized and deserialized along
- * with their owner
- */
@Test(groups = { "contexts", "passivation", "stub" },
expectedExceptions = UnserializableDependencyException.class)
- @SpecAssertion(section = "8.4", id = "unknown")
+ @SpecAssertion(section = "8.4", id = "k")
public void testDependentDecoratorsOfWebBeansWithPassivatingScopeMustBeSerializable()
{
//deployBeans(Raisio_Broken.class);
@@ -151,14 +116,11 @@
}
/**
- * EJB local objects are serializable. Therefore, any reference to an
- * enterprise Web Bean of scope @Dependent is serializable.
- *
* @throws ClassNotFoundException
* @throws IOException
*/
@Test(groups = { "contexts", "passivation" })
- @SpecAssertion(section = "8.4", id = "unknown")
+ @SpecAssertion(section = "8.4", id = "j")
public void testDependentEJBsAreSerializable() throws IOException,
ClassNotFoundException
{
deployBeans(Vaasa.class, Helsinki.class);
@@ -167,50 +129,23 @@
assert testSerialize(vaasaBeans.iterator().next());
}
- /**
- * If a simple Web Bean of scope @Dependent and a non-serializable
- * implementation class is injected into a stateful session bean, into a
- * non-transient field, Web Bean constructor parameter or initializer method
- * parameter of a Web Bean which declares a passivating scope type, or into a
- * parameter of a producer method which declares a passivating scope type, an
- * UnserializableDependencyException must be thrown by the Web Bean manager
- * at initialization time.
- */
@Test(groups = { "contexts", "passivation" }, expectedExceptions =
UnserializableDependencyException.class)
- @SpecAssertion(section = "8.4", id = "unknown")
+ @SpecAssertion(section = "8.4", id = "k")
public void
testSimpleDependentWebBeanWithNonSerializableImplementationInjectedIntoStatefulSessionBeanFails()
{
deployBeans(Violation.class, Espoo_Broken.class);
getCurrentManager().getInstanceByType(Espoo_Broken.class);
}
- /**
- * If a simple Web Bean of scope @Dependent and a non-serializable
- * implementation class is injected into a stateful session bean, into a
- * non-transient field, Web Bean constructor parameter or initializer method
- * parameter of a Web Bean which declares a passivating scope type, or into a
- * parameter of a producer method which declares a passivating scope type, an
- * UnserializableDependencyException must be thrown by the Web Bean manager
- * at initialization time.
- */
@Test(groups = { "contexts", "passivation" }, expectedExceptions =
UnserializableDependencyException.class)
- @SpecAssertion(section = "8.4", id = "unknown")
+ @SpecAssertion(section = "8.4", id = "l")
public void
testSimpleDependentWebBeanWithNonSerializableImplementationInjectedIntoNonTransientFieldOfWebBeanWithPassivatingScopeFails()
{
deployBeans(Vantaa_Broken.class, Violation.class);
}
- /**
- * If a simple Web Bean of scope @Dependent and a non-serializable
- * implementation class is injected into a stateful session bean, into a
- * non-transient field, Web Bean constructor parameter or initializer method
- * parameter of a Web Bean which declares a passivating scope type, or into a
- * parameter of a producer method which declares a passivating scope type, an
- * UnserializableDependencyException must be thrown by the Web Bean manager
- * at initialization time.
- */
@Test(groups = { "contexts", "passivation" })
- @SpecAssertion(section = "8.4", id = "unknown")
+ @SpecAssertion(section = "8.4", id = "l")
public void
testSimpleDependentWebBeanWithNonSerializableImplementationInjectedIntoTransientFieldOK()
{
deployBeans(Joensuu.class, Violation.class);
@@ -218,80 +153,37 @@
assert !beans.isEmpty();
}
- /**
- * If a simple Web Bean of scope @Dependent and a non-serializable
- * implementation class is injected into a stateful session bean, into a
- * non-transient field, Web Bean constructor parameter or initializer method
- * parameter of a Web Bean which declares a passivating scope type, or into a
- * parameter of a producer method which declares a passivating scope type, an
- * UnserializableDependencyException must be thrown by the Web Bean manager
- * at initialization time.
- */
@Test(groups = { "contexts", "passivation" }, expectedExceptions =
UnserializableDependencyException.class)
- @SpecAssertion(section = "8.4", id = "unknown")
+ @SpecAssertion(section = "8.4", id = "m")
public void
testSimpleDependentWebBeanWithNonSerializableImplementationInjectedIntoConstructorParameterOfWebBeanWithPassivatingScopeFails()
{
deployBeans(Loviisa_Broken.class, Violation.class);
}
- /**
- * If a simple Web Bean of scope @Dependent and a non-serializable
- * implementation class is injected into a stateful session bean, into a
- * non-transient field, Web Bean constructor parameter or initializer method
- * parameter of a Web Bean which declares a passivating scope type, or into a
- * parameter of a producer method which declares a passivating scope type, an
- * UnserializableDependencyException must be thrown by the Web Bean manager
- * at initialization time.
- */
@Test(groups = { "contexts", "passivation" }, expectedExceptions =
UnserializableDependencyException.class)
- @SpecAssertion(section = "8.4", id = "unknown")
+ @SpecAssertion(section = "8.4", id = "n")
public void
testSimpleDependentWebBeanWithNonSerializableImplementationInjectedIntoInitializerParameterOfWebBeanWithPassivatingScopeFails()
{
deployBeans(Forssa_Broken.class, Violation.class);
}
- /**
- * If a simple Web Bean of scope @Dependent and a non-serializable
- * implementation class is injected into a stateful session bean, into a
- * non-transient field, Web Bean constructor parameter or initializer method
- * parameter of a Web Bean which declares a passivating scope type, or into a
- * parameter of a producer method which declares a passivating scope type, an
- * UnserializableDependencyException must be thrown by the Web Bean manager
- * at initialization time.
- */
@Test(groups = { "contexts", "passivation" }, expectedExceptions =
UnserializableDependencyException.class)
- @SpecAssertion(section = "8.4", id = "unknown")
+ @SpecAssertion(section = "8.4", id = "o")
public void
testSimpleDependentWebBeanWithNonSerializableImplementationInjectedIntoProducerMethodParameterWithPassivatingScopeFails()
{
deployBeans(Peraseinajoki.class, Violation.class, Violation2.class);
}
- /**
- * If a producer method or field of scope @Dependent returns a
- * non-serializable object for injection into a stateful session bean, into a
- * non-transient field, Web Bean constructor parameter or initializer method
- * parameter of a Web Bean which declares a passivating scope type, or into a
- * parameter of a producer method which declares a passivating scope type, an
- * IllegalProductException is thrown by the Web Bean manager.
- */
@Test(groups = { "contexts", "passivation" }, expectedExceptions =
IllegalProductException.class)
- @SpecAssertion(section = "8.4", id = "unknown")
+ @SpecAssertion(section = "8.4", id = "q")
public void
testDependentScopedProducerMethodReturnsNonSerializableObjectForInjectionIntoNonTransientFieldOfWebBeanWithPassivatingScopeFails()
{
deployBeans(CityProducer2.class, Nokia_Broken.class);
getCurrentManager().getInstanceByType(Nokia_Broken.class).ping();
}
- /**
- * If a producer method or field of scope @Dependent returns a
- * non-serializable object for injection into a stateful session bean, into a
- * non-transient field, Web Bean constructor parameter or initializer method
- * parameter of a Web Bean which declares a passivating scope type, or into a
- * parameter of a producer method which declares a passivating scope type, an
- * IllegalProductException is thrown by the Web Bean manager.
- */
@Test(groups = { "contexts", "passivation" })
- @SpecAssertion(section = "8.4", id = "unknown")
+ @SpecAssertion(section = "8.4", id = "q")
public void
testDependentScopedProducerMethodReturnsNonSerializableObjectForInjectionIntoTransientFieldOfWebBeanWithPassivatingScopeOK()
{
deployBeans(CityProducer2.class, Hyvinkaa.class);
@@ -299,128 +191,64 @@
assert !beans.isEmpty();
}
- /**
- * If a producer method or field of scope @Dependent returns a
- * non-serializable object for injection into a stateful session bean, into a
- * non-transient field, Web Bean constructor parameter or initializer method
- * parameter of a Web Bean which declares a passivating scope type, or into a
- * parameter of a producer method which declares a passivating scope type, an
- * IllegalProductException is thrown by the Web Bean manager.
- */
@Test(groups = { "contexts", "passivation" }, expectedExceptions =
IllegalProductException.class)
- @SpecAssertion(section = "8.4", id = "unknown")
+ @SpecAssertion(section = "8.4", id = "r")
public void
testDependentScopedProducerMethodReturnsNonSerializableObjectForInjectionIntoConstructorParameterOfWebBeanWithPassivatingScopeFails()
{
deployBeans(CityProducer2.class, Loviisa_Broken.class);
getCurrentManager().getInstanceByType(Loviisa_Broken.class).ping();
}
- /**
- * If a producer method or field of scope @Dependent returns a
- * non-serializable object for injection into a stateful session bean, into a
- * non-transient field, Web Bean constructor parameter or initializer method
- * parameter of a Web Bean which declares a passivating scope type, or into a
- * parameter of a producer method which declares a passivating scope type, an
- * IllegalProductException is thrown by the Web Bean manager.
- */
@Test(groups = { "contexts", "passivation" }, expectedExceptions =
IllegalProductException.class)
- @SpecAssertion(section = "8.4", id = "unknown")
+ @SpecAssertion(section = "8.4", id = "s")
public void
testDependentScopedProducerMethodReturnsNonSerializableObjectForInjectionIntoInitializerParameterOfWebBeanWithPassivatingScopeFails()
{
deployBeans(CityProducer2.class, Kuopio_Broken.class);
getCurrentManager().getInstanceByType(Kuopio_Broken.class).ping();
}
- /**
- * If a producer method or field of scope @Dependent returns a
- * non-serializable object for injection into a stateful session bean, into a
- * non-transient field, Web Bean constructor parameter or initializer method
- * parameter of a Web Bean which declares a passivating scope type, or into a
- * parameter of a producer method which declares a passivating scope type, an
- * IllegalProductException is thrown by the Web Bean manager.
- */
@Test(groups = { "contexts", "passivation" }, expectedExceptions =
IllegalProductException.class)
- @SpecAssertion(section = "8.4", id = "unknown")
+ @SpecAssertion(section = "8.4", id = "t")
public void
testDependentScopedProducerMethodReturnsNonSerializableObjectForInjectionIntoProducerMethodParameterWithPassivatingScopeFails()
{
deployBeans(CityProducer2.class, Jamsa_Broken.class);
getCurrentManager().getInstanceByType(Jamsa_Broken.class).ping();
}
- /**
- * If a producer method or field of scope @Dependent returns a
- * non-serializable object for injection into a stateful session bean, into a
- * non-transient field, Web Bean constructor parameter or initializer method
- * parameter of a Web Bean which declares a passivating scope type, or into a
- * parameter of a producer method which declares a passivating scope type, an
- * IllegalProductException is thrown by the Web Bean manager.
- */
@Test(groups = { "contexts", "passivation" }, expectedExceptions =
IllegalProductException.class)
- @SpecAssertion(section = "8.4", id = "unknown")
+ @SpecAssertion(section = "8.4", id = "q")
public void
testDependentScopedProducerFieldReturnsNonSerializableObjectForInjectionIntoNonTransientFieldOfWebBeanWithPassivatingScopeFails()
{
deployBeans(CityProducer.class, Uusikaupunki_Broken.class);
getCurrentManager().getInstanceByType(Uusikaupunki_Broken.class).ping();
}
- /**
- * If a producer method or field of scope @Dependent returns a
- * non-serializable object for injection into a stateful session bean, into a
- * non-transient field, Web Bean constructor parameter or initializer method
- * parameter of a Web Bean which declares a passivating scope type, or into a
- * parameter of a producer method which declares a passivating scope type, an
- * IllegalProductException is thrown by the Web Bean manager.
- */
@Test(groups = { "contexts", "passivation" })
- @SpecAssertion(section = "8.4", id = "unknown")
+ @SpecAssertion(section = "8.4", id = "q")
public void
testDependentScopedProducerFieldReturnsNonSerializableObjectForInjectionIntoTransientFieldOfWebBeanWithPassivatingScopeOK()
{
deployBeans(CityProducer.class, Salo_Broken.class);
getCurrentManager().getInstanceByType(Salo_Broken.class).ping();
}
- /**
- * If a producer method or field of scope @Dependent returns a
- * non-serializable object for injection into a stateful session bean, into a
- * non-transient field, Web Bean constructor parameter or initializer method
- * parameter of a Web Bean which declares a passivating scope type, or into a
- * parameter of a producer method which declares a passivating scope type, an
- * IllegalProductException is thrown by the Web Bean manager.
- */
@Test(groups = { "contexts", "passivation" }, expectedExceptions =
IllegalProductException.class)
- @SpecAssertion(section = "8.4", id = "unknown")
+ @SpecAssertion(section = "8.4", id = "r")
public void
testDependentScopedProducerFieldReturnsNonSerializableObjectForInjectionIntoConstructorParameterOfWebBeanWithPassivatingScopeFails()
{
deployBeans(CityProducer.class, Loviisa_Broken.class);
getCurrentManager().getInstanceByType(Loviisa_Broken.class).ping();
}
- /**
- * If a producer method or field of scope @Dependent returns a
- * non-serializable object for injection into a stateful session bean, into a
- * non-transient field, Web Bean constructor parameter or initializer method
- * parameter of a Web Bean which declares a passivating scope type, or into a
- * parameter of a producer method which declares a passivating scope type, an
- * IllegalProductException is thrown by the Web Bean manager.
- */
@Test(groups = { "contexts", "passivation" }, expectedExceptions =
IllegalProductException.class)
- @SpecAssertion(section = "8.4", id = "unknown")
+ @SpecAssertion(section = "8.4", id = "s")
public void
testDependentScopedProducerFieldReturnsNonSerializableObjectForInjectionIntoInitializerParameterOfWebBeanWithPassivatingScopeFails()
{
deployBeans(CityProducer.class, Mikkeli_Broken.class);
getCurrentManager().getInstanceByType(Mikkeli_Broken.class).ping();
}
- /**
- * If a producer method or field of scope @Dependent returns a
- * non-serializable object for injection into a stateful session bean, into a
- * non-transient field, Web Bean constructor parameter or initializer method
- * parameter of a Web Bean which declares a passivating scope type, or into a
- * parameter of a producer method which declares a passivating scope type, an
- * IllegalProductException is thrown by the Web Bean manager.
- */
@Test(groups = { "contexts", "passivation" }, expectedExceptions =
IllegalProductException.class)
- @SpecAssertion(section = "8.4", id = "unknown")
+ @SpecAssertion(section = "8.4", id = "t")
public void
testDependentScopedProducerFieldReturnsNonSerializableObjectForInjectionIntoProducerMethodParameterWithPassivatingScopeFails()
{
// TODO Not quite sure what this test is doing
Modified: tck/trunk/impl/src/main/resources/tck-audit.xml
===================================================================
--- tck/trunk/impl/src/main/resources/tck-audit.xml 2009-02-16 06:17:50 UTC (rev 1536)
+++ tck/trunk/impl/src/main/resources/tck-audit.xml 2009-02-16 07:53:42 UTC (rev 1537)
@@ -2222,23 +2222,54 @@
</assertion>
<assertion id="j">
- <text>Dependent objects (including interceptors and decorators with scope
@Dependent) of a stateful session bean or of a bean with a passivating scope must be
serialized and deserialized along with their owner - EJB local objects are serializable.
Therefore, any reference to a session bean of scope @Dependent is
serializable</text>
+ <text>EJB local objects are serializable, therefore, any reference to a
session bean of scope @Dependent is serializable</text>
</assertion>
<assertion id="k">
- <text>Dependent objects (including interceptors and decorators with scope
@Dependent) of a stateful session bean or of a bean with a passivating scope must be
serialized and deserialized along with their owner - A simple bean of scope @Dependent may
or may not be serializable. If a simple bean of scope @Dependent and a nonserializable
bean class is injected into a stateful session bean, into a non-transient field, bean
constructor parameter or initializer method parameter of a bean which declares a
passivating scope, or into a parameter of a producer method
-which declares a passivating scope, an UnserializableDependencyException must be thrown
by the container at deployment time</text>
+ <text>If a simple bean of scope @Dependent and a nonserializable bean class
is injected into a stateful session bean an UnserializableDependencyException must be
thrown by the container at deployment time</text>
</assertion>
<assertion id="l">
- <text>Dependent objects (including interceptors and decorators with scope
@Dependent) of a stateful session bean or of a bean with a passivating scope must be
serialized and deserialized along with their owner - If a producer method or field of
scope @Dependent returns a non-serializable object for injection into a stateful session
bean, into a non-transient field, bean constructor parameter or initializer method
parameter of a bean which declares a passivating scope, or into a parameter of a producer
method which declares a passivating scope, an IllegalProductException is thrown by the
container</text>
+ <text>If a simple bean of scope @Dependent and a nonserializable bean class
is injected into a non-transient field an UnserializableDependencyException must be thrown
by the container at deployment time</text>
</assertion>
<assertion id="m">
- <text>Dependent objects (including interceptors and decorators with scope
@Dependent) of a stateful session bean or of a bean with a passivating scope must be
serialized and deserialized along with their owner - The container must guarantee that JMS
resource proxy objects are serializable</text>
+ <text>If a simple bean of scope @Dependent and a nonserializable bean class
is injected into a bean constructor parameter of a bean which declares a passivating
scope, an UnserializableDependencyException must be thrown by the container at deployment
time</text>
</assertion>
<assertion id="n">
+ <text>If a simple bean of scope @Dependent and a nonserializable bean class
is injected into an initializer method parameter of a bean which declares a passivating
scope, an UnserializableDependencyException must be thrown by the container at deployment
time</text>
+ </assertion>
+
+ <assertion id="o">
+ <text>If a simple bean of scope @Dependent and a nonserializable bean class
is injected into a parameter of a producer method which declares a passivating scope, an
UnserializableDependencyException must be thrown by the container at deployment
time</text>
+ </assertion>
+
+ <assertion id="p">
+ <text>If a producer method or field of scope @Dependent returns a
non-serializable object for injection into a stateful session bean, an
IllegalProductException is thrown by the container</text>
+ </assertion>
+
+ <assertion id="q">
+ <text>If a producer method or field of scope @Dependent returns a
non-serializable object for injection into a non-transient field an
IllegalProductException is thrown by the container</text>
+ </assertion>
+
+ <assertion id="r">
+ <text>If a producer method or field of scope @Dependent returns a
non-serializable object for injection into a bean constructor parameter of a bean which
declares a passivating scope, an IllegalProductException is thrown by the
container</text>
+ </assertion>
+
+ <assertion id="s">
+ <text>If a producer method or field of scope @Dependent returns a
non-serializable object for injection into an initializer method parameter of a bean which
declares a passivating scope, an IllegalProductException is thrown by the
container</text>
+ </assertion>
+
+ <assertion id="t">
+ <text>If a producer method or field of scope @Dependent returns a
non-serializable object for injection into a parameter of a producer method which declares
a passivating scope, an IllegalProductException is thrown by the container</text>
+ </assertion>
+
+ <assertion id="u">
+ <text>The container must guarantee that JMS resource proxy objects are
serializable</text>
+ </assertion>
+
+ <assertion id="v">
<text>The method Bean.isSerializable() may be used to detect if a bean is
serializable</text>
</assertion>
</section>