[webbeans-commits] Webbeans SVN: r1754 - in tck/trunk/impl/src/main: java/org/jboss/jsr299/tck/tests/definition/deployment and 9 other directories.

webbeans-commits at lists.jboss.org webbeans-commits at lists.jboss.org
Tue Mar 3 22:36:14 EST 2009


Author: shane.bryzak at jboss.com
Date: 2009-03-03 22:36:14 -0500 (Tue, 03 Mar 2009)
New Revision: 1754

Modified:
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/definition/binding/BindingDefinitionTest.java
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/definition/deployment/DeploymentTypeDefinitionTest.java
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/definition/scope/ScopeDefinitionTest.java
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/definition/stereotype/StereotypeDefinitionTest.java
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/interceptor/InterceptorDefinitionTest.java
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/producer/field/definition/ProducerFieldDefinitionTest.java
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/producer/method/definition/ProducerMethodDefinitionTest.java
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/simple/lifecycle/SimpleBeanLifecycleTest.java
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/inheritance/realization/RealizationTest.java
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/lookup/injection/InjectionTest.java
   tck/trunk/impl/src/main/resources/tck-audit.xml
Log:
split out chapter 4 assertions, mapped tests - now i feel bad that i made our coverage drop by a couple of percent :(

Modified: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/definition/binding/BindingDefinitionTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/definition/binding/BindingDefinitionTest.java	2009-03-03 20:29:13 UTC (rev 1753)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/definition/binding/BindingDefinitionTest.java	2009-03-04 03:36:14 UTC (rev 1754)
@@ -190,7 +190,7 @@
    }
 
    @Test
-   @SpecAssertion(section = "4.1", id = "e")
+   @SpecAssertion(section = "4.1", id = "aa")
    public void testBindingDeclaredInheritedIsInherited() throws Exception
    {
       Set<? extends Annotation> bindings = getCurrentManager().resolveByType(BorderCollie.class, new HairyBinding(false)).iterator().next().getBindings();
@@ -199,7 +199,7 @@
    }
 
    @Test
-   @SpecAssertion(section = "4.1", id = "e")
+   @SpecAssertion(section = "4.1", id = "aa")
    public void testBindingNotDeclaredInheritedIsNotInherited()
    {
       Set<? extends Annotation> bindings = getCurrentManager().resolveByType(ShetlandPony.class).iterator().next().getBindings();
@@ -208,7 +208,7 @@
    }
 
    @Test
-   @SpecAssertion(section = "4.1", id = "e")
+   @SpecAssertion(section = "4.1", id = "aa")
    public void testBindingDeclaredInheritedIsBlockedByIntermediateClass()
    {
       Set<? extends Annotation> bindings = getCurrentManager().resolveByType(ClippedBorderCollie.class, new HairyBinding(true)).iterator().next().getBindings();

Modified: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/definition/deployment/DeploymentTypeDefinitionTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/definition/deployment/DeploymentTypeDefinitionTest.java	2009-03-03 20:29:13 UTC (rev 1753)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/definition/deployment/DeploymentTypeDefinitionTest.java	2009-03-04 03:36:14 UTC (rev 1754)
@@ -100,7 +100,7 @@
    @Test(groups = { "deploymentType" })
    @SpecAssertions( { @SpecAssertion(section = "2.5.5", id = "c"), 
       @SpecAssertion(section = "2.7.2", id = "da"), 
-      @SpecAssertion(section = "4.1", id = "d") })
+      @SpecAssertion(section = "4.1", id = "da") })
    public void testWebBeanDeploymentTypeOverridesStereotype()
    {
       assert getCurrentManager().resolveByType(Reindeer.class).size() == 1;
@@ -109,7 +109,7 @@
    }
 
    @Test(groups = { "deploymentType" })
-   @SpecAssertion(section = "4.1", id = "c")
+   @SpecAssertion(section = "4.1", id = "ca")
    public void testDeploymentTypeDeclaredInheritedIsInherited() throws Exception
    {
       assert getCurrentManager().resolveByType(BorderCollie.class).size() == 1;
@@ -117,7 +117,7 @@
    }
 
    @Test(groups = { "deploymentType" })
-   @SpecAssertion(section = "4.1", id = "c")
+   @SpecAssertion(section = "4.1", id = "ca")
    public void testDeploymentTypeNotDeclaredInheritedIsNotInherited()
    {
       assert getCurrentManager().resolveByType(ShetlandPony.class).size() == 1;
@@ -125,7 +125,7 @@
    }
 
    @Test(groups = { "deploymentType" })
-   @SpecAssertion(section = "4.1", id = "c")
+   @SpecAssertion(section = "4.1", id = "ca")
    public void testDeploymentTypeDeclaredInheritedIsBlockedByIntermediateDeploymentTypeNotMarkedInherited()
    {
       assert getCurrentManager().resolveByType(GoldenRetriever.class).size() == 1;
@@ -133,7 +133,7 @@
    }
 
    @Test(groups = { "deploymentType" })
