Author: shane.bryzak(a)jboss.com
Date: 2009-06-01 05:15:59 -0400 (Mon, 01 Jun 2009)
New Revision: 2737
Modified:
tck/trunk/impl/src/main/resources/tck-audit.xml
Log:
section 4 assertions updated
Modified: tck/trunk/impl/src/main/resources/tck-audit.xml
===================================================================
--- tck/trunk/impl/src/main/resources/tck-audit.xml 2009-06-01 07:26:53 UTC (rev 2736)
+++ tck/trunk/impl/src/main/resources/tck-audit.xml 2009-06-01 09:15:59 UTC (rev 2737)
@@ -1683,106 +1683,105 @@
</assertion>
</section>
- <section id="4" title="Inheritance, specialization and
realization">
+ <section id="4" title="Inheritance and specialization">
</section>
- <section id="4.1" title="Inheritance of type-level
metadata">
-
+ <section id="4.1" title="Inheritance of type-level metadata">
<assertion id="aa">
- <text>For class X which is extended _directly_ by the bean class of a
_simple_ bean Y, if X is annotated with a _binding type_ Z then Y inherits the annotation
if and only if Z declares the |@Inherited| meta-annotation and Y does not declare an
annotation of type Z.</text>
+ <text>For class X which is extended _directly_ by the bean class of a
_managed_ bean Y, if X is annotated with a _binding type_ Z then Y inherits the annotation
if and only if Z declares the |@Inherited| meta-annotation and Y does not declare an
annotation of type Z.</text>
</assertion>
<assertion id="ab">
- <text>For class X which is extended _directly_ by the bean class of a
_simple_ bean Y, if X is annotated with a _stereotype_ Z then Y inherits the annotation if
and only if Z declares the |@Inherited| meta-annotation and Y does not declare an
annotation of type Z.</text>
+ <text>For class X which is extended _directly_ by the bean class of a
_managed_ bean Y, if X is annotated with a _stereotype_ Z then Y inherits the annotation
if and only if Z declares the |@Inherited| meta-annotation and Y does not declare an
annotation of type Z.</text>
</assertion>
<assertion id="ad">
- <text>For class X which is extended _directly_ by the bean class of a
_session_ bean Y, if X is annotated with a _binding type_ Z then Y inherits the annotation
if and only if Z declares the |@Inherited| meta-annotation and Y does not declare an
annotation of type Z.</text>
+ <text>For class X which is extended _directly_ by the bean class of a
_managed_ bean Y, if X is annotated with a _binding type_ Z then Y inherits the annotation
if and only if Z declares the |@Inherited| meta-annotation and Y does not declare an
annotation of type Z.</text>
</assertion>
<assertion id="ae">
- <text>For class X which is extended _directly_ by the bean class of a
_session_ bean Y, if X is annotated with a _stereotype_ Z then Y inherits the annotation
if and only if Z declares the |@Inherited| meta-annotation and Y does not declare an
annotation of type Z.</text>
+ <text>For class X which is extended _directly_ by the bean class of a
_managed_ bean Y, if X is annotated with a _stereotype_ Z then Y inherits the annotation
if and only if Z declares the |@Inherited| meta-annotation and Y does not declare an
annotation of type Z.</text>
</assertion>
<assertion id="ag">
- <text>For class X which is extended _indirectly_ by the bean class of a
_simple_ bean Y, if X is annotated with a _binding type_ Z then Y inherits the annotation
if and only if Z declares the |@Inherited| meta-annotation and neither Y nor any
intermediate class that is a subclass of X and a superclass of Y declares an annotation of
type Z.</text>
+ <text>For class X which is extended _indirectly_ by the bean class of a
_managed_ bean Y, if X is annotated with a _binding type_ Z then Y inherits the annotation
if and only if Z declares the |@Inherited| meta-annotation and neither Y nor any
intermediate class that is a subclass of X and a superclass of Y declares an annotation of
type Z.</text>
</assertion>
<assertion id="ah">
- <text>For class X which is extended _indirectly_ by the bean class of a
_simple_ bean Y, if X is annotated with a _stereotype_ Z then Y inherits the annotation if
and only if Z declares the |@Inherited| meta-annotation and neither Y nor any intermediate
class that is a subclass of X and a superclass of Y declares an annotation of type
Z.</text>
+ <text>For class X which is extended _indirectly_ by the bean class of a
_managed_ bean Y, if X is annotated with a _stereotype_ Z then Y inherits the annotation
if and only if Z declares the |@Inherited| meta-annotation and neither Y nor any
intermediate class that is a subclass of X and a superclass of Y declares an annotation of
type Z.</text>
</assertion>
<assertion id="aj">
- <text>For class X which is extended _indirectly_ by the bean class of a
_session_ bean Y, if X is annotated with a _binding type_ Z then Y inherits the annotation
if and only if Z declares the |@Inherited| meta-annotation and neither Y nor any
intermediate class that is a subclass of X and a superclass of Y declares an annotation of
type Z.</text>
+ <text>For class X which is extended _indirectly_ by the bean class of a
_managed_ bean Y, if X is annotated with a _binding type_ Z then Y inherits the annotation
if and only if Z declares the |@Inherited| meta-annotation and neither Y nor any
intermediate class that is a subclass of X and a superclass of Y declares an annotation of
type Z.</text>
</assertion>
<assertion id="ak">
- <text>For class X which is extended _indirectly_ by the bean class of a
_session_ bean Y, if X is annotated with a _stereotype_ Z then Y inherits the annotation
if and only if Z declares the |@Inherited| meta-annotation and neither Y nor any
intermediate class that is a subclass of X and a superclass of Y declares an annotation of
type Z.</text>
+ <text>For class X which is extended _indirectly_ by the bean class of a
_managed_ bean Y, if X is annotated with a _stereotype_ Z then Y inherits the annotation
if and only if Z declares the |@Inherited| meta-annotation and neither Y nor any
intermediate class that is a subclass of X and a superclass of Y declares an annotation of
type Z.</text>
</assertion>
<assertion id="ba">
- <text>For class X which is extended _directly_ by the bean class of a
_simple_ bean Y, if X is annotated with a _scope type_ Z then Y inherits the annotation if
and only if Z declares the |@Inherited| meta-annotation and Y does not declare a scope
type.</text>
+ <text>For class X which is extended _directly_ by the bean class of a
_managed_ bean Y, if X is annotated with a _scope type_ Z then Y inherits the annotation
if and only if Z declares the |@Inherited| meta-annotation and Y does not declare a scope
type.</text>
</assertion>
<assertion id="bb">
- <text>For class X which is extended _directly_ by the bean class of a
_session_ bean Y, if X is annotated with a _scope type_ Z then Y inherits the annotation
if and only if Z declares the |@Inherited| meta-annotation and Y does not declare a scope
type.</text>
+ <text>For class X which is extended _directly_ by the bean class of a
_managed_ bean Y, if X is annotated with a _scope type_ Z then Y inherits the annotation
if and only if Z declares the |@Inherited| meta-annotation and Y does not declare a scope
type.</text>
</assertion>
<assertion id="bc">
- <text>For class X which is extended _indirectly_ by the bean class of a
_simple_ bean Y, if X is annotated with a _scope type_ Z then Y inherits the annotation if
and only if Z declares the |@Inherited| meta-annotation and neither Y nor any intermediate
class that is a subclass of X and a superclass of Y declares a scope type.</text>
+ <text>For class X which is extended _indirectly_ by the bean class of a
_managed_ bean Y, if X is annotated with a _scope type_ Z then Y inherits the annotation
if and only if Z declares the |@Inherited| meta-annotation and neither Y nor any
intermediate class that is a subclass of X and a superclass of Y declares a scope
type.</text>
</assertion>
<assertion id="bd">
- <text>For class X which is extended _indirectly_ by the bean class of a
_session_ bean Y, if X is annotated with a _scope type_ Z then Y inherits the annotation
if and only if Z declares the |@Inherited| meta-annotation and neither Y nor any
intermediate class that is a subclass of X and a superclass of Y declares a scope
type.</text>
+ <text>For class X which is extended _indirectly_ by the bean class of a
_managed_ bean Y, if X is annotated with a _scope type_ Z then Y inherits the annotation
if and only if Z declares the |@Inherited| meta-annotation and neither Y nor any
intermediate class that is a subclass of X and a superclass of Y declares a scope
type.</text>
</assertion>
<assertion id="ca">
- <text>For class X which is extended _directly_ by the bean class of a
_simple_ bean Y, if X is annotated with a _deployment type_ Z then Y inherits the
annotation if and only if Z declares the |@Inherited| meta-annotation and Y does not
declare a deployment type.</text>
+ <text>For class X which is extended _directly_ by the bean class of a
_managed_ bean Y, if X is annotated with a _deployment type_ Z then Y inherits the
annotation if and only if Z declares the |@Inherited| meta-annotation and Y does not
declare a deployment type.</text>
</assertion>
<assertion id="cb">
- <text>For class X which is extended _directly_ by the bean class of a
_session_ bean Y, if X is annotated with a _deployment type_ Z then Y inherits the
annotation if and only if Z declares the |@Inherited| meta-annotation and Y does not
declare a deployment type.</text>
+ <text>For class X which is extended _directly_ by the bean class of a
_managed_ bean Y, if X is annotated with a _deployment type_ Z then Y inherits the
annotation if and only if Z declares the |@Inherited| meta-annotation and Y does not
declare a deployment type.</text>
</assertion>
<assertion id="cc">
- <text>For class X which is extended _indirectly_ by the bean class of a
_simple_ bean Y, if X is annotated with a _deployment type_ Z then Y inherits the
annotation if and only if Z declares the |@Inherited| meta-annotation and neither Y nor
any intermediate class that is a subclass of X and a superclass of Y declares a deployment
type.</text>
+ <text>For class X which is extended _indirectly_ by the bean class of a
_managed_ bean Y, if X is annotated with a _deployment type_ Z then Y inherits the
annotation if and only if Z declares the |@Inherited| meta-annotation and neither Y nor
any intermediate class that is a subclass of X and a superclass of Y declares a deployment
type.</text>
</assertion>
<assertion id="cd">
- <text>For class X which is extended _indirectly_ by the bean class of a
_session_ bean Y, if X is annotated with a _deployment type_ Z then Y inherits the
annotation if and only if Z declares the |@Inherited| meta-annotation and neither Y nor
any intermediate class that is a subclass of X and a superclass of Y declares a deployment
type.</text>
+ <text>For class X which is extended _indirectly_ by the bean class of a
_managed_ bean Y, if X is annotated with a _deployment type_ Z then Y inherits the
annotation if and only if Z declares the |@Inherited| meta-annotation and neither Y nor
any intermediate class that is a subclass of X and a superclass of Y declares a deployment
type.</text>
</assertion>
<assertion id="daa">
- <text>For class X which is extended _directly_ by the bean class of a
_simple_ bean Y, the _scope types_ explicitly declared by and inherited from the class X
take precedence over default _scopes_ declared by stereotypes.</text>
+ <text>For class X which is extended _directly_ by the bean class of a
_managed_ bean Y, the _scope types_ explicitly declared by and inherited from the class X
take precedence over default _scopes_ declared by stereotypes.</text>
</assertion>
<assertion id="dab">
- <text>For class X which is extended _directly_ by the bean class of a
_simple_ bean Y, the _deployment types_ explicitly declared by and inherited from the
class X take precedence over deployment _deployment types_ declared by
stereotypes.</text>
+ <text>For class X which is extended _directly_ by the bean class of a
_managed_ bean Y, the _deployment types_ explicitly declared by and inherited from the
class X take precedence over deployment _deployment types_ declared by
stereotypes.</text>
</assertion>
<assertion id="dba">
- <text>For class X which is extended _directly_ by the bean class of a
_session_ bean Y, the _scope types_ explicitly declared by and inherited from the class X
take precedence over default _scopes_ declared by stereotypes.</text>
+ <text>For class X which is extended _directly_ by the bean class of a
_managed_ bean Y, the _scope types_ explicitly declared by and inherited from the class X
take precedence over default _scopes_ declared by stereotypes.</text>
</assertion>
<assertion id="dbb">
- <text>For class X which is extended _directly_ by the bean class of a
_session_ bean Y, the _deployment types_ explicitly declared by and inherited from the
class X take precedence over default _deployment types_ declared by
stereotypes.</text>
+ <text>For class X which is extended _directly_ by the bean class of a
_managed_ bean Y, the _deployment types_ explicitly declared by and inherited from the
class X take precedence over default _deployment types_ declared by
stereotypes.</text>
</assertion>
<assertion id="dca">
- <text>For class X which is extended _indirectly_ by the bean class of a
_simple_ bean Y, the _scope types_ explicitly declared by and inherited from the class X
take precedence over default _scopes_ declared by stereotypes.</text>
+ <text>For class X which is extended _indirectly_ by the bean class of a
_managed_ bean Y, the _scope types_ explicitly declared by and inherited from the class X
take precedence over default _scopes_ declared by stereotypes.</text>
</assertion>
<assertion id="dcb">
- <text>For class X which is extended _indirectly_ by the bean class of a
_simple_ bean Y, the _deployment types_ explicitly declared by and inherited from the
class X take precedence over default _deployment_ types declared by
stereotypes.</text>
+ <text>For class X which is extended _indirectly_ by the bean class of a
_managed_ bean Y, the _deployment types_ explicitly declared by and inherited from the
class X take precedence over default _deployment_ types declared by
stereotypes.</text>
</assertion>
<assertion id="dda">
- <text>For class X which is extended _indirectly_ by the bean class of a
_session_ bean Y, the _scope types_ explicitly declared by and inherited from the class X
take precedence over default _scopes_ declared by stereotypes.</text>
+ <text>For class X which is extended _indirectly_ by the bean class of a
_managed_ bean Y, the _scope types_ explicitly declared by and inherited from the class X
take precedence over default _scopes_ declared by stereotypes.</text>
</assertion>
<assertion id="ddb">
- <text>For class X which is extended _indirectly_ by the bean class of a
_session_ bean Y, the _deployment types_ explicitly declared by and inherited from the
class X take precedence over _deployment types_ declared by stereotypes.</text>
+ <text>For class X which is extended _indirectly_ by the bean class of a
_managed_ bean Y, the _deployment types_ explicitly declared by and inherited from the
class X take precedence over _deployment types_ declared by stereotypes.</text>
</assertion>
<assertion id="i" testable="false">
@@ -1806,7 +1805,7 @@
</assertion>
<assertion id="m" testable="false">
- <text>the |@Named| annotation is not declared |@Inherited| and bean names are
not inherited unless specialization is used</text>
+ <text>The |@Named| annotation is not declared |@Inherited| and bean EL names
are not inherited unless specialization is used</text>
<note>sigtest</note>
</assertion>
@@ -1815,15 +1814,15 @@
<section id="4.2" title="Inheritance of member-level
metadata">
<assertion id="aa">
- <text>For class X which is extended _directly_ by the bean class of a
_simple_ bean Y, if X declares an injected field x then Y inherits x.</text>
+ <text>For class X which is extended _directly_ by the bean class of a
_managed_ bean Y, if X declares an injected field x then Y inherits x.</text>
</assertion>
<assertion id="ab">
- <text>For class X which is extended _directly_ by the bean class of a
_session_ bean Y, if X declares an injected field x then Y inherits x.</text>
+ <text>For class X which is extended _directly_ by the bean class of a
_managed_ bean Y, if X declares an injected field x then Y inherits x.</text>
</assertion>
<assertion id="ac">
- <text>For class X which is extended _indirectly_ by the bean class of a
_simple_ bean Y, if X declares an injected field x then Y inherits x.</text>
+ <text>For class X which is extended _indirectly_ by the bean class of a
_managed_ bean Y, if X declares an injected field x then Y inherits x.</text>
</assertion>
<assertion id="ad">
@@ -1831,15 +1830,15 @@
</assertion>
<assertion id="baa">
- <text>For class X which is extended _directly_ by the bean class of a
_simple_ bean Y, if X declares a _|@PostConstruct|_ method x() then Y inherits x() if and
only if Y does not override the method x()</text>
+ <text>For class X which is extended _directly_ by the bean class of a
_managed_ bean Y, if X declares a _|@PostConstruct|_ method x() then Y inherits x() if and
only if Y does not override the method x()</text>
</assertion>
<assertion id="bab">
- <text>For class X which is extended _directly_ by the bean class of a
_session_ bean Y, if X declares a _|@PostConstruct|_ method x() then Y inherits x() if and
only if Y does not override the method x()</text>
+ <text>For class X which is extended _directly_ by the bean class of a
_managed_ bean Y, if X declares a _|@PostConstruct|_ method x() then Y inherits x() if and
only if Y does not override the method x()</text>
</assertion>
<assertion id="bac">
- <text>For class X which is extended _indirectly_ by the bean class of a
_simple_ bean Y, if X declares a _|@PostConstruct|_ method x() then Y inherits x() if and
only if neither Y nor any intermediate class that is a subclass of X and a superclass of Y
overrides the method x()</text>
+ <text>For class X which is extended _indirectly_ by the bean class of a
_managed_ bean Y, if X declares a _|@PostConstruct|_ method x() then Y inherits x() if and
only if neither Y nor any intermediate class that is a subclass of X and a superclass of Y
overrides the method x()</text>
</assertion>
<assertion id="bad">
@@ -1847,7 +1846,7 @@
</assertion>
<assertion id="bba">
- <text>For class X which is extended _directly_ by the bean class of a
_simple_ bean Y, if X declares a _|@PreDestroy|_ method x() then Y inherits x() if and
only if Y does not override the method x()</text>
+ <text>For class X which is extended _directly_ by the bean class of a
_managed_ bean Y, if X declares a _|@PreDestroy|_ method x() then Y inherits x() if and
only if Y does not override the method x()</text>
</assertion>
<assertion id="bbb">
@@ -1855,7 +1854,7 @@
</assertion>
<assertion id="bbc">
- <text>For class X which is extended _indirectly_ by the bean class of a
_simple_ bean Y, if X declares a _|@PreDestroy|_ method x() then Y inherits x() if and
only if neither Y nor any intermediate class that is a subclass of X and a superclass of Y
overrides the method x()</text>
+ <text>For class X which is extended _indirectly_ by the bean class of a
_managed_ bean Y, if X declares a _|@PreDestroy|_ method x() then Y inherits x() if and
only if neither Y nor any intermediate class that is a subclass of X and a superclass of Y
overrides the method x()</text>
</assertion>
<assertion id="bbd">
@@ -1863,67 +1862,67 @@
</assertion>
<assertion id="da">
- <text>For class X which is extended _directly_ by the bean class of a
_simple_ bean Y, if X declares a _non-static producer method_ x() then Y does not inherit
this method unless Y is explicitly declared to specialize or realize X</text>
+ <text>For class X which is extended _directly_ by the bean class of a
_managed_ bean Y, if X declares a _non-static producer method_ x() then Y does not inherit
this method unless Y is explicitly declared to specialize X</text>
</assertion>
<assertion id="db">
- <text>For class X which is extended _directly_ by the bean class of a
_simple_ bean Y, if X declares a _non-static disposal method_ x() then Y does not inherit
this method unless Y is explicitly declared to specialize or realize X</text>
+ <text>For class X which is extended _directly_ by the bean class of a
_managed_ bean Y, if X declares a _non-static disposal method_ x() then Y does not inherit
this method unless Y is explicitly declared to specialize X</text>
</assertion>
<assertion id="dc">
- <text>For class X which is extended _directly_ by the bean class of a
_simple_ bean Y, if X declares a _non-static observer method_ x() then Y does not inherit
this method unless Y is explicitly declared to specialize or realize X</text>
+ <text>For class X which is extended _directly_ by the bean class of a
_managed_ bean Y, if X declares a _non-static observer method_ x() then Y does not inherit
this method unless Y is explicitly declared to specialize X</text>
</assertion>
<assertion id="dd">
- <text>For class X which is extended _directly_ by the bean class of a
_session_ bean Y, if X declares a _non-static producer method_ x() then Y does not inherit
this method unless Y is explicitly declared to specialize or realize X</text>
+ <text>For class X which is extended _directly_ by the bean class of a
_session_ bean Y, if X declares a _non-static producer method_ x() then Y does not inherit
this method unless Y is explicitly declared to specialize X</text>
</assertion>
<assertion id="de">
- <text>For class X which is extended _directly_ by the bean class of a
_session_ bean Y, if X declares a _non-static disposal method_ x() then Y does not inherit
this method unless Y is explicitly declared to specialize or realize X</text>
+ <text>For class X which is extended _directly_ by the bean class of a
_session_ bean Y, if X declares a _non-static disposal method_ x() then Y does not inherit
this method unless Y is explicitly declared to specialize X</text>
</assertion>
<assertion id="df">
- <text>For class X which is extended _directly_ by the bean class of a
_session_ bean Y, if X declares a _non-static observer method_ x() then Y does not inherit
this method unless Y is explicitly declared to specialize or realize X</text>
+ <text>For class X which is extended _directly_ by the bean class of a
_session_ bean Y, if X declares a _non-static observer method_ x() then Y does not inherit
this method unless Y is explicitly declared to specialize X</text>
</assertion>
<assertion id="dg">
- <text>For class X which is extended _indirectly_ by the bean class of a
_simple_ bean Y, if X declares a _non-static producer method_ x() then Y does not inherit
this method unless Y is explicitly declared to specialize or realize X</text>
+ <text>For class X which is extended _indirectly_ by the bean class of a
_managed_ bean Y, if X declares a _non-static producer method_ x() then Y does not inherit
this method unless Y is explicitly declared to specialize X</text>
</assertion>
<assertion id="dh">
- <text>For class X which is extended _indirectly_ by the bean class of a
_simple_ bean Y, if X declares a _non-static disposal method_ x() then Y does not inherit
this method unless Y is explicitly declared to specialize or realize X</text>
+ <text>For class X which is extended _indirectly_ by the bean class of a
_managed_ bean Y, if X declares a _non-static disposal method_ x() then Y does not inherit
this method unless Y is explicitly declared to specialize X</text>
</assertion>
<assertion id="di">
- <text>For class X which is extended _indirectly_ by the bean class of a
_simple_ bean Y, if X declares a _non-static observer method_ x() then Y does not inherit
this method unless Y is explicitly declared to specialize or realize X</text>
+ <text>For class X which is extended _indirectly_ by the bean class of a
_managed_ bean Y, if X declares a _non-static observer method_ x() then Y does not inherit
this method unless Y is explicitly declared to specialize X</text>
</assertion>
<assertion id="dj">
- <text>For class X which is extended _indirectly_ by the bean class of a
_session_ bean Y, if X declares a _non-static producer method_ x() then Y does not inherit
this method unless Y is explicitly declared to specialize or realize X</text>
+ <text>For class X which is extended _indirectly_ by the bean class of a
_session_ bean Y, if X declares a _non-static producer method_ x() then Y does not inherit
this method unless Y is explicitly declared to specialize X</text>
</assertion>
<assertion id="dk">
- <text>For class X which is extended _indirectly_ by the bean class of a
_session_ bean Y, if X declares a _non-static disposal method_ x() then Y does not inherit
this method unless Y is explicitly declared to specialize or realize X</text>
+ <text>For class X which is extended _indirectly_ by the bean class of a
_session_ bean Y, if X declares a _non-static disposal method_ x() then Y does not inherit
this method unless Y is explicitly declared to specialize X</text>
</assertion>
<assertion id="dl">
- <text>For class X which is extended _indirectly_ by the bean class of a
_session_ bean Y, if X declares a _non-static observer method_ x() then Y does not inherit
this method unless Y is explicitly declared to specialize or realize X</text>
+ <text>For class X which is extended _indirectly_ by the bean class of a
_session_ bean Y, if X declares a _non-static observer method_ x() then Y does not inherit
this method unless Y is explicitly declared to specialize X</text>
</assertion>
<assertion id="ea">
- <text>For class X which is extended _directly_ by the bean class of a
_simple_ bean Y, if X declares a _non-static producer field_ x then Y does not inherit
this field unless Y is explicitly declared to specialize or realize X.</text>
+ <text>For class X which is extended _directly_ by the bean class of a
_managed_ bean Y, if X declares a _non-static producer field_ x then Y does not inherit
this field unless Y is explicitly declared to specialize X.</text>
</assertion>
<assertion id="eb">
- <text>For class X which is extended _directly_ by the bean class of a
_session_ bean Y, if X declares a _non-static producer field_ x then Y does not inherit
this field unless Y is explicitly declared to specialize or realize X.</text>
+ <text>For class X which is extended _directly_ by the bean class of a
_session_ bean Y, if X declares a _non-static producer field_ x then Y does not inherit
this field unless Y is explicitly declared to specialize X.</text>
</assertion>
<assertion id="ec">
- <text>For class X which is extended _indirectly_ by the bean class of a
_simple_ bean Y, if X declares a _non-static producer field_ x then Y does not inherit
this field unless Y is explicitly declared to specialize or realize X.</text>
+ <text>For class X which is extended _indirectly_ by the bean class of a
_managed_ bean Y, if X declares a _non-static producer field_ x then Y does not inherit
this field unless Y is explicitly declared to specialize X.</text>
</assertion>
<assertion id="ed">
- <text>For class X which is extended _indirectly_ by the bean class of a
_session_ bean Y, if X declares a _non-static producer field_ x then Y does not inherit
this field unless Y is explicitly declared to specialize or realize X.</text>
+ <text>For class X which is extended _indirectly_ by the bean class of a
_session_ bean Y, if X declares a _non-static producer field_ x then Y does not inherit
this field unless Y is explicitly declared to specialize X.</text>
</assertion>
</section>
@@ -1938,114 +1937,50 @@
<text>If the bean with the lower priority deployment type declares a binding
that is not declared by the bean with the higher priority deployment type, then the bean
with the higher priority deployment type will not be eligible for injection to an
injection point with that binding.</text>
</assertion>
- <assertion id="c">
- <text>The only way one bean can completely override a lower-priority bean at
all injection points is if it implements all the bean types and declares all the bindings
of the lower-priority bean. However, if the lower-priority bean declares a producer
method, then even this is not enough to ensure that the lower-priority bean is never
called</text>
+ <assertion id="ca">
+ <text>The only way one bean can completely override a lower-priority bean at
all injection points is if it implements all the bean types and declares all the bindings
of the lower-priority bean. However, if the lower-priority bean declares a producer method
or observer method, then even this is not enough to ensure that the lower-priority bean is
never called.</text>
</assertion>
</section>
- <section id="4.3.1" title="Using specialization">
-
- <assertion id="a">
- <text>A bean declared using annotations may declare that it specializes a
lower-priority bean using the |@Specializes| annotation</text>
+ <section id="4.3.1" title="Direct and indirect
specialization">
+ <assertion id="i">
+ <text>A bean X is said to specialize another bean Y if X directly specializes
Y.</text>
</assertion>
- <assertion id="c">
- <text>The bindings of a bean X that specializes a lower-priority bean Y
include all bindings of Y, together with all bindings declared explicitly by
X.</text>
+ <assertion id="i">
+ <text>A bean X is said to specialize another bean Y if a bean Z exists, such
that X directly specializes Z and Z specializes Y.</text>
</assertion>
- <assertion id="d">
- <text>If a bean X specializes a lower-priority bean Y with a name, the name
of X is the same as the name of Y.</text>
+ <assertion id="j">
+ <text>A bean X that specializes bean Y will include all bindings of Y,
together with all bindings declared explicitly by X.</text>
</assertion>
- <assertion id="e">
- <text>If a bean X specializes a lower-priority bean Y with a name, and X
declares a name explicitly, a |DefinitionException| is thrown by the container at
deployment time</text>
+ <assertion id="k">
+ <text>A bean X that specializes bean Y will have the same name as Y if Y has
a name.</text>
</assertion>
- <assertion id="f">
- <text>When an enabled bean specializes a lower-priority bean, we can be
certain that the lower-priority bean is never instantiated or called by the
container.</text>
+ <assertion id="l">
+ <text>If X declares a name explicitly, using @Named, the container
automatically detects the problem and treats it as a definition error, as defined in
Section 12.4, "Problems detected automatically by the container".</text>
</assertion>
- <assertion id="g">
- <text>Even if the lower-priority bean defines a producer method, the method
will be called upon an instance of the specializing bean</text>
- </assertion>
-
- <assertion id="h" testable="false">
- <text>Specialization applies only to simple beans, as defined in Section
3.2.7, "Specializing a simple bean", session beans, as defined in Section 3.3.7,
"Specializing a session bean" and producer methods, as defined in Section 3.4.5,
"Specializing a producer method".</text>
- <note>This is a statement of intent</note>
- </assertion>
</section>
- <section id="4.3.2" title="Direct and indirect
specialization">
- <assertion id="a" testable="false">
- <text>The |(a)javax.inject.Specializes| annotation ~or
|<Specializes>| XML element~ is used to indicate that one bean directly
specializes another bean</text>
- <note>A statement of intent</note>
+ <section id="4.3.2" title="Most specialized enabled bean for a
bean">
+ <assertion id="a">
+ <text>Non-static producer methods, producer fields, disposal methods and
observer methods of a bean are invoked upon an instance of the most specialized enabled
bean that specializes the bean, as defined by Section 5.4.6, "Invocation of producer
or disposal methods", Section 5.4.7, "Access to producer field values" and
Section 5.4.8, "Invocation of observer methods".</text>
</assertion>
- <assertion id="b" testable="false">
- <text>A bean X is said to specialize another bean Y if X directly specializes
Y, or a bean Z exists, such that X directly specializes Z and Z specializes
Y</text>
- <note>A definition</note>
- </assertion>
-
- <assertion id="c">
- <text>Any non-static producer methods (see Section 3.4, "Producer
methods") of any bean are invoked upon an instance of the most specialized enabled
bean that specializes the bean, as defined by Section 6.7, "Lifecycle of producer
methods".</text>
- </assertion>
-
- <assertion id="d">
- <text>Any non-static producer fields (see Section 3.5, "Producer
fields") of any bean are invoked upon an instance of the most specialized enabled
bean that specializes the bean, as defined by Section 6.8, "Lifecycle of producer
fields".</text>
- </assertion>
-
- <assertion id="e">
- <text>Any non-static disposal methods (see Section 3.4.6, "Disposal
methods") of any bean are invoked upon an instance of the most specialized enabled
bean that specializes the bean.</text>
- </assertion>
-
- <assertion id="f">
- <text>Any non-static observer methods (see Section 7.5, "Observer
methods") of any bean are invoked upon an instance of the most specialized enabled
bean that specializes the bean, as defined by Section 7.4, "Observer
notification".</text>
- </assertion>
</section>
-
+
<section id="4.3.3" title="Inconsistent specialization">
- <assertion id="a">
- <text>If, in a particular deployment, either some enabled bean X specializes
another enabled bean Y and X does not have a higher precedence than Y, or more than one
enabled bean directly specializes the same bean we say that inconsistent specialization
exists, and an |InconsistentSpecializationException| is thrown by the container at
deployment time</text>
+ <assertion id="aa">
+ <text>If, in a particular deployment, either some enabled bean X specializes
another enabled bean Y and the deployment type of X does not have a higher precedence than
the deployment type of Y, the container automatically detects inconsistent specialization
and treats it as a deployment problem, as defined in Section 12.4, "Problems detected
automatically by the container".</text>
</assertion>
- </section>
-
- <section id="4.4" title="Realization">
- <assertion id="a" testable="false">
- <text>Any bean that extends a generic class may directly extend the generic
class, in the case of a bean declared using annotations and then explicitly declare that
it realizes the generic class</text>
- <note>A statement of intent</note>
- </assertion>
-
- </section>
-
- <section id="4.4.1" title="Using realization">
- <assertion id="a" testable="false">
- <text>A bean declared using annotations may declare that it realizes a
generic class by annotating the bean class with the |(a)javax.inject.Realizes|
annotation</text>
- <note>A statement of intent</note>
- </assertion>
- <assertion id="ca">
- <text>If a generic class Y declares a non-static _producer method_ with a
certain combination of scope, stereotypes, bindings and interceptor bindings, then every
bean X that realizes Y also has a _producer method_ with the same scope, stereotypes and
interceptor bindings. The bindings for this inherited _producer method_ consist of all
bindings declared by the _producer method_ of Y, excluding all bindings of Y, together
with the bindings declared explicitly by X. The deployment type of the inherited _producer
method_ is the deployment type of X</text>
- </assertion>
-
- <assertion id="cb">
- <text>If a generic class Y declares a non-static _producer field_ with a
certain combination of scope, stereotypes, bindings and interceptor bindings, then every
bean X that realizes Y also has a _producer field_ with the same scope, stereotypes and
interceptor bindings. The bindings for this inherited _producer field_ consist of all
bindings declared by the _producer field_ of Y, excluding all bindings of Y, together with
the bindings declared explicitly by X. The deployment type of the inherited _producer
field_ is the deployment type of X</text>
- </assertion>
-
- <assertion id="d">
- <text>If a generic class Y declares a non-static disposal method with a
disposed parameter with a certain combination of bindings, then every bean X that realizes
Y also has a disposal method. The bindings of the disposed parameter of this
-inherited disposal method consist of all bindings declared by the disposed parameter of
the disposal method of Y, excluding all bindings of Y, together with the bindings declared
explicitly by X.</text>
- </assertion>
-
- <assertion id="e">
- <text>If a generic class Y declares a non-static observer method with an
event parameter with a certain combination of event bindings, then every bean X that
realizes Y also has an observer method. The event bindings of the event parameter of
-this inherited observer method consist of all event bindings declared by the event
parameter of the observer method of Y.</text>
- </assertion>
-
- <assertion id="f" testable="false">
- <text>Realization applies only to simple beans and session
beans</text>
- <note>A statement of intent</note>
- </assertion>
+ <assertion id="ba">
+ <text>If, in a particular deployment, more than one enabled bean directly
specializes the same bean, the container automatically detects inconsistent specialization
and treats it as a deployment problem, as defined in Section 12.4, "Problems detected
automatically by the container".</text>
+ </assertion>
</section>
<section id="5" title="Lookup, dependency injection and EL
resolution">