-   @SpecAssertion(section = "4.1", id = "c")
+   @SpecAssertion(section = "4.1", id = "ca")
    public void testDeploymentTypeDeclaredInheritedIsBlockedByIntermediateDeploymentTypeMarkedInherited()
    {
       assert getCurrentManager().resolveByType(GoldenLabrador.class).size() == 1;

Modified: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/definition/scope/ScopeDefinitionTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/definition/scope/ScopeDefinitionTest.java	2009-03-03 20:29:13 UTC (rev 1753)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/definition/scope/ScopeDefinitionTest.java	2009-03-04 03:36:14 UTC (rev 1754)
@@ -96,7 +96,7 @@
    @Test
    @SpecAssertions({
      @SpecAssertion(section = "2.7.2", id = "db"),
-     @SpecAssertion(section = "4.1", id = "h")
+     @SpecAssertion(section = "4.1", id = "ab")
    })
    public void testWebBeanScopeTypeOverridesStereotype()
    {
@@ -105,27 +105,27 @@
       assert bean.getScopeType().equals(RequestScoped.class);
    }
    
-   @Test @SpecAssertion(section="4.1", id = "b")
+   @Test @SpecAssertion(section="4.1", id = "ba")
    public void testScopeTypeDeclaredInheritedIsInherited() throws Exception
    {
       assert getCurrentManager().resolveByType(BorderCollie.class).size() == 1; 
       assert getCurrentManager().resolveByType(BorderCollie.class).iterator().next().getScopeType().equals(RequestScoped.class);
    }
    
-   @Test @SpecAssertion(section="4.1", id = "b")
+   @Test @SpecAssertion(section="4.1", id = "ba")
    public void testScopeTypeNotDeclaredInheritedIsNotInherited()
    {
       assert getCurrentManager().resolveByType(ShetlandPony.class).size() == 1; 
       assert getCurrentManager().resolveByType(ShetlandPony.class).iterator().next().getScopeType().equals(Dependent.class);
    }
    
-   @Test @SpecAssertion(section="4.1", id = "b")
+   @Test @SpecAssertion(section="4.1", id = "ba")
    public void testScopeTypeDeclaredInheritedIsBlockedByIntermediateScopeTypeMarkedInherited()
    {
       assert getCurrentManager().resolveByType(GoldenRetriever.class).size() == 1; 
    }
    
-   @Test @SpecAssertion(section="4.1", id = "b")
+   @Test @SpecAssertion(section="4.1", id = "ba")
    public void testScopeTypeDeclaredInheritedIsBlockedByIntermediateScopeTypeNotMarkedInherited()
    {
       assert getCurrentManager().resolveByType(GoldenLabrador.class).size() == 1; 

Modified: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/definition/stereotype/StereotypeDefinitionTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/definition/stereotype/StereotypeDefinitionTest.java	2009-03-03 20:29:13 UTC (rev 1753)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/definition/stereotype/StereotypeDefinitionTest.java	2009-03-04 03:36:14 UTC (rev 1754)
@@ -149,7 +149,7 @@
    }
 
    @Test
-   @SpecAssertion(section = "4.1", id = "a")
+   @SpecAssertion(section = "4.1", id = "ab")
    public void testStereotypeDeclaredInheritedIsInherited() throws Exception
    {
       assert getCurrentManager().resolveByType(BorderCollie.class).size() == 1; 
@@ -157,7 +157,7 @@
    }
 
    @Test
-   @SpecAssertion(section = "4.1", id = "a")
+   @SpecAssertion(section = "4.1", id = "ab")
    public void testStereotypeNotDeclaredInheritedIsNotInherited()
    {
       assert getCurrentManager().resolveByType(ShetlandPony.class).size() == 1; 

Modified: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/interceptor/InterceptorDefinitionTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/interceptor/InterceptorDefinitionTest.java	2009-03-03 20:29:13 UTC (rev 1753)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/interceptor/InterceptorDefinitionTest.java	2009-03-04 03:36:14 UTC (rev 1754)
@@ -11,13 +11,13 @@
 public class InterceptorDefinitionTest
 {
    
-   @Test(groups="stub") @SpecAssertion(section="4.2", id = "c")
+   @Test(groups="stub") @SpecAssertion(section="4.2", id = "ca")
    public void testNonStaticWithInterceptorBindingInherited()
    {
       assert false;
    }
    
-   @Test(groups="stub") @SpecAssertion(section="4.2", id = "c")
+   @Test(groups="stub") @SpecAssertion(section="4.2", id = "ca")
    public void testNonStaticWithInterceptorBindingBlockedByIntermediateClass()
    {
       assert false;

Modified: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/producer/field/definition/ProducerFieldDefinitionTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/producer/field/definition/ProducerFieldDefinitionTest.java	2009-03-03 20:29:13 UTC (rev 1753)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/producer/field/definition/ProducerFieldDefinitionTest.java	2009-03-04 03:36:14 UTC (rev 1754)
@@ -214,7 +214,7 @@
    }
 
    @Test(groups = "producerField")
-   @SpecAssertion(section = "4.2", id = "k")
+   @SpecAssertion(section = "4.2", id = "ea")
    public void testNonStaticProducerFieldNotInherited()
    {
       assert !(getCurrentManager().getInstanceByType(Egg.class, FOO_LITERAL).getMother() instanceof InfertileChicken);

Modified: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/producer/method/definition/ProducerMethodDefinitionTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/producer/method/definition/ProducerMethodDefinitionTest.java	2009-03-03 20:29:13 UTC (rev 1753)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/producer/method/definition/ProducerMethodDefinitionTest.java	2009-03-04 03:36:14 UTC (rev 1754)
@@ -192,7 +192,7 @@
    }
 
    @Test(groups="ri-broken")
-   @SpecAssertion(section = "4.2", id = "d")
+   @SpecAssertion(section = "4.2", id = "da")
    public void testNonStaticProducerMethodNotInherited()
    {
       assert getCurrentManager().resolveByType(Egg.class, new AnnotationLiteral<Yummy>() {}).size() == 1;

Modified: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/simple/lifecycle/SimpleBeanLifecycleTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/simple/lifecycle/SimpleBeanLifecycleTest.java	2009-03-03 20:29:13 UTC (rev 1753)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/simple/lifecycle/SimpleBeanLifecycleTest.java	2009-03-04 03:36:14 UTC (rev 1754)
@@ -150,7 +150,7 @@
    }
 
    @Test
-   @SpecAssertion(section = "4.2", id = "ba")
+   @SpecAssertion(section = "4.2", id = "baa")
    public void testSubClassInheritsPostConstructOnSuperclass() throws Exception
    {
       OrderProcessor.postConstructCalled = false;
@@ -167,7 +167,7 @@
    }
 
    @Test
-   @SpecAssertion(section = "4.2", id = "bb")
+   @SpecAssertion(section = "4.2", id = "bba")
    public void testSubClassInheritsPreDestroyOnSuperclass() throws Exception
    {
       OrderProcessor.preDestroyCalled = false;
@@ -186,7 +186,7 @@
    }
 
    @Test
-   @SpecAssertion(section = "4.2", id = "ba")
+   @SpecAssertion(section = "4.2", id = "baa")
    public void testSubClassDoesNotInheritPostConstructOnSuperclassBlockedByIntermediateClass() throws Exception
    {
       assert getCurrentManager().resolveByType(NovelOrderProcessor.class).size() == 1;
@@ -203,7 +203,7 @@
    }
 
    @Test
-   @SpecAssertion(section = "4.2", id = "bb")
+   @SpecAssertion(section = "4.2", id = "bba")
    public void testSubClassDoesNotInheritPreDestroyConstructOnSuperclassBlockedByIntermediateClass() throws Exception
    {
       OrderProcessor.preDestroyCalled = false;

Modified: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/inheritance/realization/RealizationTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/inheritance/realization/RealizationTest.java	2009-03-03 20:29:13 UTC (rev 1753)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/inheritance/realization/RealizationTest.java	2009-03-04 03:36:14 UTC (rev 1754)
@@ -31,7 +31,7 @@
    };
 
    @Test
-   @SpecAssertion(section = "4.4.1", id = "c")
+   @SpecAssertion(section = "4.4.1", id = "ca")
    public void testRealizedBeanWithProducerMethodHasSameScope()
    {
       assert getCurrentManager().resolveByType(CowDung.class, SMELLY_LITERAL).size() == 1;
@@ -39,7 +39,7 @@
    }
 
    @Test
-   @SpecAssertion(section = "4.4.1", id = "c")
+   @SpecAssertion(section = "4.4.1", id = "ca")
    public void testRealizedBeanWithProducerMethodHasDeploymentTypeOfRealizingClass()
    {
       assert getCurrentManager().resolveByType(CowDung.class, SMELLY_LITERAL).size() == 1;
@@ -47,7 +47,7 @@
    }
 
    @Test
-   @SpecAssertion(section = "4.4.1", id = "c")
+   @SpecAssertion(section = "4.4.1", id = "ca")
    public void testRealizedBeanWithProducerMethodHasSameBindings()
    {
       assert getCurrentManager().resolveByType(CowDung.class, SMELLY_LITERAL).size() == 1;
@@ -57,7 +57,7 @@
 
    @SuppressWarnings("unchecked")
    @Test
-   @SpecAssertion(section = "4.4.1", id = "c")
+   @SpecAssertion(section = "4.4.1", id = "ca")
    public void testRealizedBeanWithProducerMethodHasBindingsOfMethodAndRealizingType()
    {
       assert getCurrentManager().resolveByType(CowDung.class, SMELLY_LITERAL, TAME_LITERAL).size() == 1;
@@ -66,7 +66,7 @@
    }
 
    @Test
-   @SpecAssertion(section = "4.4.1", id = "c")
+   @SpecAssertion(section = "4.4.1", id = "ca")
    public void testRealizedBeanWithProducerMethodHasSameStereotypes()
    {
       assert getCurrentManager().resolveByType(Dog.class).size() == 1;
@@ -74,14 +74,14 @@
    }
 
    @Test(groups = "stub")
-   @SpecAssertion(section = "4.4.1", id = "c")
+   @SpecAssertion(section = "4.4.1", id = "ca")
    public void testRealizedBeanWithProducerMethodHasSameInterceptorBindings()
    {
       assert false;
    }
 
    @Test
-   @SpecAssertion(section = "4.4.1", id = "c")
+   @SpecAssertion(section = "4.4.1", id = "cb")
    public void testRealizedBeanWithProducerFieldHasSameScope()
    {
       assert getCurrentManager().resolveByType(HorseDung.class, SMELLY_LITERAL).size() == 1;
@@ -89,7 +89,7 @@
    }
 
    @Test
-   @SpecAssertion(section = "4.4.1", id = "c")
+   @SpecAssertion(section = "4.4.1", id = "cb")
    public void testRealizedBeanWithProducerFieldHasDeploymentTypeOfRealizingClass()
    {
       assert getCurrentManager().resolveByType(HorseDung.class, SMELLY_LITERAL).size() == 1;
@@ -97,7 +97,7 @@
    }
 
    @Test
-   @SpecAssertion(section = "4.4.1", id = "c")
+   @SpecAssertion(section = "4.4.1", id = "cb")
    public void testRealizedBeanWithProducerFieldHasSameBindings()
    {
       assert getCurrentManager().resolveByType(HorseDung.class, SMELLY_LITERAL).size() == 1;
@@ -107,7 +107,7 @@
 
    @SuppressWarnings("unchecked")
    @Test
-   @SpecAssertion(section = "4.4.1", id = "c")
+   @SpecAssertion(section = "4.4.1", id = "cb")
    public void testRealizedBeanWithProducerFieldHasBindingsOfMethodAndRealizingType()
    {
       assert getCurrentManager().resolveByType(HorseDung.class, SMELLY_LITERAL, TAME_LITERAL).size() == 1;
@@ -116,7 +116,7 @@
    }
 
    @Test
-   @SpecAssertion(section = "4.4.1", id = "c")
+   @SpecAssertion(section = "4.4.1", id = "cb")
    public void testRealizedBeanWithProducerFieldHasSameStereotypes()
    {
       assert getCurrentManager().resolveByType(Donkey.class).size() == 1;
@@ -124,7 +124,7 @@
    }
 
    @Test(groups = "stub")
-   @SpecAssertion(section = "4.4.1", id = "c")
+   @SpecAssertion(section = "4.4.1", id = "cb")
    public void testRealizedBeanWithProducerFieldHasSameInterceptorBindings()
    {
       assert false;

Modified: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/lookup/injection/InjectionTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/lookup/injection/InjectionTest.java	2009-03-03 20:29:13 UTC (rev 1753)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/lookup/injection/InjectionTest.java	2009-03-04 03:36:14 UTC (rev 1754)
@@ -49,7 +49,7 @@
       assert foxRun.fox.getName().equals("gavin");
    }
    
-   @Test @SpecAssertion(section="4.2", id = "a")
+   @Test @SpecAssertion(section="4.2", id = "aa")
    public void testFieldDeclaredInSuperclassInjected() throws Exception
    {
       

Modified: tck/trunk/impl/src/main/resources/tck-audit.xml
===================================================================
--- tck/trunk/impl/src/main/resources/tck-audit.xml	2009-03-03 20:29:13 UTC (rev 1753)
+++ tck/trunk/impl/src/main/resources/tck-audit.xml	2009-03-04 03:36:14 UTC (rev 1754)
@@ -2148,53 +2148,165 @@
   </section>
   
   <section id="4.1" title="Inheritance of type-level metadata">
-  
-    <assertion id="a">
-      <text>For class X which is extended directly or indirectly by the bean class of a simple or session bean Y, if X is annotated with a binding type, stereotype or interceptor 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 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 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="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 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="ac">
+      <text>For class X which is extended _directly_ by the bean class of a _simple_ bean Y, if X is annotated with a _interceptor 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="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 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="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 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="af">
+      <text>For class X which is extended _directly_ by the bean class of a _session_ bean Y, if X is annotated with a _interceptor 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="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>
+    </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>
+    </assertion>     
+    
+    <assertion id="ai">
+      <text>For class X which is extended _indirectly_ by the bean class of a _simple_ bean Y, if X is annotated with a _interceptor 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="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>
+    </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>
+    </assertion>     
+    
+    <assertion id="al">
+      <text>For class X which is extended _indirectly_ by the bean class of a _session_ bean Y, if X is annotated with a _interceptor 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="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 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="b">
-      <text>For class X which is extended directly or indirectly by the bean class of a simple or 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>
+    <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 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="c">
-      <text>For class X which is extended directly or indirectly by the bean class of a simple or 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>
+    <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>
     </assertion>
     
-    <assertion id="d">
-      <text>For class X which is extended directly or indirectly by the bean class of a simple or session bean Y, the scope types and deployment types explicitly declared by and inherited from the class X take precedence over default scopes and deployment types declared by stereotypes.</text>
+    <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>
     </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 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="e">
-      <text>For class X which is the bean class of a simple or session bean Y declared using XML, if X is annotated with a binding type, stereotype or interceptor binding type Z then Y inherits the annotation if and only if Z declares the @Inherited meta-annotation and Y does not explicitly declare an annotation of type Z using XML.</text>
+    <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 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="f">
-      <text>For class X which is the bean class of a simple or session bean Y declared using XML, 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 explicitly declare a scope type using XML.</text>
+    <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>
     </assertion>
     
-    <assertion id="g">
-      <text>For class X which is the bean class of a simple or session bean Y declared using XML, 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 explicitly declare a deployment type using XML.</text>
+    <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>
     </assertion>
     
-    <assertion id="h">
-      <text>For class X which is the bean class of a simple or session bean Y declared using XML, the scope types and deployment types explicitly declared by and inherited from the class X take precedence over default scope and deployment types declared by stereotypes.</text>
+    <assertion id="da">
+      <text>For class X which is extended _directly_ by the bean class of a _simple_ bean Y, the scope types and deployment types explicitly declared by and inherited from the class X take precedence over default scopes and deployment types declared by stereotypes.</text>
     </assertion>
     
+    <assertion id="db">
+      <text>For class X which is extended _directly_ by the bean class of a _session_ bean Y, the scope types and deployment types explicitly declared by and inherited from the class X take precedence over default scopes and deployment types declared by stereotypes.</text>
+    </assertion>
+    
+    <assertion id="dc">
+      <text>For class X which is extended _indirectly_ by the bean class of a _simple_ bean Y, the scope types and deployment types explicitly declared by and inherited from the class X take precedence over default scopes and deployment types declared by stereotypes.</text>
+    </assertion>
+    
+    <assertion id="dd">
+      <text>For class X which is extended _indirectly_ by the bean class of a _session_ bean Y, the scope types and deployment types explicitly declared by and inherited from the class X take precedence over default scopes and deployment types declared by stereotypes.</text>
+    </assertion>
+    
+    <assertion id="ea">
+      <text>For class X which is the bean class of a _simple_ bean Y declared using XML, 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 explicitly declare an annotation of type Z using XML.</text>
+    </assertion>
+    
+    <assertion id="eb">
+      <text>For class X which is the bean class of a _simple_ bean Y declared using XML, 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 explicitly declare an annotation of type Z using XML.</text>
+    </assertion>
+    
+    <assertion id="ec">
+      <text>For class X which is the bean class of a _simple_ bean Y declared using XML, if X is annotated with an _interceptor binding type_ Z then Y inherits the annotation if and only if Z declares the @Inherited meta-annotation and Y does not explicitly declare an annotation of type Z using XML.</text>
+    </assertion>
+    
+    <assertion id="ed">
+      <text>For class X which is the bean class of a _session_ bean Y declared using XML, 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 explicitly declare an annotation of type Z using XML.</text>
+    </assertion>
+    
+    <assertion id="ee">
+      <text>For class X which is the bean class of a _session_ bean Y declared using XML, 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 explicitly declare an annotation of type Z using XML.</text>
+    </assertion>
+    
+    <assertion id="ef">
+      <text>For class X which is the bean class of a _session_ bean Y declared using XML, if X is annotated with an _interceptor binding type_ Z then Y inherits the annotation if and only if Z declares the @Inherited meta-annotation and Y does not explicitly declare an annotation of type Z using XML.</text>
+    </assertion>
+    
+    <assertion id="fa">
+      <text>For class X which is the bean class of a _simple_ bean Y declared using XML, 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 explicitly declare a scope type using XML.</text>
+    </assertion>
+    
+    <assertion id="fb">
+      <text>For class X which is the bean class of a _session_ bean Y declared using XML, 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 explicitly declare a scope type using XML.</text>
+    </assertion>
+    
+    <assertion id="ga">
+      <text>For class X which is the bean class of a _simple_ bean Y declared using XML, 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 explicitly declare a deployment type using XML.</text>
+    </assertion>
+    
+    <assertion id="gb">
+      <text>For class X which is the bean class of a _session_ bean Y declared using XML, 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 explicitly declare a deployment type using XML.</text>
+    </assertion>
+        
+    <assertion id="ha">
+      <text>For class X which is the bean class of a _simple_ bean Y declared using XML, the scope types and deployment types explicitly declared by and inherited from the class X take precedence over default scope and deployment types declared by stereotypes.</text>
+    </assertion>    
+    
+    <assertion id="hb">
+      <text>For class X which is the bean class of a _session_ bean Y declared using XML, the scope types and deployment types explicitly declared by and inherited from the class X take precedence over default scope and deployment types declared by stereotypes.</text>
+    </assertion>  
+    
     <assertion id="i">
-      <text>For annotations defined by the bean specification, all built-in scope types are declared @Inherited</text>
+      <text>For annotations defined by the bean specification, all built-in _scope types_ are declared @Inherited</text>
     </assertion>
     
     <assertion id="j">
-      <text>For annotations defined by the bean specification, all built-in stereotypes are declared @Inherited</text>
+      <text>For annotations defined by the bean specification, all built-in _stereotypes_ are declared @Inherited</text>
     </assertion>
     
     <assertion id="k">
-      <text>For annotations defined by the bean specification, no built-in binding type is declared @Inherited</text>
+      <text>For annotations defined by the bean specification, _no built-in binding type is declared @Inherited_</text>
     </assertion>
     
     <assertion id="l">
-      <text>For annotations defined by the bean specification, the built-in deployment type is not declared @Inherited</text>
+      <text>For annotations defined by the bean specification, _the built-in deployment type is not declared @Inherited_</text>
     </assertion>
     
     <assertion id="m">
@@ -2204,57 +2316,262 @@
   </section>
   
   <section id="4.2" title="Inheritance of member-level metadata">
-    <assertion id="a">
-      <text>For class X which is extended directly or indirectly by the bean class of a simple or session bean Y, if X declares an injected field x then Y inherits x.</text>
+    
+    <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>
     </assertion>
     
-    <assertion id="ba">
-      <text>For class X which is extended directly or indirectly by the bean class of a simple or session 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 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>
     </assertion>
     
-    <assertion id="bb">
-      <text>For class X which is extended directly or indirectly by the bean class of a simple or session 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 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>
     </assertion>
     
-    <assertion id="c">
-      <text>For class X which is extended directly or indirectly by the bean class of a simple or session bean Y, if X declares a non-static method x() annotated with an interceptor binding type Z then Y inherits the binding 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 id="ad">
+      <text>For class X which is extended _indirectly_ by the bean class of a _session_ bean Y, if X declares an injected field x then Y inherits x.</text>
     </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 _ at 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="d">
-      <text>For class X which is extended directly or indirectly by the bean class of a simple or session bean Y, if X declares a non-static producer, disposal, or observer method x() then Y does not inherit this method unless Y is explicitly declared to specialize or realize X</text>
+    <assertion id="bab">
+      <text>For class X which is extended _directly_ by the bean class of a _session_ bean Y, if X declares a _ at 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="e">
-      <text>For class X which is extended directly or indirectly by the bean class of a simple or 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>
+    <assertion id="bac">
+      <text>For class X which is extended _indirectly_ by the bean class of a _simple_ bean Y, if X declares a _ at 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="f">
-      <text>For class X which is extended directly or indirectly by the bean class of a simple or session bean Y, if Y is a decorator and X declares a delegate attribute 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 defines a delegate attribute</text>
+    <assertion id="bad">
+      <text>For class X which is extended _indirectly_ by the bean class of a _session_ bean Y, if X declares a _ at 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="bba">
+      <text>For class X which is extended _directly_ by the bean class of a _simple_ bean Y, if X declares a _ at 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="g">
-      <text>For class X which is the bean class of a simple or session bean Y declared using XML, if X declares an injected field x then Y inherits x, unless Y explicitly declares x using XML.</text>
+    <assertion id="bbb">
+      <text>For class X which is extended _directly_ by the bean class of a _session_ bean Y, if X declares a _ at 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="h">
-      <text>For class X which is the bean class of a simple or session bean Y declared using XML, if X declares an initializer method, @PostConstruct method or @PreDestroy method x() then Y inherits x(), unless Y explicitly declares x() using XML</text>
+    <assertion id="bbc">
+      <text>For class X which is extended _indirectly_ by the bean class of a _simple_ bean Y, if X declares a _ at 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="i">
-      <text>For class X which is the bean class of a simple or session bean Y declared using XML, if X declares a non-static method x() annotated with an interceptor binding type Z then Y inherits the binding, unless Y explicitly declares x() using XML.</text>
+    <assertion id="bbd">
+      <text>For class X which is extended _indirectly_ by the bean class of a _session_ bean Y, if X declares a _ at 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="ca">
+      <text>For class X which is extended _directly_ by the bean class of a _simple_ bean Y, if X declares a _non-static method_ x() annotated with an interceptor binding type Z then Y inherits the binding 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="j">
-      <text>For class X which is the bean class of a simple or session bean Y declared using XML, if X declares a non-static producer, disposal, or observer method x() then Y does not inherit this method, unless Y is explicitly declared to specialize or realize X.</text>
+    <assertion id="cb">
+      <text>For class X which is extended _directly_ by the bean class of a _session_ bean Y, if X declares a _non-static method_ x() annotated with an interceptor binding type Z then Y inherits the binding 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="k">
-      <text>For class X which is the bean class of a simple or session bean Y declared using XML, 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>
+    <assertion id="cc">
+      <text>For class X which is extended _indirectly_ by the bean class of a _simple_ bean Y, if X declares a _non-static method_ x() annotated with an interceptor binding type Z then Y inherits the binding 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="l">
-      <text>For class X which is the bean class of a simple or session bean Y declared using XML, if Y is a decorator and X declares a delegate attribute x then Y inherits x, unless Y explicitly declares a delegate attribute using XML.</text>
+    <assertion id="cd">
+      <text>For class X which is extended _indirectly_ by the bean class of a _session_ bean Y, if X declares a _non-static method_ x() annotated with an interceptor binding type Z then Y inherits the binding 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="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>
+    </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>
+    </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>
+    </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>
+    </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>
+    </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>
+    </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>
+    </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>
+    </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>
+    </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>
+    </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>
+    </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>
+    </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>
+    </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>
+    </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>
+    </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>
+    </assertion>
+    
+    <assertion id="fa">
+      <text>For class X which is extended _directly_ by the bean class of a _simple_ bean Y, if Y is a decorator and X declares a delegate attribute 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 defines a delegate attribute</text>
+    </assertion>
+    
+    <assertion id="fb">
+      <text>For class X which is extended _directly_ by the bean class of a _session_ bean Y, if Y is a decorator and X declares a delegate attribute 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 defines a delegate attribute</text>
+    </assertion>
+    
+    <assertion id="fc">
+      <text>For class X which is extended _indirectly_ by the bean class of a _simple_ bean Y, if Y is a decorator and X declares a delegate attribute 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 defines a delegate attribute</text>
+    </assertion>
+    
+    <assertion id="fd">
+      <text>For class X which is extended _indirectly_ by the bean class of a _session_ bean Y, if Y is a decorator and X declares a delegate attribute 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 defines a delegate attribute</text>
+    </assertion>
+    
+    <assertion id="ga">
+      <text>For class X which is the bean class of a _simple_ bean Y declared using XML, if X declares an injected field x then Y inherits x, unless Y explicitly declares x using XML.</text>
+    </assertion>
+    
+    <assertion id="gb">
+      <text>For class X which is the bean class of a _session_ bean Y declared using XML, if X declares an injected field x then Y inherits x, unless Y explicitly declares x using XML.</text>
+    </assertion>
+    
+    <assertion id="ha">
+      <text>For class X which is the bean class of a _simple_ bean Y declared using XML, if X declares an _initializer method_ x() then Y inherits x(), unless Y explicitly declares x() using XML</text>
+    </assertion>
+    
+    <assertion id="hb">
+      <text>For class X which is the bean class of a _simple_ bean Y declared using XML, if X declares a _ at PostConstruct method_ x() then Y inherits x(), unless Y explicitly declares x() using XML</text>
+    </assertion>
+    
+    <assertion id="hc">
+      <text>For class X which is the bean class of a _simple_ bean Y declared using XML, if X declares a _ at PreDestroy method_ x() then Y inherits x(), unless Y explicitly declares x() using XML</text>
+    </assertion>
+    
+    <assertion id="hd">
+      <text>For class X which is the bean class of a _session_ bean Y declared using XML, if X declares an _initializer method_ x() then Y inherits x(), unless Y explicitly declares x() using XML</text>
+    </assertion>
+    
+    <assertion id="he">
+      <text>For class X which is the bean class of a _session_ bean Y declared using XML, if X declares a _ at PostConstruct method_ x() then Y inherits x(), unless Y explicitly declares x() using XML</text>
+    </assertion>
+    
+    <assertion id="hf">
+      <text>For class X which is the bean class of a _session_ bean Y declared using XML, if X declares a _ at PreDestroy method_ x() then Y inherits x(), unless Y explicitly declares x() using XML</text>
+    </assertion>
+    
+    <assertion id="ia">
+      <text>For class X which is the bean class of a _simple_ bean Y declared using XML, if X declares a non-static method x() annotated with an interceptor binding type Z then Y inherits the binding, unless Y explicitly declares x() using XML.</text>
+    </assertion>
+    
+    <assertion id="ib">
+      <text>For class X which is the bean class of a _session_ bean Y declared using XML, if X declares a non-static method x() annotated with an interceptor binding type Z then Y inherits the binding, unless Y explicitly declares x() using XML.</text>
+    </assertion>
+    
+    <assertion id="ja">
+      <text>For class X which is the bean class of a _simple_ bean Y declared using XML, 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="jb">
+      <text>For class X which is the bean class of a _simple_ bean Y declared using XML, if X declares a non-static _producer method_ x() then Y does not inherit this method, unless Y is explicitly declared to _realize_ X.</text>
+    </assertion>    
+    
+    <assertion id="jc">
+      <text>For class X which is the bean class of a _simple_ bean Y declared using XML, 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="jd">
+      <text>For class X which is the bean class of a _simple_ bean Y declared using XML, if X declares a non-static _disposal method_ x() then Y does not inherit this method, unless Y is explicitly declared to _realize_ X.</text>
+    </assertion>  
+    
+    <assertion id="je">
+      <text>For class X which is the bean class of a _simple_ bean Y declared using XML, 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="jf">
+      <text>For class X which is the bean class of a _simple_ bean Y declared using XML, if X declares a non-static _observer method_ x() then Y does not inherit this method, unless Y is explicitly declared to _realize_ X.</text>
+    </assertion>    
+    
+    <assertion id="jg">
+      <text>For class X which is the bean class of a _session_ bean Y declared using XML, 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="jh">
+      <text>For class X which is the bean class of a _session_ bean Y declared using XML, if X declares a non-static _producer method_ x() then Y does not inherit this method, unless Y is explicitly declared to _realize_ X.</text>
+    </assertion>    
+    
+    <assertion id="ji">
+      <text>For class X which is the bean class of a _session_ bean Y declared using XML, 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="jj">
+      <text>For class X which is the bean class of a _session_ bean Y declared using XML, if X declares a non-static _disposal method_ x() then Y does not inherit this method, unless Y is explicitly declared to _realize_ X.</text>
+    </assertion>  
+    
+    <assertion id="jk">
+      <text>For class X which is the bean class of a _session_ bean Y declared using XML, 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="jl">
+      <text>For class X which is the bean class of a _session_ bean Y declared using XML, if X declares a non-static _observer method_ x() then Y does not inherit this method, unless Y is explicitly declared to _realize_ X.</text>
+    </assertion>     
+    
+    <assertion id="ka">
+      <text>For class X which is the bean class of a _simple_ bean Y declared using XML, 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="kb">
+      <text>For class X which is the bean class of a _simple_ bean Y declared using XML, if X declares a non-static producer field x then Y does not inherit this field, unless Y is explicitly declared to _realize_ X.</text>
+    </assertion>
+    
+    <assertion id="kc">
+      <text>For class X which is the bean class of a _session_ bean Y declared using XML, 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="kd">
+      <text>For class X which is the bean class of a _session_ bean Y declared using XML, if X declares a non-static producer field x then Y does not inherit this field, unless Y is explicitly declared to _realize_ X.</text>
+    </assertion>
+    
+    <assertion id="la">
+      <text>For class X which is the bean class of a _simple_ bean Y declared using XML, if Y is a decorator and X declares a delegate attribute x then Y inherits x, unless Y explicitly declares a delegate attribute using XML.</text>
+    </assertion>
+    
+    <assertion id="lb">
+      <text>For class X which is the bean class of a _session_ bean Y declared using XML, if Y is a decorator and X declares a delegate attribute x then Y inherits x, unless Y explicitly declares a delegate attribute using XML.</text>
+    </assertion>
   </section>
   
   <section id="4.3" title="Specialization">
@@ -2361,10 +2678,14 @@
       <text>A bean declared using XML may declare that it realizes a generic class using the &lt;Realizes&gt; element.</text>
     </assertion>
     
-    <assertion id="c">
-      <text>If a generic class Y declares a non-static producer method or field with a certain combination of scope, stereotypes, bindings and interceptor bindings, then every bean X that realizes Y also has a producer method or field with the same scope, stereotypes and interceptor bindings. The bindings for this inherited producer method or field consist of all bindings declared by the producer method or field of Y, excluding all bindings of Y, together with the bindings declared explicitly by X. The deployment type of the inherited producer method or field is the deployment type of X</text>
+    <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>




More information about the weld-commits mailing list