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

webbeans-commits at lists.jboss.org webbeans-commits at lists.jboss.org
Thu Apr 16 11:14:20 EDT 2009


Author: pete.muir at jboss.org
Date: 2009-04-16 11:14:19 -0400 (Thu, 16 Apr 2009)
New Revision: 2435

Added:
   tck/trunk/interceptor/
   tck/trunk/interceptor/pom.xml
   tck/trunk/interceptor/src/
   tck/trunk/interceptor/src/main/
   tck/trunk/interceptor/src/main/java/
   tck/trunk/interceptor/src/main/java/org/
   tck/trunk/interceptor/src/main/java/org/jboss/
   tck/trunk/interceptor/src/main/java/org/jboss/jsr299/
   tck/trunk/interceptor/src/main/java/org/jboss/jsr299/tck/
   tck/trunk/interceptor/src/main/java/org/jboss/jsr299/tck/AbstractJSR299Test.java
   tck/trunk/interceptor/src/main/java/org/jboss/jsr299/tck/ForwardingBean.java
   tck/trunk/interceptor/src/main/java/org/jboss/jsr299/tck/impl/
   tck/trunk/interceptor/src/main/java/org/jboss/jsr299/tck/impl/JSR299ConfigurationImpl.java
   tck/trunk/interceptor/src/main/java/org/jboss/jsr299/tck/impl/JSR299PropertiesBasedConfigurationBuilder.java
   tck/trunk/interceptor/src/main/java/org/jboss/jsr299/tck/literals/
   tck/trunk/interceptor/src/main/java/org/jboss/jsr299/tck/literals/CurrentLiteral.java
   tck/trunk/interceptor/src/main/java/org/jboss/jsr299/tck/literals/NewLiteral.java
   tck/trunk/interceptor/src/main/java/org/jboss/jsr299/tck/tests/
   tck/trunk/interceptor/src/main/java/org/jboss/jsr299/tck/tests/xml/
   tck/trunk/interceptor/src/main/resources/
   tck/trunk/interceptor/src/main/resources/META-INF/
   tck/trunk/interceptor/src/main/resources/META-INF/jboss-test-harness.properties
   tck/trunk/interceptor/src/main/resources/META-INF/tck-unit.properties
   tck/trunk/interceptor/src/main/resources/org/
   tck/trunk/interceptor/src/main/resources/org/jboss/
   tck/trunk/interceptor/src/main/resources/org/jboss/jsr299/
   tck/trunk/interceptor/src/main/resources/org/jboss/jsr299/tck/
   tck/trunk/interceptor/src/main/resources/org/jboss/jsr299/tck/impl/
   tck/trunk/interceptor/src/main/resources/org/jboss/jsr299/tck/impl/packaging/
   tck/trunk/interceptor/src/main/resources/org/jboss/jsr299/tck/impl/packaging/jsr299/
   tck/trunk/interceptor/src/main/resources/org/jboss/jsr299/tck/tests/
   tck/trunk/interceptor/src/main/resources/org/jboss/jsr299/tck/tests/xml/
   tck/trunk/interceptor/src/main/resources/org/jboss/jsr299/tck/tests/xml/declaration/
   tck/trunk/interceptor/src/main/resources/org/jboss/jsr299/tck/unit/
   tck/trunk/interceptor/src/main/resources/org/jboss/testharness/
   tck/trunk/interceptor/src/main/resources/org/jboss/testharness/impl/
   tck/trunk/interceptor/src/main/resources/org/jboss/testharness/impl/packaging/
   tck/trunk/interceptor/src/main/resources/org/jboss/testharness/impl/packaging/ear/
   tck/trunk/interceptor/src/main/resources/org/jboss/testharness/impl/packaging/ear/ejb-jar.xml
   tck/trunk/interceptor/src/main/resources/org/jboss/testharness/impl/packaging/jsr299/
   tck/trunk/interceptor/src/main/resources/org/jboss/testharness/impl/packaging/jsr299/default/
   tck/trunk/interceptor/src/main/resources/org/jboss/testharness/impl/packaging/jsr299/default/beans.xml
   tck/trunk/interceptor/src/main/resources/tck-audit.xml
   tck/trunk/interceptor/src/main/resources/tck-tests.xml
   tck/trunk/interceptor/src/test/
   tck/trunk/interceptor/src/test/java/
   tck/trunk/interceptor/src/test/java/org/
   tck/trunk/interceptor/src/test/java/org/jboss/
   tck/trunk/interceptor/src/test/java/org/jboss/jsr299/
   tck/trunk/interceptor/src/test/java/org/jboss/jsr299/tck/
   tck/trunk/interceptor/src/test/java/org/jboss/jsr299/tck/test/
   tck/trunk/interceptor/src/test/java/org/jboss/jsr299/tck/test/impl/
   tck/trunk/interceptor/src/test/java/org/jboss/jsr299/tck/test/impl/packaging/
   tck/trunk/interceptor/src/test/java/org/jboss/jsr299/tck/test/impl/packaging/declarative/
   tck/trunk/interceptor/src/test/java/org/jboss/jsr299/tck/test/impl/packaging/declarative/standalone/
   tck/trunk/interceptor/src/test/java/org/jboss/jsr299/tck/test/impl/packaging/descriptors/
   tck/trunk/interceptor/src/test/java/org/jboss/jsr299/tck/test/impl/packaging/descriptors/subpackages/
   tck/trunk/interceptor/src/test/java/org/jboss/jsr299/tck/test/impl/packaging/scanner/
   tck/trunk/interceptor/src/test/resources/
   tck/trunk/interceptor/src/test/resources/org/
   tck/trunk/interceptor/src/test/resources/org/jboss/
   tck/trunk/interceptor/src/test/resources/org/jboss/jsr299/
   tck/trunk/interceptor/src/test/resources/org/jboss/jsr299/tck/
   tck/trunk/interceptor/src/test/resources/org/jboss/jsr299/tck/test/
   tck/trunk/interceptor/src/test/resources/org/jboss/jsr299/tck/test/impl/
   tck/trunk/interceptor/src/test/resources/org/jboss/jsr299/tck/test/impl/packaging/
   tck/trunk/interceptor/src/test/resources/org/jboss/jsr299/tck/test/impl/packaging/declarative/
   tck/trunk/interceptor/src/test/resources/org/jboss/jsr299/tck/test/impl/packaging/declarative/standalone/
   tck/trunk/xml/
   tck/trunk/xml/pom.xml
   tck/trunk/xml/src/
   tck/trunk/xml/src/main/
   tck/trunk/xml/src/main/java/
   tck/trunk/xml/src/main/java/org/
   tck/trunk/xml/src/main/java/org/jboss/
   tck/trunk/xml/src/main/java/org/jboss/jsr299/
   tck/trunk/xml/src/main/java/org/jboss/jsr299/tck/
   tck/trunk/xml/src/main/java/org/jboss/jsr299/tck/AbstractJSR299Test.java
   tck/trunk/xml/src/main/java/org/jboss/jsr299/tck/ForwardingBean.java
   tck/trunk/xml/src/main/java/org/jboss/jsr299/tck/impl/
   tck/trunk/xml/src/main/java/org/jboss/jsr299/tck/impl/JSR299ConfigurationImpl.java
   tck/trunk/xml/src/main/java/org/jboss/jsr299/tck/impl/JSR299PropertiesBasedConfigurationBuilder.java
   tck/trunk/xml/src/main/java/org/jboss/jsr299/tck/literals/
   tck/trunk/xml/src/main/java/org/jboss/jsr299/tck/literals/CurrentLiteral.java
   tck/trunk/xml/src/main/java/org/jboss/jsr299/tck/literals/NewLiteral.java
   tck/trunk/xml/src/main/java/org/jboss/jsr299/tck/tests/
   tck/trunk/xml/src/main/java/org/jboss/jsr299/tck/tests/implementation/
   tck/trunk/xml/src/main/java/org/jboss/jsr299/tck/tests/implementation/simple/
   tck/trunk/xml/src/main/java/org/jboss/jsr299/tck/tests/implementation/simple/lifecycle/
   tck/trunk/xml/src/main/java/org/jboss/jsr299/tck/tests/implementation/simple/lifecycle/Animal.java
   tck/trunk/xml/src/main/java/org/jboss/jsr299/tck/tests/implementation/simple/lifecycle/AnotherDeploymentType.java
   tck/trunk/xml/src/main/java/org/jboss/jsr299/tck/tests/implementation/simple/lifecycle/BookOrderProcessor.java
   tck/trunk/xml/src/main/java/org/jboss/jsr299/tck/tests/implementation/simple/lifecycle/CdOrderProcessor.java
   tck/trunk/xml/src/main/java/org/jboss/jsr299/tck/tests/implementation/simple/lifecycle/Cod.java
   tck/trunk/xml/src/main/java/org/jboss/jsr299/tck/tests/implementation/simple/lifecycle/Duck.java
   tck/trunk/xml/src/main/java/org/jboss/jsr299/tck/tests/implementation/simple/lifecycle/Egg.java
   tck/trunk/xml/src/main/java/org/jboss/jsr299/tck/tests/implementation/simple/lifecycle/EggProducer.java
   tck/trunk/xml/src/main/java/org/jboss/jsr299/tck/tests/implementation/simple/lifecycle/Farm.java
   tck/trunk/xml/src/main/java/org/jboss/jsr299/tck/tests/implementation/simple/lifecycle/FarmOffice.java
   tck/trunk/xml/src/main/java/org/jboss/jsr299/tck/tests/implementation/simple/lifecycle/FishPond.java
   tck/trunk/xml/src/main/java/org/jboss/jsr299/tck/tests/implementation/simple/lifecycle/FishStereotype.java
   tck/trunk/xml/src/main/java/org/jboss/jsr299/tck/tests/implementation/simple/lifecycle/FooException.java
   tck/trunk/xml/src/main/java/org/jboss/jsr299/tck/tests/implementation/simple/lifecycle/Goldfish.java
   tck/trunk/xml/src/main/java/org/jboss/jsr299/tck/tests/implementation/simple/lifecycle/Goose.java
   tck/trunk/xml/src/main/java/org/jboss/jsr299/tck/tests/implementation/simple/lifecycle/IndirectOrderProcessor.java
   tck/trunk/xml/src/main/java/org/jboss/jsr299/tck/tests/implementation/simple/lifecycle/IntermediateOrderProcessor.java
   tck/trunk/xml/src/main/java/org/jboss/jsr299/tck/tests/implementation/simple/lifecycle/Lion.java
   tck/trunk/xml/src/main/java/org/jboss/jsr299/tck/tests/implementation/simple/lifecycle/Lorry_Broken.java
   tck/trunk/xml/src/main/java/org/jboss/jsr299/tck/tests/implementation/simple/lifecycle/MountainLion.java
   tck/trunk/xml/src/main/java/org/jboss/jsr299/tck/tests/implementation/simple/lifecycle/MyCreationalContext.java
   tck/trunk/xml/src/main/java/org/jboss/jsr299/tck/tests/implementation/simple/lifecycle/NovelOrderProcessor.java
   tck/trunk/xml/src/main/java/org/jboss/jsr299/tck/tests/implementation/simple/lifecycle/OrderProcessor.java
   tck/trunk/xml/src/main/java/org/jboss/jsr299/tck/tests/implementation/simple/lifecycle/RedSnapper.java
   tck/trunk/xml/src/main/java/org/jboss/jsr299/tck/tests/implementation/simple/lifecycle/RequestScopedAnimalStereotype.java
   tck/trunk/xml/src/main/java/org/jboss/jsr299/tck/tests/implementation/simple/lifecycle/Salmon.java
   tck/trunk/xml/src/main/java/org/jboss/jsr299/tck/tests/implementation/simple/lifecycle/SimpleBeanLifecycleTest.java
   tck/trunk/xml/src/main/java/org/jboss/jsr299/tck/tests/implementation/simple/lifecycle/Synchronous.java
   tck/trunk/xml/src/main/java/org/jboss/jsr299/tck/tests/implementation/simple/lifecycle/Tame.java
   tck/trunk/xml/src/main/java/org/jboss/jsr299/tck/tests/implementation/simple/lifecycle/Tuna.java
   tck/trunk/xml/src/main/java/org/jboss/jsr299/tck/tests/implementation/simple/lifecycle/TunaFarm.java
   tck/trunk/xml/src/main/java/org/jboss/jsr299/tck/tests/implementation/simple/lifecycle/Van_Broken.java
   tck/trunk/xml/src/main/java/org/jboss/jsr299/tck/tests/xml/
   tck/trunk/xml/src/main/resources/
   tck/trunk/xml/src/main/resources/META-INF/
   tck/trunk/xml/src/main/resources/META-INF/jboss-test-harness.properties
   tck/trunk/xml/src/main/resources/META-INF/tck-unit.properties
   tck/trunk/xml/src/main/resources/README.TXT
   tck/trunk/xml/src/main/resources/images/
   tck/trunk/xml/src/main/resources/images/4.1.aa.png
   tck/trunk/xml/src/main/resources/org/
   tck/trunk/xml/src/main/resources/org/jboss/
   tck/trunk/xml/src/main/resources/org/jboss/jsr299/
   tck/trunk/xml/src/main/resources/org/jboss/jsr299/tck/
   tck/trunk/xml/src/main/resources/org/jboss/jsr299/tck/impl/
   tck/trunk/xml/src/main/resources/org/jboss/jsr299/tck/impl/packaging/
   tck/trunk/xml/src/main/resources/org/jboss/jsr299/tck/impl/packaging/jsr299/
   tck/trunk/xml/src/main/resources/org/jboss/jsr299/tck/tests/
   tck/trunk/xml/src/main/resources/org/jboss/jsr299/tck/tests/implementation/
   tck/trunk/xml/src/main/resources/org/jboss/jsr299/tck/tests/implementation/simple/
   tck/trunk/xml/src/main/resources/org/jboss/jsr299/tck/tests/implementation/simple/lifecycle/
   tck/trunk/xml/src/main/resources/org/jboss/jsr299/tck/tests/implementation/simple/lifecycle/beans.xml
   tck/trunk/xml/src/main/resources/org/jboss/jsr299/tck/tests/xml/
   tck/trunk/xml/src/main/resources/org/jboss/jsr299/tck/tests/xml/declaration/
   tck/trunk/xml/src/main/resources/org/jboss/jsr299/tck/unit/
   tck/trunk/xml/src/main/resources/tck-audit.xml
   tck/trunk/xml/src/main/resources/tck-tests.xml
   tck/trunk/xml/src/test/
   tck/trunk/xml/src/test/java/
   tck/trunk/xml/src/test/java/org/
   tck/trunk/xml/src/test/java/org/jboss/
   tck/trunk/xml/src/test/java/org/jboss/jsr299/
   tck/trunk/xml/src/test/java/org/jboss/jsr299/tck/
   tck/trunk/xml/src/test/java/org/jboss/jsr299/tck/test/
   tck/trunk/xml/src/test/java/org/jboss/jsr299/tck/test/impl/
   tck/trunk/xml/src/test/java/org/jboss/jsr299/tck/test/impl/packaging/
   tck/trunk/xml/src/test/java/org/jboss/jsr299/tck/test/impl/packaging/declarative/
   tck/trunk/xml/src/test/java/org/jboss/jsr299/tck/test/impl/packaging/declarative/standalone/
   tck/trunk/xml/src/test/java/org/jboss/jsr299/tck/test/impl/packaging/descriptors/
   tck/trunk/xml/src/test/java/org/jboss/jsr299/tck/test/impl/packaging/descriptors/subpackages/
   tck/trunk/xml/src/test/java/org/jboss/jsr299/tck/test/impl/packaging/scanner/
   tck/trunk/xml/src/test/resources/
   tck/trunk/xml/src/test/resources/org/
   tck/trunk/xml/src/test/resources/org/jboss/
   tck/trunk/xml/src/test/resources/org/jboss/jsr299/
   tck/trunk/xml/src/test/resources/org/jboss/jsr299/tck/
   tck/trunk/xml/src/test/resources/org/jboss/jsr299/tck/test/
   tck/trunk/xml/src/test/resources/org/jboss/jsr299/tck/test/impl/
   tck/trunk/xml/src/test/resources/org/jboss/jsr299/tck/test/impl/packaging/
   tck/trunk/xml/src/test/resources/org/jboss/jsr299/tck/test/impl/packaging/declarative/
   tck/trunk/xml/src/test/resources/org/jboss/jsr299/tck/test/impl/packaging/declarative/standalone/
Removed:
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/decorator/
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/enterprise/definition/statelessDecorator/
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/enterprise/definition/statelessInterceptor/
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/interceptor/
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/xml/declaration/bean/BeanDeclarationTest.java
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/xml/declaration/bean/child/
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/name/NameDefinitionTest.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/event/EventTest.java
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/event/transactionalObservers/EventTest.java
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/commonAnnotations/ResourceInjectionTest.java
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/enterprise/definition/EnterpriseBeanDefinitionTest.java
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/enterprise/lifecycle/EnterpriseBeanLifecycleTest.java
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/enterprise/newBean/NewEnterpriseBeanTest.java
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/initializer/InitializerMethodTest.java
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/producer/method/disposal/definition/DisposalMethodDefinitionTest.java
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/simple/definition/SimpleBeanDefinitionTest.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/implementation/simple/newSimpleBean/NewSimpleBeanTest.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/java/org/jboss/jsr299/tck/tests/xml/metadata/XmlBasedMetadataTest.java
   tck/trunk/impl/src/main/resources/tck-audit.xml
Log:
split out interceptors and xml tests

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-04-16 15:09:21 UTC (rev 2434)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/definition/binding/BindingDefinitionTest.java	2009-04-16 15:14:19 UTC (rev 2435)
@@ -12,7 +12,6 @@
 import org.hibernate.tck.annotations.SpecAssertion;
 import org.hibernate.tck.annotations.SpecAssertions;
 import org.jboss.jsr299.tck.AbstractJSR299Test;
-import org.jboss.jsr299.tck.literals.CurrentLiteral;
 import org.jboss.testharness.impl.packaging.Artifact;
 import org.testng.annotations.Test;
 
@@ -68,71 +67,6 @@
       assert model.getBindings().size() == 2;
    }
 
-   @Test(groups = { "stub", "webbeansxml" })
-   @SpecAssertion(section = "2.3.4", id = "a")
-   public void testBindingsDeclaredInXml()
-   {
-      // Map<Class<? extends Annotation>, Annotation> annotations = new
-      // HashMap<Class<? extends Annotation>, Annotation>();
-      // annotations.put(Asynchronous.class, new
-      // AsynchronousAnnotationLiteral());
-      // AnnotatedClass annotatedItem = new SimpleAnnotatedClass(Antelope.class,
-      // annotations);
-
-      // SimpleBean<Antelope> antelope = createSimpleBean(Antelope.class,
-      // annotatedItem, manager);
-      // assert Reflections.annotationSetMatches(antelope.getBindingTypes(),
-      // Asynchronous.class);
-      assert false;
-   }
-
-   @Test(groups = { "stub", "webbeansxml" })
-   @SpecAssertion(section = "2.3.5", id = "d")
-   public void testXmlBindingOverridesAndIgnoresJava()
-   {
-      // Map<Class<? extends Annotation>, Annotation> annotations = new
-      // HashMap<Class<? extends Annotation>, Annotation>();
-      // annotations.put(Asynchronous.class, new
-      // AsynchronousAnnotationLiteral());
-      // AnnotatedClass<Cat> annotatedItem = new
-      // SimpleAnnotatedClass<Cat>(Cat.class, annotations);
-
-      // SimpleBean<Cat> cat = createSimpleBean(Cat.class, annotatedItem,
-      // manager);
-      // assert cat.getBindingTypes().size() == 1;
-      // assert cat.getBindingTypes().contains(new
-      // AnnotationLiteral<Asynchronous>() {});
-      assert false;
-   }
-
-   @Test(groups = { "stub", "webbeansxml" })
-   @SpecAssertion(section = "2.3.4", id = "a")
-   public void testNoBindingsDeclaredInXml()
-   {
-      // Map<Class<? extends Annotation>, Annotation> annotations = new
-      // HashMap<Class<? extends Annotation>, Annotation>();
-      // AnnotatedClass<Cat> annotatedItem = new
-      // SimpleAnnotatedClass<Cat>(Cat.class, annotations);
-
-      // SimpleBean<Cat> cat = createSimpleBean(Cat.class, annotatedItem,
-      // manager);
-      // assert cat.getBindingTypes().size() == 1;
-      // assert cat.getBindingTypes().contains(new
-      // AnnotationLiteral<Synchronous>() {});
-      assert false;
-   }
-
-   @Test(groups = { "stub", "webbeansxml" })
-   @SpecAssertions( { @SpecAssertion(section = "2.3.4", id = "a"), 
-      @SpecAssertion(section = "2.3.5", id = "c") })
-   public void testDefaultBindingDeclaredInXml()
-   {
-      Bean<?> model = getCurrentManager().resolveByType(Tuna.class).iterator().next();
-      assert model.getBindings().size() == 1;
-      assert model.getBindings().contains(new CurrentLiteral());
-      assert false;
-   }
-
    @Test(groups = { "injection", "producerMethod" })
    @SpecAssertion(section = "2.3.5", id = "a")
    public void testFieldInjectedFromProducerMethod() throws Exception
@@ -142,20 +76,6 @@
       assert barn.petSpider instanceof DefangedTarantula;
    }
 
-   @Test(groups = { "stub", "injection", "webbeansxml" })
-   @SpecAssertion(section = "2.3.6", id = "b")
-   public void testFieldWithBindingInXml()
-   {
-      assert false;
-   }
-
-   @Test(groups = { "stub", "injection", "webbeansxml" })
-   @SpecAssertion(section = "2.3.6", id = "c")
-   public void testFieldWithBindingInXmlIgnoresAnnotations()
-   {
-      assert false;
-   }
-
    @Test(groups = { "injection", "producerMethod" })
    @SpecAssertion(section = "unknown", id = "unknown")
    public void testMethodWithBindingAnnotationsOnParametersAreInjected() throws Exception
@@ -176,20 +96,6 @@
          
    }
 
-   @Test(groups = { "stub", "injection", "webbeansxml" })
-   @SpecAssertion(section = "2.3.6", id = "e")
-   public void testMethodWithBindingAnnotationsOnParametersDeclaredInXml()
-   {
-      assert false;
-   }
-
-   @Test(groups = { "stub", "injection", "webbeansxml" })
-   @SpecAssertion(section = "2.3.6", id = "f")
-   public void testMethodWithBindingAnnotationsOnParametersDeclaredInXmlIgnoresAnnotations()
-   {
-      assert false;
-   }
-
    @Test
    @SpecAssertion(section = "4.1", id = "aa")
    public void testBindingDeclaredInheritedIsInherited() throws Exception

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-04-16 15:09:21 UTC (rev 2434)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/definition/deployment/DeploymentTypeDefinitionTest.java	2009-04-16 15:14:19 UTC (rev 2435)
@@ -5,7 +5,6 @@
 import java.util.Arrays;
 import java.util.List;
 
-import javax.inject.DeploymentException;
 import javax.inject.DeploymentType;
 import javax.inject.Production;
 import javax.inject.UnsatisfiedDependencyException;
@@ -63,18 +62,6 @@
       assert blackWidowSpiderModel.getDeploymentType().equals(AnotherDeploymentType.class);
    }
 
-   /**
-    * 
-    * TODO Section 2.5.4 does not claim that XML overrides Java for deployment
-    * types
-    */
-   @Test(groups = { "stub", "webbeansxml", "deploymentType" })
-   @SpecAssertion(section = "2.5.4", id = "a")
-   public void testXmlDeploymentTypeElement()
-   {
-      assert false;
-   }
-
    @Test(groups = { "webbeansxml", "deploymentType" })
    @SpecAssertion(section = "2.5.5", id = "a")
    public void testDefaultDeploymentType()
@@ -100,13 +87,6 @@
       getCurrentManager().getInstanceByType(RedSnapper.class);
    }
 
-   @Test(groups = { "stub", "webbeansxml", "deploymentType" }, expectedExceptions = DeploymentException.class)
-   @SpecAssertion(section = "2.5.4", id = "b")
-   public void testMultipleDeployElementsCannotBeDefined()
-   {
-      assert false;
-   }
-
    @Test(groups = { "deploymentType" })
    @SpecAssertions( { 
       @SpecAssertion(section = "2.5.5", id = "c"), 

Modified: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/definition/name/NameDefinitionTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/definition/name/NameDefinitionTest.java	2009-04-16 15:09:21 UTC (rev 2434)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/definition/name/NameDefinitionTest.java	2009-04-16 15:14:19 UTC (rev 2435)
@@ -38,23 +38,6 @@
       assert moose.getName().equals("aMoose");
    }
    
-   @Test(groups={"stub", "webbeansxml"}) 
-   @SpecAssertion(section="2.6.2", id = "a")
-   public void testNonDefaultXmlNamed()
-   {
-      assert false;
-   }
-   
-   @Test(groups={"stub", "webbeansxml"}) 
-   @SpecAssertions({
-      @SpecAssertion(section="2.6.2", id = "b"),
-      @SpecAssertion(section = "2.6.3",id = "b")
-   })
-   public void testJavaNamedUsedWhenNoXmlSpecified()
-   {
-      assert false;
-   }
-   
    @Test 
    @SpecAssertions({
       @SpecAssertion(section= "2.6.3", id = "a"),
@@ -69,13 +52,6 @@
       assert haddock.getName().equals("haddock");
    }
    
-   @Test(groups={"stub", "webbeansxml"}) 
-   @SpecAssertion(section="2.6.3", id = "b")
-   public void testDefaultXmlNamed()
-   {
-      assert false;
-   }
-   
    @Test 
    @SpecAssertions({
       @SpecAssertion(section = "2.6.3", id = "c"), 

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-04-16 15:09:21 UTC (rev 2434)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/definition/scope/ScopeDefinitionTest.java	2009-04-16 15:14:19 UTC (rev 2435)
@@ -4,7 +4,6 @@
 import java.lang.annotation.Target;
 import java.util.Arrays;
 import java.util.List;
-import java.util.Set;
 
 import javax.context.ApplicationScoped;
 import javax.context.Dependent;
@@ -65,13 +64,6 @@
       assert bean.getScopeType().equals(RequestScoped.class);
    }
    
-   @Test(groups={"stub", "webbeansxml"}) 
-   @SpecAssertion(section="2.4.4", id = "a")
-   public void testScopeDeclaredInXml()
-   {
-      assert false;
-   }
-   
    @Test @SpecAssertion(section="2.4.5", id = "a")
    public void testDefaultScope()
    {

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-04-16 15:09:21 UTC (rev 2434)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/definition/stereotype/StereotypeDefinitionTest.java	2009-04-16 15:14:19 UTC (rev 2435)
@@ -57,27 +57,6 @@
       assert getCurrentManager().resolveByType(Reindeer.class).size() == 1; 
       assert getCurrentManager().resolveByType(Reindeer.class).iterator().next().getScopeType().equals(Dependent.class);
    }
-
-   @Test(groups = "stub")
-   @SpecAssertion(section = "2.7.1.2", id = "a")
-   public void testStereotypeWithoutInterceptors()
-   {
-      assert false;
-   }
-
-   @Test(groups = { "stub", "interceptors" })
-   @SpecAssertion(section = "2.7.1.2", id = "b")
-   public void testStereotypeWithOneInterceptor()
-   {
-      assert false;
-   }
-   
-   @Test(groups = { "stub", "interceptors" })
-   @SpecAssertion(section = "2.7.1.2", id = "c")
-   public void testStereotypeWithMultipleInterceptors()
-   {
-      assert false;
-   }
       
    @Test
    @SpecAssertion(section = "2.7", id = "c")
@@ -112,21 +91,6 @@
       assert getCurrentManager().resolveByType(Springbok.class).iterator().next().getScopeType().equals(ApplicationScoped.class);
    }
 
-   @Test(groups = { "stub", "webbeansxml" })
-   @SpecAssertion(section = "2.7.3", id = "a")
-   public void testStereotypeDeclaredInXmlIgnoresJavaStereotypes()
-   {
-      assert false;
-   }
-
-   @Test(groups = { "stub", "webbeansxml" })
-   @SpecAssertion(section = "2.7.3", id = "a")
-   public void testStereotypeDeclaredInXmlIgnoresJavaBindingTypes()
-   {
-      assert false;
-
-   }   
-
    @Test
    @SpecAssertions( { @SpecAssertion(section = "2.7.1.4", id = "b"), 
       @SpecAssertion(section = "2.7.4", id = "a") })

Modified: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/event/EventTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/event/EventTest.java	2009-04-16 15:09:21 UTC (rev 2434)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/event/EventTest.java	2009-04-16 15:14:19 UTC (rev 2435)
@@ -309,23 +309,6 @@
       assert resolvedObservers.size() == 2;
    }
 
-   @Test(groups = { "stub", "events", "webbeansxml" })
-   @SpecAssertions( { 
-      @SpecAssertion(section = "7.5.3", id = "a"), 
-      @SpecAssertion(section = "7.5.3", id = "b") 
-   } )
-   public void testXMLDefinedObserverMethodIgnoresBindingAnnotations()
-   {
-      assert false;
-   }
-
-   @Test(groups = { "stub", "events", "webbeansxml" })
-   @SpecAssertion(section = "7.5.3", id = "c")
-   public void testXMLDefinedObserverNotFindingImplementationMethodFails()
-   {
-      assert false;
-   }
-
    /**
     * In addition to the event parameter, observer methods may declare
     * additional parameters, which may declare bindings. The container calls the
@@ -377,16 +360,9 @@
 
       }.run();
    }
-
-   @Test(groups = { "events", "stub" })
-   @SpecAssertions( { @SpecAssertion(section = "7.5.5", id = "c") } )
-   public void testConditionalObserverDefinedByXML()
-   {
-      assert false;
-   }
    
    @Test(groups = { "events" })
-   @SpecAssertions( { @SpecAssertion(section = "7.5.7", id = "a"), @SpecAssertion(section = "7.5.8", id = "c"), @SpecAssertion(section = "7.5.8", id = "g")} )
+   @SpecAssertions( { @SpecAssertion(section = "7.5.8", id = "c"), @SpecAssertion(section = "7.5.8", id = "g")} )
    public void testAsynchronousObserverIsAsynchronous() throws Exception
    {
       new RunInDependentContext()
@@ -403,13 +379,6 @@
       }.run();
    }
 
-   @Test(groups = { "stub", "events", "webbeansxml" })
-   @SpecAssertion(section = "7.5.7", id = "b")
-   public void testAsynchronousObserverDeclaredByXML()
-   {
-      assert false;
-   }
-
    @Test(groups = { "events" })
    @SpecAssertion(section = "7.5.8", id = "a")
    public void testObserverMethodRegistration()

Modified: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/event/transactionalObservers/EventTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/event/transactionalObservers/EventTest.java	2009-04-16 15:09:21 UTC (rev 2434)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/event/transactionalObservers/EventTest.java	2009-04-16 15:14:19 UTC (rev 2435)
@@ -86,7 +86,7 @@
    }
 
    @Test(groups = { "events", "integration" })
-   @SpecAssertions( { @SpecAssertion(section = "7.5.6", id = "c"), @SpecAssertion(section = "7.5.6", id = "f"), @SpecAssertion(section = "7.5.6", id = "i"), @SpecAssertion(section = "7.5.8", id = "d"), @SpecAssertion(section = "7.5.8", id = "f") })
+   @SpecAssertions( { @SpecAssertion(section = "7.5.6", id = "c"), @SpecAssertion(section = "7.5.6", id = "i"), @SpecAssertion(section = "7.5.8", id = "d"), @SpecAssertion(section = "7.5.8", id = "f") })
    public void testAfterTransactionCompletionObserver() throws InterruptedException
    {
       dog.setCorrectContext(false);

Modified: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/commonAnnotations/ResourceInjectionTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/commonAnnotations/ResourceInjectionTest.java	2009-04-16 15:09:21 UTC (rev 2434)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/commonAnnotations/ResourceInjectionTest.java	2009-04-16 15:14:19 UTC (rev 2435)
@@ -60,13 +60,6 @@
    }
 
    @Test(groups = "stub")
-   @SpecAssertion(section = "3.10", id = "g")
-   public void testStandardInterceptor()
-   {
-      assert false;
-   }
-
-   @Test(groups = "stub")
    @SpecAssertion(section = "3.10", id = "h")
    public void testExtendedPersistenceContextNotSupported()
    {

Modified: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/enterprise/definition/EnterpriseBeanDefinitionTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/enterprise/definition/EnterpriseBeanDefinitionTest.java	2009-04-16 15:09:21 UTC (rev 2434)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/enterprise/definition/EnterpriseBeanDefinitionTest.java	2009-04-16 15:14:19 UTC (rev 2435)
@@ -40,13 +40,6 @@
       assert getCurrentManager().resolveByType(Laika.class).size() == 1;
    }
 
-   @Test(groups = { "webbeansxml", "enterpriseBeans", "stub" })
-   @SpecAssertion(section = "3.3", id = "e")
-   public void testMultipleXMLDefinedEnterpriseBeansWithSameImplementationClassNotOK()
-   {
-      assert false;
-   }
-
    @Test(groups = { "enterpriseBeans" })
    @SpecAssertion(section = "3.3.2", id = "a")
    public void testAnnotatedEnterpriseBean()
@@ -54,14 +47,6 @@
       assert getCurrentManager().resolveByType(GiraffeLocal.class).size() > 0;
    }
 
-   @Test(groups = { "enterpriseBeans", "webbeansxml", "stub" })
-   @SpecAssertion(section = "3.3.2", id = "a")
-   public void testAnnotatedEnterpriseBeanComplementedWithXML()
-   {
-      // TODO dupe?
-      assert false;
-   }
-
    @Test(groups = { "enterpriseBeans", "ejbjarxml", "stub" })
    @SpecAssertion(section = "3.3.2", id = "b")
    public void testEJBJARDefinedEnterpriseBean()
@@ -70,14 +55,6 @@
       assert false;
    }
 
-   @Test(groups = { "enterpriseBeans", "ejbjarxml", "webbeansxml", "stub" })
-   @SpecAssertion(section = "3.3.2", id = "b")
-   public void testEJBJARDefinedEnterpriseBeanComplementedWithXML()
-   {
-      // TODO dupe?
-      assert false;
-   }
-
    @Test(groups = { "enterpriseBeans" })
    @SpecAssertions( { 
       @SpecAssertion(section = "3.2.1", id = "f"), 

Modified: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/enterprise/lifecycle/EnterpriseBeanLifecycleTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/enterprise/lifecycle/EnterpriseBeanLifecycleTest.java	2009-04-16 15:09:21 UTC (rev 2434)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/enterprise/lifecycle/EnterpriseBeanLifecycleTest.java	2009-04-16 15:14:19 UTC (rev 2435)
@@ -133,13 +133,6 @@
       assert alteStadt.getPlaceOfInterest().equals(RoemerPassage.name);
    }
 
-   @Test(groups = { "enterpriseBeans", "lifecycle", "integration", "stub" })
-   @SpecAssertion(section = "6.11", id = "b")
-   public void testInitXMLDefinedValuesOnWebWeanEnterpriseBeans()
-   {
-      assert false;
-   }
-
    @Test(groups = { "enterpriseBeans", "lifecycle", "integration" })
    @SpecAssertion(section = "6.11", id = "c")
    public void testInitializerMethodsCalledWithCurrentParameterValues()
@@ -149,20 +142,6 @@
       assert alteStadt.getAnotherPlaceOfInterest() != null;
    }
 
-   @Test(groups = { "enterpriseBeans", "lifecycle", "interceptors", "stub" })
-   @SpecAssertion(section = "6.11", id = "d")
-   public void testInterceptorStackIsBuilt()
-   {
-      assert false;
-   }
-
-   @Test(groups = { "enterpriseBeans", "lifecycle", "decorators", "stub" })
-   @SpecAssertion(section = "6.11", id = "e")
-   public void testDecoratorStackIsBuilt()
-   {
-      assert false;
-   }
-
    @Test(groups = { "enterpriseBeans", "lifecycle", "ri-broken" })
    @SpecAssertion(section = "6.11", id = "f")
    public void testDependentObjectsDestroyed()

Modified: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/enterprise/newBean/NewEnterpriseBeanTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/enterprise/newBean/NewEnterpriseBeanTest.java	2009-04-16 15:09:21 UTC (rev 2434)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/enterprise/newBean/NewEnterpriseBeanTest.java	2009-04-16 15:14:19 UTC (rev 2435)
@@ -115,13 +115,6 @@
       assert false;
    }
 
-   @Test(groups = { "stub", "new", "interceptors" })
-   @SpecAssertion(section = "3.3.6", id = "c")
-   public void testNewBeanHasSameInterceptorMethodsAsWrappedBean()
-   {
-      assert false;
-   }
-
    /**
     * If the @New binding type appears in conjunction with some other binding
     * type, or is specified for a field or parameter of a type which does not
@@ -135,19 +128,6 @@
    {
       assert false;
    }
-
-   /**
-    * No Web Bean defined using annotations or XML may explicitly declare @New
-    * as a binding type
-    */
-   @Test(groups = { "stub", "new", "webbeansxml" }, expectedExceptions = DefinitionException.class)
-   @SpecAssertion(section = "review", id = "review")
-   public void testNewAnnotationCannotBeExplicitlyDeclared()
-   {
-      // This only needs to be tested with XML since the annotation itself
-      // does not target types.
-      assert false;
-   }
    
    @Test @SpecAssertion(section="3.3.6", id = "aa")
    public void testForEachEnterpriseBeanANewBeanExists()

Modified: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/initializer/InitializerMethodTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/initializer/InitializerMethodTest.java	2009-04-16 15:09:21 UTC (rev 2434)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/initializer/InitializerMethodTest.java	2009-04-16 15:14:19 UTC (rev 2435)
@@ -1,7 +1,5 @@
 package org.jboss.jsr299.tck.tests.implementation.initializer;
 
-import javax.inject.DefinitionException;
-
 import org.hibernate.tck.annotations.SpecAssertion;
 import org.hibernate.tck.annotations.SpecAssertions;
 import org.jboss.jsr299.tck.AbstractJSR299Test;
@@ -68,32 +66,4 @@
       assert chickenHutch.chicken != null;
    }
 
-   @Test(groups = { "stub", "initializerMethod", "webbeansxml" })
-   @SpecAssertion(section = "3.9.2", id = "a")
-   public void testInitializerMethodDeclaredInXml()
-   {
-      assert false;
-   }
-
-   @Test(groups = { "stub", "initializerMethod", "webbeansxml" })
-   @SpecAssertion(section = "3.9.2", id = "b")
-   public void testInitializerMethodDeclaredInXmlIgnoresBindingAnnotationsInJava()
-   {
-      assert false;
-   }
-
-   @Test(groups = { "stub", "initializerMethod", "webbeansxml" }, expectedExceptions = DefinitionException.class)
-   @SpecAssertion(section = "3.9.2", id = "c")
-   public void testInitializerMethodDeclaredInXmlDoesNotExist()
-   {
-      assert false;
-   }
-
-   @Test(groups = { "stub", "initializerMethod", "webbeansxml" })
-   @SpecAssertion(section = "3.9", id = "g")
-   public void testBeanHasAllInitializerMethodsDeclaredInJavaAndXml()
-   {
-      assert false;
-   }
-
 }
\ No newline at end of file

Modified: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/producer/method/disposal/definition/DisposalMethodDefinitionTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/producer/method/disposal/definition/DisposalMethodDefinitionTest.java	2009-04-16 15:09:21 UTC (rev 2434)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/producer/method/disposal/definition/DisposalMethodDefinitionTest.java	2009-04-16 15:14:19 UTC (rev 2435)
@@ -155,41 +155,6 @@
    }
 
    /**
-    * For a bean defined in XML, a disposal method may be declared using the
-    * method name, the &lt;Disposes&gt; element, and the parameter types of the
-    * method
-    */
-   @Test(groups = { "stub", "disposalMethod", "webbeansxml" })
-   @SpecAssertion(section = "3.4.9", id = "a")
-   public void testDisposalMethodDeclaredByXML()
-   {
-      assert false;
-   }
-
-   /**
-    * When a disposal method is declared in XML, the container ignores binding
-    * annotations applied to the Java method parameter
-    */
-   @Test(groups = { "stub", "disposalMethod", "webbeansxml" })
-   @SpecAssertion(section = "3.4.9", id = "b")
-   public void testDisposalMethodDeclaredByXMLIgnoresAnnotatedBindings()
-   {
-      assert false;
-   }
-
-   /**
-    * If the bean class of a bean declared in XML does not have a method with
-    * the name and parameter types declared in XML, a DefinitionException is
-    * thrown by the container at deployment time
-    */
-   @Test(groups = { "stub", "disposalMethod", "webbeansxml" }, expectedExceptions = { DefinitionException.class })
-   @SpecAssertion(section = "3.4.9", id = "c")
-   public void testDisposalMethodDeclaredByXMLDoesNotMatchJava()
-   {
-      assert false;
-   }
-
-   /**
     * In addition to the disposed parameter, a disposal method may declare
     * additional parameters, which may also specify bindings. The container
     * calls Manager.getInstanceToInject() to determine a value for each

Modified: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/simple/definition/SimpleBeanDefinitionTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/simple/definition/SimpleBeanDefinitionTest.java	2009-04-16 15:09:21 UTC (rev 2434)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/simple/definition/SimpleBeanDefinitionTest.java	2009-04-16 15:14:19 UTC (rev 2435)
@@ -1,7 +1,5 @@
 package org.jboss.jsr299.tck.tests.implementation.simple.definition;
 
-import javax.inject.DefinitionException;
-
 import org.hibernate.tck.annotations.SpecAssertion;
 import org.hibernate.tck.annotations.SpecAssertions;
 import org.jboss.jsr299.tck.AbstractJSR299Test;
@@ -119,55 +117,6 @@
       assert !getCurrentManager().resolveByType(Sheep.class).isEmpty();
    }
 
-   @Test(groups = { "stub", "webbeansxml" })
-   @SpecAssertion(section = "3.2.1", id = "r")
-   public void testAdditionalSimpleBeansFromSameClassViaXml()
-   {
-      assert false;
-   }
-
-   @Test(expectedExceptions = DefinitionException.class, groups = { "stub", "webbeansxml" })
-   @SpecAssertion(section = "3.2.4", id = "e")
-   public void testAbstractClassDeclaredInXmlIsNotAllowed()
-   {
-      assert false;
-   }
-
-   @Test(groups = { "stub", "innerClass", "webbeansxml" })
-   @SpecAssertion(section = "3.2.4", id = "da")
-   public void testStaticInnerClassDeclaredInXmlAllowed()
-   {
-      assert false;
-   }
-
-   @Test(expectedExceptions = DefinitionException.class, groups = { "stub", "innerClass", "webbeansxml" })
-   @SpecAssertion(section = "3.2.4", id = "d")
-   public void testNonStaticInnerClassDeclaredInXmlNotAllowed()
-   {
-      assert false;
-   }
-
-   @Test(expectedExceptions = DefinitionException.class, groups = { "stub", "webbeansxml" })
-   @SpecAssertion(section = "3.2.4", id = "c")
-   public void testParameterizedClassDeclaredInXmlIsNotAllowed()
-   {
-      assert false;
-   }
-
-   @Test(expectedExceptions = DefinitionException.class, groups = { "stub", "interceptors", "webbeansxml" })
-   @SpecAssertion(section = "3.2.4", id = "f")
-   public void testClassHasInterceptorInJavaMustHaveInterceptorInXml()
-   {
-      assert false;
-   }
-
-   @Test(expectedExceptions = DefinitionException.class, groups = { "stub", "interceptors", "webbeansxml" })
-   @SpecAssertion(section = "3.2.4", id = "g")
-   public void testClassHasDecoratorInJavaMustHaveDecoratorInXml()
-   {
-      assert false;
-   }
-
    @Test
    @SpecAssertion(section = "3.2.6.1", id = "a")
    public void testInitializerAnnotatedConstructor() throws Exception
@@ -215,34 +164,6 @@
       }.run();
    }
 
-   @Test(groups = { "stub", "webbeansxml" })
-   @SpecAssertion(section = "3.2.6.2", id = "b")
-   public void testImplicitConstructorDeclaredInXmlUsed()
-   {
-      assert false;
-   }
-
-   @Test(groups = { "stub", "webbeansxml" })
-   @SpecAssertion(section = "3.2.6.2", id = "b")
-   public void testEmptyConstructorDeclaredInXmlUsed()
-   {
-      assert false;
-   }
-
-   @Test(expectedExceptions = DefinitionException.class, groups = { "stub", "webbeansxml" })
-   @SpecAssertion(section = "3.2.6.2", id = "c")
-   public void testConstructorDeclaredInXmlDoesNotExist()
-   {
-      assert false;
-   }
-
-   @Test(groups = { "stub", "webbeansxml" })
-   @SpecAssertion(section = "3.2.6.2", id = "d")
-   public void testConstructorDeclaredInXmlIgnoresBindingTypesDeclaredInJava()
-   {
-      assert false;
-   }
-
    @Test
    @SpecAssertion(section = "3.2", id = "fa")
    public void testDependentScopedBeanCanHavePublicField() throws Exception

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-04-16 15:09:21 UTC (rev 2434)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/simple/lifecycle/SimpleBeanLifecycleTest.java	2009-04-16 15:14:19 UTC (rev 2435)
@@ -34,8 +34,7 @@
    @Test(groups = "beanConstruction")
    @SpecAssertions({
      @SpecAssertion(section = "3.2.6.3", id = "a"),
-     @SpecAssertion(section = "2.3.6", id = "d"),
-     @SpecAssertion(section = "6.4", id = "a")
+     @SpecAssertion(section = "2.3.6", id = "d")
    })
    public void testInjectionOfParametersIntoBeanConstructor()
    {
@@ -102,26 +101,6 @@
 
       }.run();      
    }
-
-   @Test(groups = { "ri-broken", "beanLifecycle" })
-   @SpecAssertions({
-      @SpecAssertion(section = "6.2", id = "e")
-   })
-   public void testCreateSetsInitialValuesFromXml() throws Exception
-   {
-      new RunInDependentContext()
-      {
-
-         @Override
-         protected void execute() throws Exception
-         {
-            Farm farmInstance = getCurrentManager().getInstanceByType(Farm.class);
-            assert farmInstance.location != null;
-            assert farmInstance.location.equals("Indiana");
-         }
-
-      }.run();            
-   }
       
    @Test(groups = "beanLifecycle")
    @SpecAssertions({
@@ -137,20 +116,6 @@
       assert getCurrentManager().getInstanceByType(RedSnapper.class) instanceof RedSnapper;
    }
 
-   @Test(groups = { "stub", "beanLifecycle", "interceptors" })
-   @SpecAssertion(section = "6.2", id = "b")
-   public void testCreateBindsInterceptorStack()
-   {
-      assert false;
-   }
-
-   @Test(groups = { "stub", "beanLifecycle", "decorators" })
-   @SpecAssertion(section = "6.2", id = "c")
-   public void testCreateBindsDecoratorStack()
-   {
-      assert false;
-   }
-
    @Test(groups = "injection")
    @SpecAssertions({
       @SpecAssertion(section = "6.4", id = "e"),
@@ -180,7 +145,6 @@
    @SpecAssertions({
      @SpecAssertion(section = "6.2", id = "f"),
      @SpecAssertion(section = "6.3", id = "b"),
-     @SpecAssertion(section = "6.4", id = "j"),
      @SpecAssertion(section = "6.4", id = "k")
    })
    public void testPostConstructPreDestroy() throws Exception
@@ -353,6 +317,7 @@
       new RunInDependentContext()
       {
 
+         @Override
          protected void execute() throws Exception
          {
             getCurrentManager().getInstanceByType(Lorry_Broken.class);
@@ -369,6 +334,7 @@
       new RunInDependentContext()
       {
 
+         @Override
          protected void execute() throws Exception
          {
             getCurrentManager().getInstanceByType(Van_Broken.class);

Modified: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/simple/newSimpleBean/NewSimpleBeanTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/simple/newSimpleBean/NewSimpleBeanTest.java	2009-04-16 15:09:21 UTC (rev 2434)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/simple/newSimpleBean/NewSimpleBeanTest.java	2009-04-16 15:14:19 UTC (rev 2435)
@@ -107,13 +107,6 @@
       assert false;
    }
 
-   @Test(groups = { "stub", "new" })
-   @SpecAssertion(section = "3.2.5", id = "c")
-   public void testNewBeanHasSameInterceptorMethodsAsWrappedBean()
-   {
-      assert false;
-   }
-
    @Test(groups = { "new" })
    @SpecAssertion(section = "review", id = "review")
    public void testNewAnnotationCannotBeExplicitlyDeclared()

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-04-16 15:09:21 UTC (rev 2434)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/inheritance/realization/RealizationTest.java	2009-04-16 15:14:19 UTC (rev 2435)
@@ -71,13 +71,6 @@
       assert getCurrentManager().resolveByType(Dog.class).iterator().next().getScopeType().equals(RequestScoped.class);
    }
 
-   @Test(groups = "stub")
-   @SpecAssertion(section = "4.4.1", id = "ca")
-   public void testRealizedBeanWithProducerMethodHasSameInterceptorBindings()
-   {
-      assert false;
-   }
-
    @Test
    @SpecAssertion(section = "4.4.1", id = "cb")
    public void testRealizedBeanWithProducerFieldHasSameScope()
@@ -122,13 +115,6 @@
    }
 
    @Test(groups = "stub")
-   @SpecAssertion(section = "4.4.1", id = "cb")
-   public void testRealizedBeanWithProducerFieldHasSameInterceptorBindings()
-   {
-      assert false;
-   }
-
-   @Test(groups = "stub")
    @SpecAssertion(section = "4.4.1", id = "d")
    public void testDisposalMethodInherited()
    {

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-04-16 15:09:21 UTC (rev 2434)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/lookup/injection/InjectionTest.java	2009-04-16 15:14:19 UTC (rev 2435)
@@ -1,7 +1,6 @@
 package org.jboss.jsr299.tck.tests.lookup.injection;
 
 import javax.context.ContextNotActiveException;
-import javax.inject.DefinitionException;
 
 import org.hibernate.tck.annotations.SpecAssertion;
 import org.jboss.jsr299.tck.AbstractJSR299Test;
@@ -79,44 +78,8 @@
            assert henHouse.fox.getName().equals("gavin");
          }
       }.run();
-   }   
-
-   @Test(groups = { "stub", "injection", "webbeansxml" })
-   @SpecAssertion(section = "3.8.2", id = "a")
-   public void testInjectFieldsDeclaredInXml()
-   {
-      assert false;
    }
 
-   @Test(groups = { "stub", "injection", "webbeansxml" })
-   @SpecAssertion(section = "3.8.2", id = "b")
-   public void testInjectedFieldDeclaredInXmlIgnoresJavaAnnotations()
-   {
-      assert false;
-   }
-
-   @Test(groups = { "stub", "injection", "webbeansxml" })
-   @SpecAssertion(section = "3.8.2", id = "c")
-   public void testInjectedFieldDeclaredInXmlAssumesCurrent()
-   {
-      assert false;
-   }
-
-   @Test(groups = { "stub", "injection", "webbeansxml" }, expectedExceptions = DefinitionException.class)
-   @SpecAssertion(section = "3.8.2", id = "d")
-   public void testNonexistentFieldDefinedInXml()
-   {
-      assert false;
-   }
-
-   @Test(groups = { "stub", "injection", "webbeansxml" })
-   @SpecAssertion(section = "3.8.2", id = "e")
-   public void testInjectFieldsDeclaredInXmlAndJava()
-   {
-      assert false;
-   }
-   
-
    @Test(groups = {"injection", "underInvestigation"})
    @SpecAssertion(section = "3.8", id = "aa")
    public void testInjectingStaticField()

Deleted: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/xml/declaration/bean/BeanDeclarationTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/xml/declaration/bean/BeanDeclarationTest.java	2009-04-16 15:09:21 UTC (rev 2434)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/xml/declaration/bean/BeanDeclarationTest.java	2009-04-16 15:14:19 UTC (rev 2435)
@@ -1,68 +0,0 @@
-package org.jboss.jsr299.tck.tests.xml.declaration.bean;
-
-import javax.inject.DefinitionException;
-
-import org.hibernate.tck.annotations.SpecAssertion;
-import org.jboss.jsr299.tck.AbstractJSR299Test;
-import org.jboss.testharness.impl.packaging.Artifact;
-import org.testng.annotations.Test;
-
- at Artifact
-public class BeanDeclarationTest extends AbstractJSR299Test
-{
-   @Test(groups = { "stub", "webbeansxml" })
-   @SpecAssertion(section = "9.5", id = "a")
-   public void testDirectRootChildren()
-   {
-      assert false;
-   }
-
-   @Test(groups = { "stub", "webbeansxml" })
-   @SpecAssertion(section = "9.5", id = "b")
-   public void testDeclaredJavaType()
-   {
-      assert false;
-   }
-
-   @Test(groups = { "stub", "webbeansxml" })
-   @SpecAssertion(section = "9.5", id = "c")
-   public void testIsElementJmsResource()
-   {
-      assert false;
-   }
-
-   @Test(groups = { "stub", "webbeansxml" })
-   @SpecAssertion(section = "9.5", id = "d")
-   public void testIsElementResource()
-   {
-      assert false;
-   }
-
-   @Test(groups = { "stub", "webbeansxml" })
-   @SpecAssertion(section = "9.5", id = "e")
-   public void testIsElementSessionBean()
-   {
-      assert false;
-   }
-
-   @Test(groups = { "stub", "webbeansxml" })
-   @SpecAssertion(section = "9.5", id = "f")
-   public void testIsElementSimpleBean()
-   {
-      assert false;
-   }
-
-   @Test(expectedExceptions = DefinitionException.class, groups = { "stub", "webbeansxml" })
-   @SpecAssertion(section = "9.5", id = "g")
-   public void testDefinitionErrorInWebbeansXml()
-   {
-      assert false;
-   }
-
-   @Test(groups = { "stub", "webbeansxml" })
-   @SpecAssertion(section = "9.5", id = "h")
-   public void testInlineBeanDeclaration()
-   {
-      assert false;
-   }
-}

Modified: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/xml/metadata/XmlBasedMetadataTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/xml/metadata/XmlBasedMetadataTest.java	2009-04-16 15:09:21 UTC (rev 2434)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/xml/metadata/XmlBasedMetadataTest.java	2009-04-16 15:14:19 UTC (rev 2435)
@@ -27,7 +27,6 @@
 {
    @Test
    @SpecAssertions({
-      @SpecAssertion(section="9", id="a"),
       @SpecAssertion(section="9", id="b"),
       @SpecAssertion(section="9", id="c"),
       @SpecAssertion(section="9", id="d"),

Modified: tck/trunk/impl/src/main/resources/tck-audit.xml
===================================================================
--- tck/trunk/impl/src/main/resources/tck-audit.xml	2009-04-16 15:09:21 UTC (rev 2434)
+++ tck/trunk/impl/src/main/resources/tck-audit.xml	2009-04-16 15:14:19 UTC (rev 2435)
@@ -27,10 +27,6 @@
       <text>A bean comprises of an optional bean name</text>
     </assertion>
     
-    <assertion id="f">
-      <text>A bean comprises of a set of interceptor bindings</text>
-    </assertion>
-    
     <assertion id="g">
       <text>A bean comprises of a bean implementation</text>
     </assertion>
@@ -156,10 +152,6 @@
   
   <section id="2.3.4" title="Declaring the bindings of a bean using XML">
   
-    <assertion id="a">
-      <text>If a bean is declared in beans.xml, bindings may be specified using the binding type names</text>
-    </assertion>
-  
   </section>
   
   <section id="2.3.5" title="Specifying bindings of an injected field">
@@ -172,13 +164,6 @@
       <text>A bean may only be injected to an injection point if it has all the bindings of the injection point</text>
     </assertion>
     
-    <assertion id="c">
-      <text>For a bean defined in XML, the bindings of a field may be specified using XML</text>
-    </assertion>
-    
-    <assertion id="d">
-      <text>When the bindings of a field are specified using XML, any binding annotations of the field are ignored</text>
-    </assertion>
   </section>
   
   <section id="2.3.6" title="Specifying bindings of a method or constructor parameter">
@@ -197,14 +182,7 @@
     <assertion id="d">
       <text>Binding types may be applied to parameters of bean constructors (see Chapter 3, Bean implementation) to determine the bean instance that is passed when the method is called by the container</text>
     </assertion>
-    
-    <assertion id="e">
-      <text>For a bean defined in XML, the bindings of a method parameter may be specified using XML</text>
-    </assertion>
-    
-    <assertion id="f">
-      <text>When the bindings of a parameter are specified using XML, any binding annotations of the parameter are ignored</text>
-    </assertion>
+
   </section>
   
   <section id="2.4" title="Scopes">
@@ -274,22 +252,12 @@
   </section>
   
   <section id="2.4.4" title="Declaring the bean scope using XML">
-    <assertion id="a">
-      <text>If the bean is declared in beans.xml, the scope may be specified using the scope annotation type name</text>
-    </assertion>
     
-    <assertion id="b">
-      <text>If more than one scope type is specified in XML, a |DefinitionException| is thrown by the container at deployment time</text>
-    </assertion>
-    
-    <assertion id="c">
-      <text>A scope type may be specified using a stereotype declared in XML, as defined in Section 2.7.3, "Declaring the stereotypes for a bean using XML"</text>
-    </assertion>
   </section>
   
   <section id="2.4.5" title="Default scope">
     <assertion id="a">
-      <text>When no scope is explicitly declared by annotating the bean class or producer method or field, or by using XML, the scope of a bean is defaulted</text>
+      <text>When no scope is explicitly declared by annotating the bean class or producer method or field, ~or by using XML~, the scope of a bean is defaulted</text>
     </assertion>
     
     <assertion id="b">
@@ -396,17 +364,7 @@
   </section>
   
   <section id="2.5.4" title="Declaring the deployment type of a bean using XML">
-    <assertion id="a">
-      <text>When a bean is declared in beans.xml, the deployment type may be specified using a tag with the annotation type name</text>
-    </assertion>
-    
-    <assertion id="b">
-      <text>If more than one deployment type is specified in XML, a |DefinitionException| is thrown by the container at deployment time</text>
-    </assertion>
-    
-    <assertion id="c">
-      <text>A deployment type may be specified using a stereotype declared in XML, as defined in Section 2.7.3, "Declaring the stereotypes for a bean using XML".</text>
-    </assertion>
+   
   </section>
   
   <section id="2.5.5" title="Default deployment type">
@@ -477,13 +435,6 @@
   
   <section id="2.6.2" title="Declaring the bean name using XML">
     
-    <assertion id="a">
-      <text>If the bean is declared in beans.xml, the name may be specified using |&lt;Named&gt;|</text>
-    </assertion>
-    
-    <assertion id="b">
-      <text>If the |&lt;Named&gt;| element is empty, the default name is assumed</text>
-    </assertion>
   </section>
   
   <section id="2.6.3" title="Default bean names">
@@ -500,10 +451,6 @@
       <text>A default name must be assigned by the container when a producer field of a bean defined using annotations declares a |@Named| annotation and no name is explicitly specified by the value member</text>
     </assertion>
     
-    <assertion id="d">
-      <text>A default name must be assigned by the container when an empty |&lt;Named&gt;| element is specified by a bean defined in XML</text>
-    </assertion>
-    
     <assertion id="e">
       <text>A default name must be assigned by the container when a bean declares a stereotype that declares an empty |@Named| annotation, and the bean does not explicitly specify a name.</text>
     </assertion>
@@ -512,7 +459,7 @@
   <section id="2.6.4" title="Beans with no name">
   
     <assertion id="a">
-      <text>If neither |&lt;Named&gt;| nor |@Named| is specified, by the bean or its stereotypes, a bean has no name</text>
+      <text>If ~neither |&lt;Named&gt;| nor~ |@Named| is specified, by the bean or its stereotypes, a bean has no name</text>
     </assertion>
   </section>
   
@@ -584,18 +531,6 @@
   
   <section id="2.7.1.2" title="Specifying interceptor bindings for a stereotype">
   
-    <assertion id="a">
-      <text>A stereotype may declare zero interceptor bindings</text>
-    </assertion>
-    
-    <assertion id="b">
-      <text>A stereotype may declare one interceptor binding</text>
-    </assertion>
-    
-    <assertion id="c">
-      <text>A stereotype may declare multiple interceptor bindings</text>
-    </assertion>
-  
   </section>
   
   <section id="2.7.1.3" title="Specifying name defaulting for a stereotype">
@@ -676,9 +611,7 @@
   </section>
   
   <section id="2.7.3" title="Declaring the stereotypes for a bean using XML">
-    <assertion id="a">
-      <text>If the bean is declared in beans.xml, stereotypes may be declared using the stereotype annotation type name</text>
-    </assertion>
+
   </section>
   
   <section id="2.7.4" title="Stereotype restrictions">
@@ -730,18 +663,6 @@
       <text>The bean class of a simple bean may not be an abstract class, ~unless the simple bean is a decorator~</text>
     </assertion>
     
-    <assertion id="cb">
-      <text>The bean class of a simple bean may not be an abstract class, _unless the simple bean is a decorator_</text>
-    </assertion>
-    
-    <assertion id="d">
-      <text>If the bean class of a simple bean is annotated with both the |@Interceptor| and |@Decorator| stereotypes, a |DefinitionException| is thrown by the container at deployment time.</text>
-    </assertion>
-    
-    <assertion id="e">
-      <text>Multiple simple beans may share the same bean class. This occurs when beans are defined using XML. Only one simple bean per bean class may be defined using annotations.</text>
-    </assertion>
-    
     <assertion id="fa">
       <text>If a simple bean has a public field, it must have scope |@Dependent|.</text>
       <note>Check that a dependent scoped bean with a public field does work</note>
@@ -772,9 +693,6 @@
     <assertion id="cc">
       <text>A top-level Java class can be a simple bean if it is static inner class</text>
     </assertion>
-    <assertion id="da">
-      <text>A top-level abstract Java class is a simple bean if it is annotated |@Decorator|.</text>
-    </assertion>
     <assertion id="e">
       <text>A top-level Java class is not a simple bean if it is annotated with the JPA |@Entity| annotation</text>
     </assertion>
@@ -814,9 +732,6 @@
     <assertion id="q">
       <text>A top-level Java class is only a simple bean if it has an appropriate constructor - a constructor annotated |@Initializer|</text>
     </assertion>
-    <assertion id="r">
-      <text>Additional simple beans with the same bean class may be defined using XML, by specifying the class in |beans.xml|.</text>    
-    </assertion>
     
   </section>
   
@@ -857,40 +772,7 @@
   </section>
   
   <section id="3.2.4" title="Declaring a simple bean using XML">
-    <assertion id="a">
-      <text>Simple beans may be declared in |beans.xml| using the bean class name</text>
-    </assertion>
-    
-    <assertion id="b">
-      <text>A simple bean may even be declared at any injection point declared in XML, as defined in Section 9.9, "Inline bean declarations", in which case no bindings are specified.</text>
-    </assertion>
-    
-    <assertion id="c">
-      <text>If the bean class of a simple bean defined in XML is a parameterized type , a |DefinitionException| is thrown by the container at deployment time.</text>
-    </assertion>
-    
-    <assertion id="d">
-      <text>If the bean class of a simple bean defined in XML is a non-static inner class, a |DefinitionException| is thrown by the container at deployment time.</text>
-    </assertion>
-    
-    <assertion id="da">
-      <text>If the bean class of a simple bean defined in XML is a static inner class, a |DefinitionException| is not thrown.</text>
-    </assertion>
-    
-    <assertion id="e">
-      <text>If the bean class of a simple bean defined in XML is an abstract class, and the simple bean is not a decorator, a |DefinitionException|
-is thrown by the container at deployment time</text>
-    </assertion>
-    
-    <assertion id="f">
-      <text>If the bean class of a simple bean defined in XML is annotated @Interceptor, then the bean must be explicitly declared as an interceptor in XML, as defined in Section A.3.5.2, "Declaring an interceptor using XML". If a simple bean defined in XML has a bean class annotated |@Interceptor| and is not declared as an interceptor in XML, a |DefinitionException| is
-thrown by the container at deployment time.</text>
-    </assertion>
-    
-    <assertion id="g">
-      <text>If the bean class of a simple bean defined in XML is annotated @Interceptor, then the bean must be explicitly declared as an interceptor in XML, as defined in Section A.3.5.2, "Declaring an interceptor using XML". If a simple bean defined in XML has a bean class annotated |@Interceptor| and is not declared as an interceptor in XML, a |DefinitionException| is
-thrown by the container at deployment time.</text>
-    </assertion>
+   
   </section>
   
   <section id="3.2.5" title="Simple beans with the @New binding">
@@ -906,9 +788,6 @@
     <assertion id="bc">
       <text>Every class that satisfies the requirements of Section 3.2.1, "Which Java classes are beans?" is a bean, with scope, deployment type and bindings defined using annotations.  Additionally, for each such simple bean, a second simple bean exists which has _the same injected fields defined by annotations_.</text>
     </assertion>
-    <assertion id="c">
-      <text>Every class that satisfies the requirements of Section 3.2.1, "Which Java classes are beans?" is a bean, with scope, deployment type and bindings defined using annotations.  Additionally, for each such simple bean, a second simple bean exists which has _the same interceptor bindings defined by annotations_.</text>
-    </assertion>
     <assertion id="d">
       <text>Every class that satisfies the requirements of Section 3.2.1, "Which Java classes are beans?" is a bean, with scope, deployment type and bindings defined using annotations.  Additionally, for each such simple bean, a second simple bean exists which has _scope @Dependent_.</text>
     </assertion>
@@ -973,22 +852,6 @@
   
   <section id="3.2.6.2" title="Declaring a bean constructor using XML">
   
-    <assertion id="a">
-      <text>For a simple bean defined using XML, the bean constructor may be specified by listing the parameter types of the constructer, in order, as direct children of the element that declares the bean</text>
-    </assertion>
-    
-    <assertion id="b">
-      <text>If a simple bean defined using XML does not explicitly declare constructor parameters in XML, the constructor that accepts no parameters is the bean constructor</text>
-    </assertion>
-    
-    <assertion id="c">
-      <text>If a simple bean declared in XML does not have a constructor with the parameter types declared in XML, a |DefinitionException| is thrown by the container at deployment time</text>
-    </assertion>
-    
-    <assertion id="d">
-      <text>When a bean constructor is declared in XML, the container ignores binding annotations applied to Java constructor parameters</text>
-    </assertion>
-  
   </section>
   
   <section id="3.2.6.3" title="Bean constructor parameters">
@@ -1015,10 +878,7 @@
     <assertion id="d">
       <text>If the bean class of X does not directly extend the bean class of another simple bean, a |DefinitionException| is thrown by the container at deployment time.</text>
     </assertion>
-    
-    <assertion id="e">
-      <text>If a simple bean X defined in XML declares the |&lt;Specializes&gt;| element, then the bean class of X must be the bean class of another simple bean Y defined using annotations. Then X inherits all bindings of Y, and if Y has a name, X has the same name as Y</text>
-    </assertion>
+
   </section>
   
   <section id="3.2.8" title="Default name for a simple bean">
@@ -1045,17 +905,6 @@
       <text>If a session bean specifies an illegal scope, a |DefinitionException| is thrown by the container at deployment time</text>
     </assertion>
     
-    <assertion id="e">
-      <text>Note that multiple session beans may share the same bean class. This occurs when beans are defined using XML</text>
-    </assertion>
-    
-    <assertion id="f">
-      <text>If the bean class of a session bean is annotated |@Interceptor|, a |DefinitionException| is thrown by the container at deployment time</text>
-    </assertion>
-
-    <assertion id="g">
-      <text>If the bean class of a session bean is annotated |@Decorator|, a |DefinitionException| is thrown by the container at deployment time</text>
-    </assertion>
   </section>
   
   <section id="3.3.1" title="EJB remove methods of session beans">
@@ -1142,21 +991,7 @@
   </section>
   
   <section id="3.3.5" title="Declaring a session bean using XML">
-    <assertion id="a">
-      <text>Session beans may be declared in |beans.xml| using the bean class name (for EJBs defined using a component-defining annotation) or bean class and EJB name (for EJBs defined in |ejb-jar.xml|)</text>
-    </assertion>
-    
-    <assertion id="b">
-      <text>The ejbName attribute declares the EJB name of an EJB defined in |ejb-jar.xml|</text>
-    </assertion>
-    
-    <assertion id="c">
-      <text>If an entity bean class is declared in XML, a |DefinitionException| is thrown by the container at deployment time</text>
-    </assertion>
-
-    <assertion id="d">
-      <text>If a message-driven bean class is declared in XML, a |DefinitionException| is thrown by the container at deployment time</text>
-    </assertion>
+   
   </section>
   
   <section id="3.3.6" title="Session beans with the @New binding">
@@ -1174,10 +1009,6 @@
       <text>Every EJB that satisfies the requirements of Section 3.3.2, "Which EJBs are beans?" is a bean, with scope, deployment type and bindings defined using annotations. Additionally, for each such session bean, a second bean exists which has the initializer methods and injected fields defined by annotations</text>
     </assertion>
     
-    <assertion id="c">
-      <text>Every EJB that satisfies the requirements of Section 3.3.2, "Which EJBs are beans?" is a bean, with scope, deployment type and bindings defined using annotations. Additionally, for each such session bean, a second bean exists which has the same interceptor bindings defined by annotations</text>
-    </assertion>
-    
     <assertion id="d">
       <text>Every EJB that satisfies the requirements of Section 3.3.2, "Which EJBs are beans?" is a bean, with scope, deployment type and bindings defined using annotations. Additionally, for each such session bean, a second bean exists which has scope |@Dependent|.</text>
     </assertion>
@@ -1232,10 +1063,7 @@
     <assertion id="d">
       <text>If the bean class of X does not directly extend the bean class of another session bean, a |DefinitionException| is thrown by the container at deployment time</text>
     </assertion>
-    
-    <assertion id="e">
-      <text>If a session bean X defined in XML declares the |&lt;Specializes&gt;| element, then the bean class of X must be the bean class of another session bean Y defined using annotations. Then X inherits all bindings of Y, and if Y has a name, X has the same name as Y.</text>
-    </assertion>
+
   </section>
   
   <section id="3.3.8" title="Default name for a session bean">
@@ -1359,18 +1187,7 @@
   </section>
   
   <section id="3.4.3" title="Declaring a producer method using XML">
-  
-    <assertion id="a">
-      <text>For a bean defined in XML, a producer method may be declared using the method name, the |&lt;Produces&gt;| element, the return type, and the parameter types of the method</text>
-    </assertion>
-    
-    <assertion id="b">
-      <text>When a producer method is declared in XML, the container ignores binding annotations applied to the Java method or method parameters</text>
-    </assertion>
-    
-    <assertion id="c">
-      <text>If the bean class of a bean declared in XML does not have a method with the name and parameter types declared in XML, a |DefinitionException| is thrown by the container at deployment time</text>
-    </assertion>
+ 
   </section>
   
   <section id="3.4.4" title="Producer method parameters">
@@ -1465,17 +1282,6 @@
   
   <section id="3.4.9" title="Declaring a disposal method using XML">
   
-    <assertion id="a">
-      <text>For a bean defined in XML, a disposal method may be declared using the method name, the &lt;Disposes&gt; element, and the parameter types of the method</text>
-    </assertion>
-    
-    <assertion id="b">
-      <text>When a disposal method is declared in XML, the container ignores binding annotations applied to the Java method parameter</text>
-    </assertion>
-    
-    <assertion id="c">
-      <text>If the bean class of a bean declared in XML does not have a method with the name and parameter types declared in XML, a |DefinitionException| is thrown by the container at deployment time</text>
-    </assertion>
   </section>
   
   <section id="3.4.10" title="Disposal method parameters">
@@ -1591,18 +1397,6 @@
   
   <section id="3.5.3" title="Declaring a producer field using XML">
   
-    <assertion id="a">
-      <text>For a bean defined in XML, a producer field may be declared using the field name, the |&lt;Produces&gt;| element, and the type</text>
-    </assertion>
-    
-    <assertion id="b">
-      <text>When a producer field is declared in XML, the container ignores binding annotations applied to the Java field</text>
-    </assertion>
-    
-    <assertion id="c">
-      <text>If the bean class of a bean declared in XML does not have a field with the name and type declared in XML, a |DefinitionException| is thrown by the container at deployment time</text>
-    </assertion>
-  
   </section>
   
   <section id="3.5.4" title="Default name for a producer field">
@@ -1945,10 +1739,7 @@
     <assertion id="h">
       <text>If a field is a producer field, it is not an injected field</text>
     </assertion>
-
-    <assertion id="i">
-      <text>If a field is a decorator delegate attribute, it is not an injected field</text>
-    </assertion>
+    
   </section>
   
   <section id="3.8.1" title="Declaring an injected field using annotations">
@@ -1959,26 +1750,7 @@
   </section>
   
   <section id="3.8.2" title="Declaring an injected field using XML">
-    <assertion id="a">
-      <text>For bean defined in XML, an injected field may be declared using the field name and a child element representing the type of the field</text>
-    </assertion>
-    
-    <assertion id="b">
-      <text>When an injected field is declared in XML, the container ignores binding annotations applied to the Java field</text>
-    </assertion>
-    
-    <assertion id="c">
-      <text>If the type element does not declare any binding, the default binding |@Current| is assumed</text>
-    </assertion>
-    
-    <assertion id="d">
-      <text>If the bean class of a bean declared in XML does not have a field with the name and type declared in XML, a |DefinitionException| is thrown by the container at deployment time</text>
-    </assertion>
-    
-    <assertion id="e">
-      <text>Check fields declared in XML and Java injected</text>
-      <note>Sanity check</note>
-    </assertion>
+  
   </section>
   
   <section id="3.9" title="Initializer methods">
@@ -2049,17 +1821,6 @@
   
   <section id="3.9.2" title="Declaring an initializer method using XML">
   
-    <assertion id="a">
-      <text>For a bean defined in XML, an initializer method may be declared using the method name, the |&lt;Initializer&gt;| element and the parameter types of the method</text>
-    </assertion>
-    
-    <assertion id="b">
-      <text>When an initializer method is declared in XML, the container ignores binding annotations applied to the Java method parameters</text>
-    </assertion>
-    
-    <assertion id="c">
-      <text>If the bean class of a bean declared in XML does not have a method with the name and parameter types declared in XML, a |DefinitionException| is thrown by the container at deployment time</text>
-    </assertion>
   </section>
   
   <section id="3.9.3" title="Initializer method parameters">
@@ -2093,10 +1854,6 @@
       <text>|@PreDestroy| callbacks are provided by the container when annotations are applied to the bean class of a simple bean</text>
     </assertion>
     
-    <assertion id="g">
-      <text>Interception, as defined in |javax.interceptor| is provided by the container when annotations are applied to the bean class of a simple bean</text>
-    </assertion>
-    
     <assertion id="h">
       <text>|@PersistenceContext(type=EXTENDED)| is not supported for simple beans</text>
     </assertion>
@@ -2131,34 +1888,22 @@
       <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>
     </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 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>
     </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>
-    </assertion>     
+    </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 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>
     </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>          
     
-    <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>    
@@ -2166,11 +1911,7 @@
     <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 Y does not declare a scope type.</text>
     </assertion>
@@ -2233,56 +1974,8 @@
 
     <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>
-    </assertion>
+    </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" testable="false">
       <text>For annotations defined by the bean specification, all built-in _scope types_ are declared |@Inherited|</text>
       <note>sigtest</note>
@@ -2359,23 +2052,7 @@
     <assertion id="bbd">
       <text>For class X which is extended _indirectly_ by the bean class of a _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>
-       
-    <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 Y does not override the method x().</text>
-    </assertion>
     
-    <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 Y does not override the method x().</text>
-    </assertion>
-    
-    <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="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>
@@ -2440,133 +2117,6 @@
       <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 Y does not define 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 does not define 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">
@@ -2591,10 +2141,6 @@
       <text>A bean declared using annotations may declare that it specializes a lower-priority bean using the |@Specializes| annotation</text>
     </assertion>
     
-    <assertion id="b">
-      <text>A bean declared using XML may declare that it specializes a lower-priority bean using the |&lt;Specializes&gt;| element</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>
@@ -2623,7 +2169,7 @@
   
   <section id="4.3.2" title="Direct and indirect specialization">
     <assertion id="a" testable="false">
-      <text>The |@javax.inject.Specializes| annotation or |&lt;Specializes&gt;| XML element is used to indicate that one bean directly specializes another bean</text>
+      <text>The |@javax.inject.Specializes| annotation ~or |&lt;Specializes&gt;| XML element~ is used to indicate that one bean directly specializes another bean</text>
       <note>A statement of intent</note>
     </assertion>
     
@@ -2660,11 +2206,6 @@
       <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>
-    
-    <assertion id="b" testable="false">
-      <text>Any bean that extends a generic class may declare that the generic class is the bean class, in the case of a bean declared using XML and then explicitly declare that it realizes the generic class.</text>
-      <note>A statement of intent</note>
-    </assertion>
   
   </section>
   
@@ -2674,11 +2215,6 @@
       <note>A statement of intent</note>
     </assertion>
     
-    <assertion id="b" testable="false">
-      <text>A bean declared using XML may declare that it realizes a generic class using the |&lt;Realizes&gt;| element.</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>
@@ -2824,10 +2360,6 @@
       <text>The |javax.inject.manager.InjectionPoint.getBindings()| method returns the declared bindings of the injection point.</text>
     </assertion>
     
-    <assertion id="bd">
-      <text>An injection point declared in XML has it's bindings determined according to Section 9.10, "Specifying bean types and bindings"</text>
-    </assertion>
-    
     <assertion id="ca">
       <text>The |javax.inject.manager.InjectionPoint.getMember()| method returns the |Field| object in the case of field injection</text>
     </assertion>
@@ -3323,72 +2855,17 @@
       <text>The container is required to perform dependency injection for session bean instances created by the container to receive timeouts</text>
     </assertion>
     
-    <assertion id="f">
-      <text>The container is required to create interceptor stacks for session bean instances obtained directly from JNDI</text>
-    </assertion>
-    
-    <assertion id="g">
-      <text>The container is required to create interceptor stacks for session bean instances injected using |@EJB|</text>
-    </assertion>
-    
-    <assertion id="h">
-      <text>The container is required to create interceptor stacks for session bean instances injected using |@Resource|</text>
-    </assertion>
-    
-    <assertion id="i">
-      <text>The container is required to create interceptor stacks for session bean instances created by the container to receive remote method calls</text>
-    </assertion>
-    
-    <assertion id="j">
-      <text>The container is required to create interceptor stacks for session bean instances created by the container to receive timeouts</text>
-    </assertion>
-    
-    <assertion id="k">
-      <text>The container is required to create decorator stacks for session bean instances obtained directly from JNDI</text>
-    </assertion>
-    
-    <assertion id="l">
-      <text>The container is required to create decorator stacks for session bean instances injected using |@EJB|</text>
-    </assertion>
-    
-    <assertion id="m">
-      <text>The container is required to create decorator stacks for session bean instances injected using |@Resource|</text>
-    </assertion>
-    
-    <assertion id="n">
-      <text>The container is required to create decorator stacks for session bean instances created by the container to receive remote method calls</text>
-    </assertion>
-    
-    <assertion id="o">
-      <text>The container is required to create decorator stacks for session bean instances created by the container to receive timeouts</text>
-    </assertion>
-    
     <assertion id="p">
       <text>For the purposes of dependency injection, the container must treat non-contextual instances of session beans as instances of the most specialized bean that specializes the bean with binding |@New| and deployment type |@Standard| defined in Section 3.3.6, "Session beans with the |@New| binding"</text>
     </assertion>
     
-    <assertion id="q">
-      <text>For the purposes of interceptor stack creation, the container must treat non-contextual instances of session beans as instances of the most specialized bean that specializes the bean with binding |@New| and deployment type |@Standard| defined in Section 3.3.6, "Session beans with the |@New| binding"</text>
-    </assertion>
-    
-    <assertion id="r">
-      <text>For the purposes of decorator stack creation, the container must treat non-contextual instances of session beans as instances of the most specialized bean that specializes the bean with binding |@New| and deployment type |@Standard| defined in Section 3.3.6, "Session beans with the |@New| binding"</text>
-    </assertion>
-    
   </section>
   
   <section id="5.12.2" title="Message-driven beans">
-    <assertion id="a">
+    
+     <assertion id="a">
       <text>The container performs dependency injection for message-driven bean instances according to the bean class annotations</text>
     </assertion>
-    
-    <assertion id="b">
-      <text>The container creates interceptor stacks for message-driven bean instances according to the bean class annotations</text>
-    </assertion>
-    
-    <assertion id="c">
-      <text>The container creates decorator stacks for message-driven bean instances according to the bean class annotations</text>
-    </assertion>
   </section>
   
   <section id="5.12.3" title="Servlets">
@@ -3460,22 +2937,11 @@
       <text>The |Contextual.create()| method obtains an instance of the bean</text>
     </assertion>
     
-    <assertion id="b">
-      <text>The |Contextual.create()| method creates the interceptor stacks and binds them to the instance</text>
-    </assertion>
-    
-    <assertion id="c">
-      <text>The |Contextual.create()| method creates the decorator stacks and binds them to the instance</text>
-    </assertion>
-    
     <assertion id="d">
       <text>The |Contextual.create()| method injects any dependencies</text>
     </assertion>
+
     
-    <assertion id="e">
-      <text>The |Contextual.create()| method sets any initial field values defined in XML</text>
-    </assertion>
-    
     <assertion id="f">
       <text>The |Contextual.create()| method calls the |@PostConstruct| method, if necessary</text>
     </assertion>
@@ -3513,9 +2979,6 @@
   </section>
   
   <section id="6.4" title="Lifecycle of simple beans">
-    <assertion id="a">
-      <text>When the |create()| method of the |Bean| object that represents a simple bean is called, the container first calls the bean constructor to obtain an instance of the bean. For each constructor parameter, the container passes the object returned by |Manager.getInstanceToInject()|. The container is permitted to return an instance of a container-generated subclass of the bean class, allowing interceptor and decorator bindings</text>
-    </assertion>
     
     <assertion id="b">
       <text>When the |create()| method of the |Bean| object that represents a simple bean is called, after the bean constructor is called the container next initializes the values of any attributes annotated |@EJB|</text>
@@ -3533,27 +2996,6 @@
       <text>When the |create()| method of the |Bean| object that represents a simple bean is called, after the |@EJB|, |@PersistenceContext| and |@Resource| attributes are initialized the container initializes the values of all injected fields. For each injected field, the container sets the value to the object returned by |Manager.getInstanceToInject()|.</text>
     </assertion>
     
-    <assertion id="f">
-      <text>When the |create()| method of the |Bean| object that represents a simple bean is called, after injected fields are initialized the container initializes the values of any fields with initial values specified in XML, as defined in Section 9.5.5, "Field initial value declarations".</text>
-    </assertion>
-    
-    <assertion id="g">
-      <text>When the |create()| method of the |Bean| object that represents a simple bean is called, after the values of fields with initial values specified in XML are initialized the container calls all initializer methods. For each initializer method parameter, the container passes the object
-returned by |Manager.getInstanceToInject()|</text>
-    </assertion>
-    
-    <assertion id="h">
-      <text>When the |create()| method of the |Bean| object that represents a simple bean is called, after all initializer methods are called the container builds the interceptor stacks for the instance as defined in Section A.3.10 "Interceptor stack creation"</text>
-    </assertion>
-    
-    <assertion id="i">
-      <text>When the |create()| method of the |Bean| object that represents a simple bean is called, after all initializer methods are called the container builds the decorator stacks for the instance as defined in Section A.5.8 "Decorator stack creation"</text>
-    </assertion>
-    
-    <assertion id="j">
-      <text>When the |create()| method of the |Bean| object that represents a simple bean is called, after the interceptor and decorator stacks are built the container calls the |@PostConstruct| method, if any</text>
-    </assertion>
-    
     <assertion id="k">
       <text>When the |destroy()| method of a |Bean| object is called, the container calls the |@PreDestroy| method, if any</text>
     </assertion>
@@ -3857,22 +3299,10 @@
       <text>When the EJB container creates a new instance of an EJB, after Java EE injection has been performed and before the |@PostConstruct| callback occurs the container must initialize the values of all injected fields .  For each injected field, the container sets the value to the object returned by |Manager.getInstanceToInject()|</text>
     </assertion>
     
-    <assertion id="b">
-      <text>When the EJB container creates a new instance of an EJB, after Java EE injection has been performed and before the |@PostConstruct| callback occurs the container must initialize the values of any fields with initial values specified in XML, as defined in Section 9.5.5, "Field initial value declarations"</text>
-    </assertion>
-    
     <assertion id="c">
       <text>When the EJB container creates a new instance of an EJB, after Java EE injection has been performed and before the |@PostConstruct| callback occurs the container calls all initializer methods. For each initializer method parameter, the container passes the object returned by |Manager.getInstanceToInject()|</text>
     </assertion>
     
-    <assertion id="d">
-      <text>When the EJB container creates a new instance of an EJB, after Java EE injection has been performed and before the |@PostConstruct| callback occurs the container builds the interceptor stacks for the instance as defined in Section A.3.10, "Interceptor stack creation" and Section A.5.8, "Decorator stack creation" and binds them to the instance</text>
-    </assertion>
-    
-    <assertion id="e">
-      <text>When the EJB container creates a new instance of an EJB, after Java EE injection has been performed and before the |@PostConstruct| callback occurs the container builds the decorator stacks for the instance as defined in Section A.3.10, "Interceptor stack creation" and Section A.5.8, "Decorator stack creation" and binds them to the instance</text>
-    </assertion>
-    
     <assertion id="f">
       <text>When the EJB container removes an instance of an EJB, the container destroys all dependent objects, after the |@PreDestroy| callback completes</text>
     </assertion>
@@ -4115,17 +3545,7 @@
   </section>
   
   <section id="7.5.3" title="Declaring an observer method using XML">
-    <assertion id="a">
-      <text>For a beans defined in XML, an observer method may be declared using the method name, the |&lt;Observes&gt;| element, and the parameter types of the method</text>
-    </assertion>
     
-    <assertion id="b">
-      <text>When an observer method is declared in XML, the container ignores binding annotations applied to the Java method parameters</text>
-    </assertion>
-    
-    <assertion id="c">
-      <text>If the bean class of a bean declared in XML does not have a method with parameters that match those declared in XML, a |DefinitionException| is thrown by the container at deployment time</text>
-    </assertion>
   </section>
   
   <section id="7.5.4" title="Observer method parameters">
@@ -4142,10 +3562,7 @@
     <assertion id="b">
       <text>A conditional observer methods may be declared by annotating the event parameter with the |@javax.event.IfExists| annotation</text>
     </assertion>
-    
-    <assertion id="c">
-      <text>Conditional observer methods may be declared in XML by adding a child |&lt;IfExists&gt;| element to the |&lt;Observes&gt;| element</text>
-    </assertion>
+
   </section>
   
   <section id="7.5.6" title="Transactional observer methods">
@@ -4169,10 +3586,6 @@
       <text>An after failure observer method is called during the after completion phase of the transaction, only when the transaction fails</text>
     </assertion>
     
-    <assertion id="f">
-      <text>A transactional observer method may be declared by ~annotating the event parameter of the observer method~ or in XML by a child element of the &lt;Observes&gt; element</text>
-    </assertion>
-    
     <assertion id="g">
       <text>A transactional observer method may be declared by annotating the event parameter of the observer method or ~in XML by a child element of the |&lt;Observes&gt;| element~</text>
     </assertion>
@@ -4199,9 +3612,6 @@
   </section>
   
   <section id="7.5.7" title="Asynchronous observer methods">
-    <assertion id="a">
-      <text>An asynchronous observer method may be declared by ~annotating the event parameter of the observer method |@javax.event.Asynchronously|~ or in XML by a child |&lt;Asynchronously&gt;| element of the |&lt;Observes&gt;| element</text>
-    </assertion>
     
     <assertion id="b">
       <text>An asynchronous observer method may be declared by annotating the event parameter of the observer method |@javax.event.Asynchronously| or ~in XML by a child |&lt;Asynchronously&gt;| element of the |&lt;Observes&gt;| element~</text>
@@ -4625,10 +4035,6 @@
     <assertion id="m">
       <text>The |@Dependent| scope is inactive except when the container is injecting dependencies of a servlet</text>
     </assertion>
-    
-    <assertion id="n">
-      <text>The |@Dependent| scope is even active during invocation of interceptors and decorators of observer methods and interceptors and decorators of |@PostConstruct| and |@PreDestroy| callbacks</text>
-    </assertion>
   
   </section>
   
@@ -4638,9 +4044,6 @@
       <note>A statement of intent</note>
     </assertion>
     
-    <assertion id="b">
-      <text>Instances of interceptors or decorators with scope |@Dependent| are also dependent objects of the bean they intercept or decorate</text>
-    </assertion>
   </section>
   
   <section id="8.3.2" title="Dependent object destruction">
@@ -5075,9 +4478,6 @@
   </section>
   
   <section id="9" title="XML based metadata">
-    <assertion id="a">
-      <text>XML-based bean declarations define additional beans they do not redefine or disable any bean that was declared via annotations</text>
-    </assertion>
   
     <assertion id="b">
       <text>Multiple namespaces are accommodated, each representing a Java package</text>
@@ -5277,783 +4677,6 @@
   
   </section>
   
-  <section id="9.5" title="Bean declarations">
-  
-    <assertion id="a">
-      <text>An XML element that appears as a direct child of the root |&lt;Beans&gt;| element is interpreted as a bean declaration if it is not a |&lt;Deploy&gt;|, |&lt;Interceptors&gt;| or |&lt;Decorators&gt;| element in the Java EE namespace, and does not have a direct child |&lt;BindingType&gt;|,|&lt;InterceptorBindingType&gt;| or |&lt;Stereotype&gt;| element in the Java EE namespace</text>    
-    </assertion>
-    
-    <assertion id="b">
-      <text>The name of the XML element is interpreted as a Java type. The container inspects the Java type and other metadata to determine what kind of bean is being declared. If no such Java type exists in the classpath, a |DefinitionException| is thrown by the container at deployment time</text>
-    </assertion>
-    
-    <assertion id="c">
-      <text>If the type is |javax.jms.Queue| or |javax.jms.Topic|, it declares a JMS resource, as defined in Section 3.7.2, "Declaring a JMS resource using XML"</text>
-    </assertion>
-    
-    <assertion id="d">
-      <text>If the element has a child |&lt;Resource&gt;|, |&lt;PersistenceContext&gt;|, |&lt;PersistenceUnit&gt;|, |&lt;EJB&gt;| or |&lt;WebServiceRef&gt;| element, it declares a resource, as defined in Section 3.6.1, "Declaring a resource using XML"</text>
-    </assertion>
-    
-    <assertion id="e">
-      <text>If the type is an EJB bean class, a session bean was declared, as defined in Section 3.3.5, "Declaring a session bean using XML"</text>
-    </assertion>
-    
-    <assertion id="f">
-      <text>If the type is a concrete class, is not an EJB bean class, and is not a parameterized type, a simple bean was declared, as defined in Section 3.2.4, "Declaring a simple bean using XML"</text>
-    </assertion>
-    
-    <assertion id="g">
-      <text>Otherwise, a |DefinitionException| is thrown by the container at deployment time</text>
-    </assertion>
-    
-    <assertion id="h">
-      <text>Inline bean declarations may occur at injection points, as defined in Section 9.9, "Inline bean declarations". Inline bean declarations always declare simple beans</text>
-    </assertion>
-  
-  </section>
-  
-  <section id="9.5.1" title="Child elements of a bean declaration">
-    <assertion id="a">
-      <text>If the child element can be interpreted as a Java annotation type, the container interprets the child element as declaring type-level metadata</text>
-    </assertion>
-    
-    <assertion id="b">
-      <text>If the child element can be interpreted as a Java class or interface, the container interprets the child element as declaring a parameter of the bean constructor</text>
-    </assertion>
-    
-    <assertion id="c">
-      <text>If the child element namespace is the same as the namespace of the parent, the container interprets the element as declaring a method or field of the bean</text>
-    </assertion>
-    
-    <assertion id="d">
-      <text>If the name of the child element matches the name of both a method and a field of the bean class, a |DefinitionException| is thrown by the container at deployment time</text>
-    </assertion>
-    
-    <assertion id="e">
-      <text>If the name of the child element matches the name of a method of the bean class, is it interpreted to represent that method</text>
-    </assertion>
-    
-    <assertion id="f">
-      <text>If the name of the child element matches the name of a field of the bean class, is it interpreted to represent that field</text>
-    </assertion>
-    
-    <assertion id="g">
-      <text>Otherwise, a |DefinitionException| is thrown by the container at deployment time</text>
-    </assertion>
-  </section>
-  
-  <section id="9.5.2" title="Type-level metadata for a bean">
-    <assertion id="a">
-      <text>Type-level metadata is specified via direct child elements of the bean declaration that represent Java annotation types</text>
-    </assertion>
-    
-    <assertion id="b">
-      <text>The child element is interpreted as a Java annotation type</text>
-    </assertion>
-    
-    <assertion id="c">
-      <text>If the annotation type is a deployment type, the deployment type of the bean was declared, as defined in Section 2.5.4, "Declaring the deployment type of a bean using XML"</text>
-    </assertion>
-    
-    <assertion id="d">
-      <text>If the annotation type is a scope type, the scope of the bean was declared, as defined in Section 2.4.4, "Declaring the bean scope using XML"</text>
-    </assertion>
-    
-    <assertion id="e">
-      <text>If the annotation type is a binding type, a binding of the bean was declared, as defined in Section 2.3.4, "Declaring the bindings of a bean using XML"</text>
-    </assertion>
-    
-    <assertion id="f">
-      <text>If the annotation type is an interceptor binding type, an interceptor binding of the bean was declared, as defined in Section A.3.6.2, "Binding an interceptor using XML"</text>
-    </assertion>
-    
-    <assertion id="g">
-      <text>If the annotation type is a stereotype, a stereotype of the bean was declared, as defined in Section 2.7.3, "Declaring the stereotypes for a bean using XML"</text>
-    </assertion>
-    
-    <assertion id="h">
-      <text>If the annotation type is |javax.annotation.Name|, the name of the bean was declared, as defined in Section 2.6.2, "Declaring the bean name using XML"</text>
-    </assertion>
-    
-    <assertion id="i">
-      <text>If the annotation type is |javax.inject.Specializes|, the bean was declared to directly specialize the bean with the same bean class that was defined using annotations, as specified in Section 3.2.7, "Specializing a simple bean" and Section 3.3.7, "Specializing a session bean"</text>
-    </assertion>
-    
-    <assertion id="j">
-      <text>If the annotation type is |javax.inject.Realizes|, the bean was declared to realize the bean with the same bean class that was defined using annotations</text>
-    </assertion>
-    
-    <assertion id="k">
-      <text>If the annotation type is |javax.interceptor.Interceptor|, or |javax.decorator.Decorator| the bean is an interceptor or decorator, as defined in Section 9.7, "Interceptor and decorator declarations"</text>
-    </assertion>
-    
-    <assertion id="l">
-      <text>If the annotation type is |javax.annotation.Resource|, |javax.ejb.EJB|, |javax.xml.ws.WebServiceRef|, |javax.persistence.PersistenceContext| or |javax.persistence.PersistenceUnit|, the metadata for a resource or JMS resource was declared, as defined in Section 3.6.1, "Declaring a resource using XML" and Section 3.7.2, "Declaring a JMS resource using XML"</text>
-    </assertion>
-    
-    <assertion id="m">
-      <text>Otherwise, a |DefinitionException| is thrown by the container at deployment time</text>
-    </assertion>
-  </section>
-  
-  <section id="9.5.3" title="Bean constructor declarations">
-    <assertion id="a">
-      <text>The bean constructor for a simple bean is declared by the list of direct child elements of the bean declaration that represent Java class or interface types</text>
-    </assertion>
-    
-    <assertion id="b">
-      <text>The container interprets these elements as declaring parameters of the constructor</text>
-    </assertion>
-    
-    <assertion id="c">
-      <text>Each constructor parameter declaration is interpreted as an injection point declaration, as specified in Section 9.8, "Injection point declarations"</text>
-    </assertion>
-    
-    <assertion id="d">
-      <text>If the simple bean class has exactly one constructor such that the constructor has the same number of parameters as the bean declaration has constructor parameter declarations, and the Java type represented by each constructor parameter declaration is assignable to the Java type of the corresponding constructor parameter then the element is interpreted to represent that constructor, and that constructor is the bean constructor</text>
-    </assertion>
-    
-    <assertion id="e">
-      <text>If more than one constructor exists which satisfies these conditions, a |DefinitionException| is thrown by the container at deployment time</text>
-    </assertion>
-    
-    <assertion id="f">
-      <text>If no constructor of the simple bean class satisfies these conditions, a |DefinitionException| is thrown by the container at deployment time</text>
-    </assertion>
-    
-    <assertion id="g">
-      <text>For any constructor parameter, the bean type declared in XML may be a subtype of the Java parameter type. In this case, the container will use the bean type declared in XML when resolving the dependency</text>
-    </assertion>
-  </section>
-  
-  <section id="9.5.4" title="Fields of a bean">
-    <assertion id="a">
-      <text>A field of a bean is declared by a direct child element of the bean declaration. The name of the field is the same as the name of the element</text>
-    </assertion>
-    
-    <assertion id="b">
-      <text>If the bean class has exactly one field with the same name as the child element, then the child element is interpreted to represent that field</text>
-    </assertion>
-    
-    <assertion id="c">
-      <text>If the bean class does not have exactly one field with the specified name, a |DefinitionException| is thrown by the container at deployment time</text>
-    </assertion>
-    
-    <assertion id="d">
-      <text>If more than one child element of a bean declaration represents the same field of the bean class, a |DefinitionException| is thrown by the container at deployment time</text>
-    </assertion>
-    
-    <assertion id="e">
-      <text>A field declaration may contain child elements</text>
-    </assertion>
-    
-    <assertion id="f">
-      <text>If a field declaration has more than one direct child element, and at least
-one of these elements is something other than a |&lt;value&gt;| element in the Java EE namespace, a |DefinitionException| is thrown by the container at deployment time</text>
-    </assertion>
-    
-    <assertion id="g">
-      <text>An element that represents a field may declare an injected field, a producer field or a field with an initial value</text>
-    </assertion>
-    
-    <assertion id="h">
-      <text>If the element contains a child |&lt;Produces&gt;| element in the Java EE namespace, a producer field was declared, as defined in Section 3.5.3, "Declaring a producer field using XML"</text>
-    </assertion>
-    
-    <assertion id="i">
-      <text>If the element contains a child |&lt;value&gt;| element in the Java EE namespace, a field with an initial value of type Set or List was declared, as defined in Section 9.5.5, "Field initial value declarations"</text>
-    </assertion>
-    
-    <assertion id="j">
-      <text>If the element has exactly one child element, an injected field was declared, as defined in Section 3.8.2, "Declaring an injected field using XML"</text>
-    </assertion>
-    
-    <assertion id="k">
-      <text>If the element has a non-empty body, and no child elements, a field with an initial value was declared, as defined in Section 9.5.5, "Field initial value declarations"</text>
-    </assertion>
-    
-    <assertion id="l">
-      <text>Otherwise, a |DefinitionException| is thrown by the container at deployment time</text>
-    </assertion>
-    
-    <assertion id="m">
-      <text>If a field declaration represents an injected field, the child element is interpreted as an injection point declaration, as specified in Section 9.8, "Injection point declarations"</text>
-    </assertion>
-    
-    <assertion id="n">
-      <text>If the declared type is not assignable to the Java type of the field, a |DefinitionException| is thrown by the container at deployment time</text>
-    </assertion>
-    
-    <assertion id="o">
-      <text>The bean type declared in XML may be a subtype of the Java field type. In this case, the container will use the bean type declared in XML when resolving the dependency</text>
-    </assertion>
-        
-  </section>
-  
-  <section id="9.5.5" title="Field initial value declarations">
-    <assertion id="a">
-      <text>The initial value of a field of a simple bean or session bean with any one of the following types may be specified in XML: any primitive type, or |java.lang| wrapper type, any enumerated type, |java.lang.String|, |java.util.Date|, |java.sql.Date|, |java.sql.Time| or |java.sql.Timestamp|, |java.util.Calendar|, |java.math.BigDecimal| or |java.math.BigInteger|, |java.lang.Class|, |java.util.List&lt;java.lang.String&gt;| or |java.util.Set&lt;java.lang.String&gt;|, |java.util.List&lt;java.lang.Class&gt;| or |java.util.Set&lt;java.lang.Class&gt;|, |java.util.List&lt;X&gt;| or |java.util.Set&lt;X&gt;| where X is an enumerated type</text>
-    </assertion>
-    
-    <assertion id="b">
-      <text>The initial value of the field is specified in the body of an XML element representing the field</text>
-    </assertion>
-    
-    <assertion id="c">
-      <text>The initial value of a field of primitive type or |java.lang| wrapper type is specified using the Java literal syntax for that type</text>
-    </assertion>
-    
-    <assertion id="d">
-      <text>The initial value of a field of type |java.lang.String| is specified using the string value</text>
-    </assertion>
-    
-    <assertion id="e">
-      <text>The initial value of a field of enumerated type is specified using the unqualified name of the enumeration value</text>
-    </assertion>
-    
-    <assertion id="f">
-      <text>The initial value of a field of type |java.util.Date|, |java.sql.Date|, |java.sql.Time|, |java.sql.Timestamp| or |java.util.Calendar| is specified using a format that can be parsed by calling
-|java.text.DateFormat.getDateTimeInstance().parse()|</text>
-    </assertion>
-    
-    <assertion id="g">
-      <text>The initial value of a field of type |java.math.BigDecimal| or |java.math.BigInteger| is specified using a format that can be parsed by the constructor that accepts a string</text>
-    </assertion>
-    
-    <assertion id="h">
-      <text>The initial value of a field of type |java.lang.Class| is specified using the fully qualified Java class name</text>
-    </assertion>
-    
-    <assertion id="i">
-      <text>The initial value of a field of type |java.util.List| or |java.util.Set| is specified by a list of |&lt;value&gt;| elements. The body of the value element is specified using the string value, fully qualified Java class name or unqualified name of the enumeration value</text>
-    </assertion>
-    
-    <assertion id="j">
-      <text>If a field with an initial value specified in XML is not of one of the listed types, or if the initial value is not specified in the correct format for the type of the field, a  |DefinitionException| is thrown by the container at deployment time</text>
-    </assertion>
-    
-    <assertion id="k">
-      <text>If an element representing a field specifies both an initial value and a type declaration, a |DefinitionException| is thrown by the container at deployment time</text>
-    </assertion>
-  </section>
-  
-  <section id="9.5.6" title="Methods of a bean">
-    <assertion id="a">
-      <text>A method of a bean is declared by a direct child element of the bean declaration. The name of the declared method is the same as the name of the child element</text>
-    </assertion>
-    
-    <assertion id="b">
-      <text>A method declaration may have any number of direct child elements</text>
-    </assertion>
-    
-    <assertion id="c">
-      <text>The container inspects the direct child elements of the method declaration. For each child element, the element is interpreted as a Java type. If no such Java type exists in the classpath, a |DefinitionException| is thrown by the container at deployment time</text>
-    </assertion>
-    
-    <assertion id="d">
-      <text>If the type is |javax.inject.Disposes|, the container searches for a direct child element of the child element and interprets that element as declaring a disposed parameter of the disposal method</text>
-    </assertion>
-    
-    <assertion id="e">
-      <text>If the type is |javax.event.Observes|, the container searches for a direct child element of the child element that is not an |&lt;IfExists&gt;|, |&lt;Asynchronously&gt;|, |&lt;AfterTransactionCompletion&gt;|, |&lt;AfterTransactionSuccess&gt;|, |&lt;AfterTransactionFailure&gt;| or |&lt;BeforeTransactionCompletion&gt;| element in the Java EE namespace, and interprets that element as declaring an event parameter of the observer method</text>
-    </assertion>
-    
-    <assertion id="f">
-      <text>If the type is some other Java annotation type, the container interprets the child element as declaring method-level metadata</text>
-    </assertion>
-    
-    <assertion id="g">
-      <text>If the type is a Java class or interface, the container interprets the child element as declaring a parameter of the method</text>
-    </assertion>
-    
-    <assertion id="h">
-      <text>Otherwise, a |DefinitionException| is thrown by the container at deployment time</text>
-    </assertion>
-    
-    <assertion id="i">
-      <text>If a method declaration has more than one direct child element which is an |&lt;Initializer&gt;|, |&lt;Produces&gt;|, |&lt;Disposes&gt;| or |&lt;Observes&gt;| element in the Java EE namespace, a |DefinitionException| is thrown by the container at deployment time</text>
-    </assertion>
-    
-    <assertion id="j">
-      <text>If a |&lt;Disposes&gt;| element does not contain exactly one direct child element, a |DefinitionException| is thrown by the container at deployment time</text>
-    </assertion>
-    
-    <assertion id="k">
-      <text>If an |&lt;Observes&gt;| element does not contain exactly one direct child element that is not an |&lt;IfExists&gt;|, |&lt;Asynchronously&gt;|, |&lt;AfterTransactionCompletion&gt;|, |&lt;AfterTransactionSuccess&gt;|, |&lt;AfterTransactionFailure&gt;| or |&lt;BeforeTransactionCompletion&gt;| element in the Java EE namespace, a |DefinitionException| is thrown by the container at deployment time</text>
-    </assertion>
-    
-    <assertion id="l">
-      <text>Each method parameter declaration and disposed parameter declaration is interpreted as an injection point declaration, as specified in Section 9.8, "Injection point declarations". An event parameter declaration is interpreted as a type declaration, as defined in Section 9.10, "Specifying bean types and bindings"</text>
-    </assertion>
-    
-    <assertion id="m">
-      <text>If the bean class has exactly one method such that the method name is the same as the name of the element that declares the method, the method has the same number of parameters as the element that declares the method has child elements, and the Java type represented by each method parameter declaration is assignable to the Java type of the corresponding method parameter, then the element is interpreted to represent that method</text>
-    </assertion>
-    
-    <assertion id="n">
-      <text>If more than one method exists which satisfies these conditions, a |DefinitionException| is thrown by the container at deployment time</text>
-    </assertion>
-    
-    <assertion id="o">
-      <text>If no method of the bean class satisfies these conditions, a |DefinitionException| is thrown by the container at deployment time</text>
-    </assertion>
-    
-    <assertion id="p">
-      <text>For any method parameter, the bean type declared in XML may be a subtype of the Java parameter type. In this case, the container will use the bean type declared in XML when resolving the dependency</text>
-    </assertion>
-    
-    <assertion id="q">
-      <text>If more than one child element of a bean declaration represents the same method of the bean class, a |DefinitionException| is thrown by the container at deployment time</text>
-    </assertion>
-    
-    <assertion id="r">
-      <text>An element that represents a method may declare an initializer method, an observer method, a producer method or a disposal method. Alternatively, or additionally, it may declare method-level interceptor binding</text>
-    </assertion>
-    
-    <assertion id="s">
-      <text>If the element contains a child |&lt;Initializes&gt;| element in the Java EE namespace, an initializer method was declared, as defined in Section 3.9.2, "Declaring an initializer method using XML"</text>
-    </assertion>
-    
-    <assertion id="t">
-      <text>If the element contains a child |&lt;Produces&gt;| element in the Java EE namespace, a producer method was declared, as defined in Section 3.4.3, "Declaring a producer method using XML"</text>
-    </assertion>
-    
-    <assertion id="u">
-      <text>If the element contains a child |&lt;Disposes&gt;| element in the Java EE namespace, a disposal method was declared, as defined in Section 3.4.9, "Declaring a disposal method using XML"</text>
-    </assertion>
-    
-    <assertion id="v">
-      <text>If the element contains a child |&lt;Observes&gt;| element in the Java EE namespace, an observer method was declared, as defined in Section 7.5.3, "Declaring an observer method using XML"</text>
-    </assertion>
-    
-    <assertion id="w">
-      <text>If the element contains a child element which can be interpreted as an interceptor binding type, method-level interceptor binding was declared, as defined in Section A.3.6.2, "Binding an interceptor using XML"</text>
-    </assertion>
-  </section>
-  
-  <section id="9.6" title="Producer method and field declarations">
-    <assertion id="a">
-      <text>A producer method or field declaration is formed by adding a direct child |&lt;Produces&gt;| element to an element that represents the method or field, as defined in Section 3.4.3, "Declaring a producer method using XML" and Section 3.5.3, "Declaring a producer field using XML"</text>
-    </assertion>
-    
-  </section>
-  
-  <section id="9.6.1" title="Child elements of a producer field declaration">
-    <assertion id="a">
-      <text>The container inspects the direct child elements of a producer field declaration</text>
-    </assertion>
-    
-    <assertion id="b">
-      <text>If there is more than one direct child element, a |DefinitionException| is thrown by the container at deployment time</text>
-    </assertion>
-    
-    <assertion id="c">
-      <text>Otherwise, the direct child element is a |&lt;Produces&gt;| element in the Java EE namespace, and declares the return type, bindings and member-level metadata of the producer field</text>
-    </assertion>
-    
-    <assertion id="d">
-      <text>The container inspects the direct child elements of the |&lt;Produces&gt;| element. For each child element, the element is interpreted as a Java type. If no such Java type exists in the classpath, a |DefinitionException| is thrown by the container at deployment time</text>
-    </assertion>
-    
-    <assertion id="e">
-      <text>If the type is a Java class or interface type, the type of the producer field was declared</text>
-    </assertion>
-    
-    <assertion id="f">
-      <text>If the type is a Java annotation type, it declares member-level metadata of the producer field</text>
-    </assertion>
-    
-    <assertion id="g">
-      <text>Otherwise, a |DefinitionException| is thrown by the container at deployment time</text>
-    </assertion>
-    
-    <assertion id="h">
-      <text>If more than one child element represents a Java class or interface type, or if no child element represents a Java class or interface type, a |DefinitionException| is thrown by the container at deployment time</text>
-    </assertion>
-  </section>
-  
-  <section id="9.6.2" title="Child elements of a producer method declaration">
-    <assertion id="a">
-      <text>If a child element of a producer method declaration is the |&lt;Produces&gt;| element in the Java EE namespace, it declares the return type, bindings and member-level metadata of the producer method</text>
-    </assertion>
-    
-    <assertion id="b">
-      <text>If the child element of a producer method declaration can be interpreted as an interceptor binding type, it declares a method-level interceptor binding</text>
-    </assertion>
-    
-    <assertion id="c">
-      <text>The container interprets the child element of a producer method declaration as declaring a parameter of the producer method, if it is not a |&lt;Produces&gt;| element and cannot be interpreted as an interceptor binding type</text>
-    </assertion>
-    
-    <assertion id="d">
-      <text>If there is more than one child |&lt;Produces&gt;| element of a producer method declaration in the Java EE namespace, a |DefinitionException| is thrown by the container at deployment time.</text>
-    </assertion>
-    
-    <assertion id="e">
-      <text>The container inspects the direct child elements of the |&lt;Produces&gt;| element. For each child element, the element is interpreted as a Java type. If no such Java type exists in the classpath, a |DefinitionException| is thrown by the container at deployment time</text>
-    </assertion>
-    
-    <assertion id="f">
-      <text>If the type of the direct child element of a |&lt;Produces&gt;| element is a Java class or interface type, the return type of the producer method was declared</text>
-    </assertion>
-    
-    <assertion id="g">
-      <text>If the type of the direct child element of a |&lt;Produces&gt;| element is a Java annotation type, it declares member-level metadata of the producer method</text>
-    </assertion>
-    
-    <assertion id="h">
-      <text>If the type of the direct child element of a |&lt;Produces&gt;| element is not a Java class or Java annotation, a |DefinitionException| is thrown by the container at deployment time.</text>
-    </assertion>
-    
-    <assertion id="i">
-      <text>If more than one child element represents a Java class or interface type, or if no child element represents a Java class or interface type, a |DefinitionException| is thrown by the container at deployment time</text>
-    </assertion>
-  </section>
-  
-  <section id="9.6.3" title="Return type and bindings of a producer method or field">
-    <assertion id="a">
-      <text>Every XML producer method or field declaration has a direct child |&lt;Produces&gt;| element</text>
-    </assertion>
-    
-    <assertion id="b">
-      <text>This |&lt;Produces&gt;| element must, in turn, have a direct child element which declares the return type of the producer method or the type of the producer field and which is interpreted by the container as a type declaration, as defined in Section 9.10, "Specifying bean types and bindings"</text>
-    </assertion>
-    
-    <assertion id="c">
-      <text>The type declaration that declares the return type of the producer method or the type of the producer field specifies the return type and bindings of the producer method bean, or the type and bindings of the producer field bean.</text>
-    </assertion>
-    
-    <assertion id="d">
-      <text>The type is used to calculate the set of bean types</text>
-    </assertion>
-    
-    <assertion id="e">
-      <text>The type declared in XML must be a supertype or subtype of the Java method or field type. If the declared type is not a supertype or subtype of the Java method or field type, a |DefinitionException| is thrown by the container at deployment time.</text>
-    </assertion>
-    
-  </section>
-  
-  <section id="9.6.4" title="Member-level metadata for a producer method or field">
-    <assertion id="a">
-      <text>Member-level metadata for a producer method or field declaration is specified via direct child elements of the |&lt;Produces&gt;| element that represent Java annotation types.</text>
-    </assertion>
-    
-    <assertion id="b">
-      <text>Each child element is interpreted as a Java annotation type. If the type is not a Java annotation type, a |DefinitionException| is thrown by the container at deployment time</text>
-    </assertion>
-    
-    <assertion id="c">
-      <text>If the annotation type is a deployment type, the deployment type of the producer method or field was declared, as defined in Section 2.5.4, "Declaring the deployment type of a bean using XML".</text>
-    </assertion>
-    
-    <assertion id="d">
-      <text>If the annotation type is a scope type, the scope of the producer method or field was declared, as defined in Section 2.4.4, "Declaring the bean scope using XML".</text>
-    </assertion>
-    
-    <assertion id="e">
-      <text>If the annotation type is a stereotype, a stereotype of the producer method or field was declared, as defined in Section 2.7.3, "Declaring the stereotypes for a bean using XML".</text>
-    </assertion>
-    
-    <assertion id="f">
-      <text>If the annotation type is |javax.annotation.Name|, the name of the producer method or field was declared, as defined in Section 2.6.2, "Declaring the bean name using XML".</text>
-    </assertion>
-    
-    <assertion id="g">
-      <text>If the annotation type is not a deployment type, or a scope type, or a stereotype, or a |javax.annotation.Name|, a |DefinitionException| is thrown by the container at deployment time</text>
-    </assertion>
-  </section>
-  
-  <section id="9.7" title="Interceptor and decorator declarations">
-    <assertion id="a">
-      <text>A simple bean declaration is interpreted as an interceptor declaration if it contains a direct child |&lt;Interceptor&gt;| element in the Java EE namespace</text>
-    </assertion>
-    
-    <assertion id="b">
-      <text>A simple bean declaration is interpreted as a decorator declaration if it contains a direct child |&lt;Decorator&gt;| element in the Java EE namespace</text>
-    </assertion>
-    
-    <assertion id="c">
-      <text>If a bean declaration that is not a simple bean declaration contains a child |&lt;Interceptor&gt;| element, a |DefinitionException| is thrown by the container at deployment time.</text>
-    </assertion>
-    
-    <assertion id="d">
-      <text>If a bean declaration that is not a simple bean declaration contains a child |&lt;Decorator&gt;| element, a |DefinitionException| is thrown by the container at deployment time.</text>
-    </assertion>
-    
-    <assertion id="e">
-      <text>If an inline bean declaration contains a child |&lt;Interceptor&gt;| element, a |DefinitionException| is thrown by the container at deployment time.</text>
-    </assertion>
-    
-    <assertion id="f">
-      <text>If an inline bean declaration contains a child |&lt;Decorator&gt;| element, a |DefinitionException| is thrown by the container at deployment time.</text>
-    </assertion>
-    
-    <assertion id="g">
-      <text>If a simple bean declaration contains more than one direct child |&lt;Interceptor&gt;| element in the Java EE namespace, a |DefinitionException| is thrown by the container at deployment time.</text>
-    </assertion>
-    
-    <assertion id="h">
-      <text>If a simple bean declaration contains more than one direct child |&lt;Decorator&gt;| element in the Java EE namespace, a |DefinitionException| is thrown by the container at deployment time.</text>
-    </assertion>
-  </section>
-  
-  <section id="9.7.1" title="Decorator delegate attribute">
-    <assertion id="a">
-      <text>Decorator declarations may declare the delegate attribute</text>
-    </assertion>
-    
-    <assertion id="b">
-      <text>A delegate declaration is a direct child element of the decorator declaration.</text>
-    </assertion>
-    
-    <assertion id="c">
-      <text>The name of the delegate attribute is the same as the name of the element.</text>
-    </assertion>
-    
-    <assertion id="d">
-      <text>If a direct child element of a decorator declaration exists in the same namespace as its parent, and has direct child |&lt;Decorates&gt;| element in the Java EE namespace then it is interpreted as a delegate declaration.</text>
-    </assertion>
-    
-    <assertion id="e">
-      <text>If the bean class has a field with the same name as the child element, then the child element is interpreted to represent that field.</text>
-    </assertion>
-    
-    <assertion id="f">
-      <text>If the bean class does not have have a field with the specified name, a |DefinitionException| is thrown by the container at deployment time.</text>
-    </assertion>
-    
-    <assertion id="g">
-      <text>If a delegate declaration has more than one direct child element, a |DefinitionException| is thrown by the container at deployment time.</text>
-    </assertion>
-    
-    <assertion id="h">
-      <text>The child element of the delegate declaration is a |&lt;Decorates&gt;| element in the Java EE namespace. If the |&lt;Decorates&gt;| element does not, in turn, have exactly one direct child element, a |DefinitionException| is thrown by the container at deployment time.</text>
-    </assertion>
-    
-    <assertion id="i">
-      <text>The direct child element of the |&lt;Decorates&gt;| element is interpreted as a type declaration as specified by Section 9.10, "Specifying bean types and bindings". If the declared bean type is not assignable to the type of the Java field, a |DefinitionException| is thrown by the container at deployment time.</text>
-    </assertion>
-    
-    <assertion id="j">
-      <text>The bean type declared in XML may be a subtype of the Java field type. In this case, the container will use the bean type declared in XML when resolving the dependency.</text>
-    </assertion>
-    
-    <assertion id="k">
-      <text>If simple bean declaration that is not a decorator declaration contains a direct child element that in turn contains a direct child |&lt;Decorates&gt;| element, a |DefinitionException| is thrown by the container at deployment time.</text>
-    </assertion>
-    
-  </section>
-  
-  <section id="9.8" title="Injection point declarations">
-    <assertion id="a">
-      <text>An injection point declaration is either a type declaration, as defined in Section 9.10, "Specifying bean types and bindings", or an inline bean declaration, as defined in Section 9.9, "Inline bean declarations".</text>
-    </assertion>
-    
-    <assertion id="b">
-      <text>When the container encounters an injection point declaration, it interprets the element as a Java class or interface. If no such Java type exists in the classpath, a |DefinitionException| is thrown by the container at deployment time.</text>
-    </assertion>
-    
-    <assertion id="c">
-      <text>If the Java type is a parameterized type, the injection point declaration is a type declaration, and the declared type of the injection point is the bean type of the type declaration, including actual type parameters.</text>
-    </assertion>
-    
-    <assertion id="d">
-      <text>Otherwise, the container inspects the direct child elements. If any direct child element can be interpreted as a binding type, the injection point declaration is a type declaration, and the declared type of the injection point is the bean type of the type declaration.</text>
-    </assertion>
-    
-    <assertion id="e">
-      <text>Otherwise, if any direct child elements exist, the injection point declaration is an inline bean declaration, and the declared type of the injection point is the bean class of the bean.</text>
-    </assertion>
-    
-    <assertion id="f">
-      <text>Otherwise, the injection point declaration is a type declaration, and the declared type of the injection point is the bean type of the type declaration.</text>
-    </assertion>
-  </section>
-  
-  <section id="9.9" title="Inline bean declarations">
-    <assertion id="a">
-      <text>An inline bean declaration is a simple bean declaration, as defined in Section 9.5, "Bean declarations" that occurs as an injection point declaration, instead of as a direct child of the &lt;Beans&gt; element.</text>
-    </assertion>
-    
-    <assertion id="b">
-      <text>The element is interpreted as a Java class. This Java class is the bean class of the simple bean</text>
-    </assertion>
-    
-    <assertion id="c">
-      <text>Inline bean declarations may not explicitly specify a binding type. If an inline bean declaration explicitly specifies a binding type, a |DefinitionException| is thrown by the container at deployment time.</text>
-    </assertion>
-    
-    <assertion id="d">
-      <text>For every inline injection point, the container generates a unique value for an implementation-specific binding type.  This generated value is the binding of the injection point, and the only binding of the simple bean. The bean type of the injection point is the declared bean class of the simple bean.</text>
-    </assertion>
-    
-    <assertion id="e">
-      <text>An inline bean declaration results in a simple bean that is bound only to the injection point at which it was declared.</text>
-    </assertion>
-  </section>
-  
-  <section id="9.10" title="Specifying bean types and bindings">
-    <assertion id="a">
-      <text>Every injection point defined in XML must explicitly specify a bean type and combination of bindings.</text>
-    </assertion>
-    
-    <assertion id="b">
-      <text>Every event parameter defined in XML must explicitly specify a bean type and combination of bindings.</text>
-    </assertion>
-    
-    <assertion id="c">
-      <text>Every delegate attribute defined in XML must explicitly specify a bean type and combination of bindings.</text>
-    </assertion>
-    
-    <assertion id="d">
-      <text>XML-based producer method declarations must explicitly specify the return type (which is used to calculate the set of bean types) and bindings</text>
-    </assertion>
-    
-    <assertion id="e">
-      <text>A type declaration is an element that represents a Java class or interface, or |&lt;Array&gt;|</text>
-    </assertion>
-    
-    <assertion id="f">
-      <text>A type declaration is (if the type is a parameterized type), a set of child elements that represent Java classes and/or interfaces, and are interpreted as the actual type parameters, or, if the type is an array type, a single child element that represents the array element type</text>
-    </assertion>
-    
-    <assertion id="g">
-      <text>A type declaration is optionally, a set of child elements that represent Java annotation types, and are interpreted as bindings</text>
-    </assertion>
-    
-    <assertion id="h">
-      <text>When the container encounters a type declaration it interprets the element as a Java type</text>
-    </assertion>
-    
-    <assertion id="i">
-      <text>If the element is an |&lt;Array&gt;| element in the Java EE namespace, an array type was declared.</text>
-    </assertion>
-    
-    <assertion id="j">
-      <text>Otherwise, the element is interpreted as a Java class or interface. If no such Java type exists in the classpath, a |DefinitionException| is thrown by the container at deployment time. If the Java type is not a class or interface type, a |DefinitionException| is thrown by the container at deployment time</text>
-    </assertion>
-    
-    <assertion id="k">
-      <text>The container inspects every direct child element of the type declaration. Each child element is interpreted as a Java type. If no such Java type exists in the classpath, a |DefinitionException| is thrown by the container at deployment time.</text>
-    </assertion>
-    
-    <assertion id="l">
-      <text>If the type is a Java annotation type, a binding was declared.</text>
-    </assertion>
-    
-    <assertion id="m">
-      <text>If the type is a Java class or interface type, an actual type parameter or array element type was declared</text>
-    </assertion>
-    
-    <assertion id="n">
-      <text>If the type is not a Java annotation type or a Java class or interface type, a |DefinitionException| is thrown by the container at deployment time.</text>
-    </assertion>
-    
-    <assertion id="o">
-      <text>If multiple array element types are declared, a |DefinitionException| is thrown by the container at deployment time.</text>
-    </assertion>
-    
-    <assertion id="p">
-      <text>If the number of declared actual type parameters is not the same as the number of parameters of the Java type, a |DefinitionException| is thrown by the container at deployment time.</text>
-    </assertion>
-    
-    <assertion id="q">
-      <text>If a type parameter of the Java type is bounded, and the corresponding declared actual type parameter does not satisfy the upper or lower bound, a |DefinitionException| is thrown by the container at deployment time.</text>
-    </assertion>
-    
-    <assertion id="r">
-      <text>If a binding declaration declares a Java annotation type that is not a binding type, a |DefinitionException| is thrown by the container at deployment time.</text>
-    </assertion>
-    
-    <assertion id="s">
-      <text>If no binding is declared, the default binding |@Current| is assumed</text>
-    </assertion>
-    
-    <assertion id="t">
-      <text>If the same binding type occurs more than once, a |DuplicateBindingTypeException| is thrown by the container at deployment time.</text>
-    </assertion>
-    
-    <assertion id="u">
-      <text>For fields, type declarations are specified as direct child elements of the field declaration</text>
-    </assertion>
-    
-    <assertion id="v">
-      <text>For methods, the method parameter declarations are type declarations</text>
-    </assertion>
-    
-    <assertion id="w">
-      <text>For producer methods, the return type must be specified</text>
-    </assertion>
-    
-    <assertion id="x">
-      <text>For constructors, the constructor parameter declarations are type declarations</text>
-    </assertion>
-  </section>
-  
-  <section id="9.11" title="Annotation members">
-    <assertion id="a">
-      <text>Any binding or interceptor binding declaration must define the value of any annotation member without a default value, and may additionally define the value of any annotation member with a default value.</text>
-    </assertion>
-    
-    <assertion id="b">
-      <text>Annotation member values are defined by attributes of the XML element which represents the Java annotation.</text>
-    </assertion>
-    
-    <assertion id="c">
-      <text>All attributes of any XML element which represents a Java annotation are interpreted as members of the annotation</text>
-    </assertion>
-    
-    <assertion id="d">
-      <text>The name of the attribute is interpreted as the name of the corresponding annotation member.</text>
-    </assertion>
-    
-    <assertion id="e">
-      <text>The value of the attribute is interpreted as the value of the annotation member.</text>
-    </assertion>
-    
-    <assertion id="f">
-      <text>If there is no annotation member with the same name as the attribute, a |DefinitionException| is thrown by the container at deployment time.</text>
-    </assertion>
-    
-    <assertion id="g">
-      <text>The value of an annotation member named value may be specified in the body of the XML element which represents the Java annotation.</text>
-    </assertion>
-    
-    <assertion id="h">
-      <text>If the XML element has a non-empty body and also specifies an attribute named value, a
-|DefinitionException| is thrown by the container at deployment time.</text>
-    </assertion>
-    
-    <assertion id="i">
-      <text>If the XML element has a non-empty body, and there is no annotation member named value, a |DefinitionException| is thrown by the container at deployment time</text>
-    </assertion>
-    
-    <assertion id="j">
-      <text>The value of a member of primitive type is specified using the Java literal syntax for that type</text>
-    </assertion>
-    
-    <assertion id="k">
-      <text>The value of a member of type |java.lang.String| is specified using the string value</text>
-    </assertion>
-    
-    <assertion id="l">
-      <text>The value of a member of enumerated type is specified using the unqualified name of the enumeration value.</text>
-    </assertion>
-    
-    <assertion id="m">
-      <text>The value of a member of type |java.lang.Class| is specified using the fully qualified Java class name.</text>
-    </assertion>
-    
-    <assertion id="n">
-      <text>If the member value is not specified in the correct format for the type of the member, a |DefinitionException| is thrown by the container at deployment time.</text>
-    </assertion>
-    
-    <assertion id="o">
-      <text>If an XML element that refers to a Java annotation with a member with no default value does not declare a value for that member, a |DefinitionException| is thrown by the container at deployment time.</text>
-    </assertion>
-  </section>
-  
   <section id="9.12" title="Deployment declarations">
     <assertion id="a">
       <text>The |&lt;Deploy&gt;|, |&lt;Interceptors&gt;| and |&lt;Decorators&gt;| elements in the Java EE namespace determine which beans, interceptors and decorators are enabled in a particular deployment</text>
@@ -6074,35 +4697,6 @@
     </assertion>    
   </section>
   
-  <section id="9.12.2" title="The &lt;Interceptors&gt; declaration">
-    <assertion id="a">
-      <text>Each direct child element of an |&lt;Interceptors&gt;| element is interpreted as the declaring an enabled interceptor, as specified in Section A.3.7, "Interceptor enablement and ordering".</text>
-    </assertion>
-    
-    <assertion id="b">
-      <text>Each child element is interpreted as a Java class. If no such Java class exists in the classpath, a |DefinitionException| is thrown by the container at deployment time.</text>
-    </assertion>
-    
-    <assertion id="c">
-      <text>If the same interceptor is declared more than once, a |DefinitionException| is thrown by the container at deployment time.</text>
-    </assertion>
-  
-  </section>
-  
-  <section id="9.12.3" title="The &lt;Decorators&gt; declaration">
-    <assertion id="a">
-      <text>Each direct child element of a |&lt;Decorators&gt;| element is interpreted as the declaring an enabled decorator, as specified in Section A.5.5, "Decorator enablement and ordering".</text>
-    </assertion>
-    
-    <assertion id="b">
-      <text>Each child element is interpreted as a Java class. If no such Java class exists in the classpath, a |DefinitionException| is thrown by the container at deployment time.</text>
-    </assertion>
-    
-    <assertion id="c">
-      <text>If the same decorator is declared more than once, a |DefinitionException| is thrown by the container at deployment time.</text>
-    </assertion>
-  </section>
-  
   <section id="11" title="Packaging and Deployment">
     
   </section>
@@ -6232,57 +4826,23 @@
       <text>The container automatically discovers~ simple beans (according to the rules of Section 3.2.1, "Which Java classes are beans?") and session beans (according to the rules of Section 3.3.2, "Which EJBs are beans?") deployed and/or declared in these locations and searches the bean classes for producer methods, producer fields, disposal methods and~ observer methods declared using annotations.</text>
       <note>Check all archive types enumerated above, and session beans and simple beans</note>
     </assertion>
-    
-    <assertion id="w">
-      <text>The container discovers beans~, disposal methods and observer methods~ defined using XML by parsing the |beans.xml| files according to the rules of Chapter 9, XML based metadata.</text>
-      <note>Check all archive types enumerated above, simple beans, session beans, producer methods and producer fields</note>
-    </assertion>
-    
-    <assertion id="x">
-      <text>The container discovers ~beans, ~disposal methods ~and observer methods~ defined using XML by parsing the |beans.xml| files according to the rules of Chapter 9, XML based metadata.</text>
-      <note>Check all archive types enumerated above</note>
-    </assertion>
-    
-    <assertion id="y">
-      <text>The container discovers ~beans, disposal methods and~ observer methods defined using XML by parsing the |beans.xml| files according to the rules of Chapter 9, XML based metadata.</text>
-      <note>Check all archive types enumerated above</note>
-    </assertion> 
 
     <assertion id="z">
       <text>Next, the container determines which beans~, interceptors and decorators are enabled,~ according to the rules defined in Section 2.5.6, "Enabled deployment types", Section A.3.7, "Interceptor enablement and ordering" and Section A.5.5, "Decorator enablement and ordering", taking into account any |&lt;Deploy&gt;|, ~|&lt;Interceptors&gt;| and |&lt;Decorators&gt;|~ declarations in the |beans.xml| files.</text>
     </assertion>
     
-    <assertion id="aa">
-      <text>Next, the container determines which ~beans,~ interceptors ~and decorators~ are enabled, according to the rules defined in Section 2.5.6, "Enabled deployment types", Section A.3.7, "Interceptor enablement and ordering" and Section A.5.5, "Decorator enablement and ordering", taking into account any ~|&lt;Deploy&gt;|,~ |&lt;Interceptors&gt;| ~and |&lt;Decorators&gt;|~ declarations in the |beans.xml| files.</text>
-    </assertion> 
-    
-    <assertion id="ab">
-      <text>Next, the container determines which ~beans, interceptors and~ decorators are enabled, according to the rules defined in Section 2.5.6, "Enabled deployment types", Section A.3.7, "Interceptor enablement and ordering" and Section A.5.5, "Decorator enablement and ordering", taking into account any ~|&lt;Deploy&gt;|, |&lt;Interceptors&gt;| and~ |&lt;Decorators&gt;| declarations in the |beans.xml| files.</text>
-    </assertion>
-    
     <assertion id="ac">
       <text>For each enabled bean that is not an interceptor or decorator, the container creates an instance of |Bean|, and registers it by calling |Manager.addBean()|</text>
       <note>Check that interceptors aren't registered as beans, decorators aren't registered as beans, that disabled beans aren't registered and that simple beans, session beans, producer methods and producer fields are registered</note>
     </assertion>
     
-    <assertion id="ad">
-      <text>For each enabled interceptor, the container creates an instance of |Interceptor| and registers it by calling |Manager.addInterceptor()|</text>
-    </assertion>
-    
-    <assertion id="ae">
-      <text>For each enabled decorator, the container creates an instance of |Decorator| and registers it by calling |Manager.addDecorator()|.</text>
-    </assertion>
-    
     <assertion id="af">
       <text>For each observer method of an enabled bean, the container creates an instance of |Observer| that implements the rules of Section 7.5.8, "Observer object for an observer method" and registers it by calling |Manager.addObserver()|</text>
     </assertion>
   </section>
     
   <section id="11.4" title="Providing additional XML based metadata"> 
-    <assertion id="a">
-      <text>The container parses the XML stream according to the rules of Chapter 9, XML based metadata.  This method may be called at any time by the application or third-party framework.</text>
-      <note>Check that the parse method adds beans etc.</note>
-    </assertion>
+    
   </section>
   
   <section id="11.6" title="Activities">
@@ -6304,22 +4864,6 @@
       <text>Every bean belonging to a parent activity ~also belongs to the child activity, is eligible for injection into other beans belonging to the child activity and~ may be obtained by dynamic lookup via the child activity</text>
     </assertion>
     
-    <assertion id="e">
-      <text>Every interceptor ~and decorator~ belonging to a parent activity also belongs to the child activity ~and may be applied to any bean belonging to the child activity~</text> 
-    </assertion>
-    
-    <assertion id="f">
-      <text>Every interceptor ~and decorator~ belonging to a parent activity ~also belongs to the child activity and~ may be applied to any bean belonging to the child activity</text> 
-    </assertion>
-    
-    <assertion id="g">
-      <text>Every ~interceptor and~ decorator belonging to a parent activity also belongs to the child activity and~ may be applied to any bean belonging to the child activity~</text> 
-    </assertion>
-    
-    <assertion id="h">
-      <text>Every ~interceptor and~ decorator belonging to a parent activity ~also belongs to the child activity and~ may be applied to any bean belonging to the child activity</text> 
-    </assertion>
-    
     <assertion id="j">
       <text>Every observer belonging to a parent activity also belongs to the child activity ~and receives events fired via the child activity~</text>
     </assertion>
@@ -6367,14 +4911,6 @@
     <assertion id="u">
       <text>If a bean registered with a child activity has the bean type and all bindings of some injection point of some bean registered with a~ direct or~ indirect parent activity, a |DeploymentException| is throw by the container at deployment time.</text>
     </assertion>
-   
-    <assertion id="v">
-      <text>The |addInterceptor()| ~and |addDecorator()|~ methods throw |UnsupportedOperationException| when called on a |Manager| object that represents a child activity.</text>
-    </assertion>
-    
-    <assertion id="w">
-      <text>The ~|addInterceptor()| and~ |addDecorator()| methods throw |UnsupportedOperationException| when called on a |Manager| object that represents a child activity.</text>
-    </assertion> 
   
   </section>
   

Added: tck/trunk/interceptor/pom.xml
===================================================================
--- tck/trunk/interceptor/pom.xml	                        (rev 0)
+++ tck/trunk/interceptor/pom.xml	2009-04-16 15:14:19 UTC (rev 2435)
@@ -0,0 +1,292 @@
+<?xml version="1.0"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+   <parent>
+      <artifactId>parent</artifactId>
+      <groupId>org.jboss.jsr299.tck</groupId>
+      <version>1.0.0-SNAPSHOT</version>
+   </parent>
+   <modelVersion>4.0.0</modelVersion>
+   <groupId>org.jboss.jsr299.tck</groupId>
+   <artifactId>jsr299-tck-interceptor-decorator</artifactId>
+   <name>JSR-299 TCK tests and harness (Interceptors and Decorators)</name>
+   
+   <dependencies>
+
+      <dependency>
+         <groupId>org.jboss.webbeans</groupId>
+         <artifactId>jsr299-api</artifactId>
+      </dependency>
+
+      <dependency>
+         <groupId>org.jboss.jsr299.tck</groupId>
+         <artifactId>jsr299-tck-api</artifactId>
+      </dependency>
+      
+      <dependency>
+         <groupId>org.jboss.test-harness</groupId>
+         <artifactId>jboss-test-harness</artifactId>
+      </dependency>
+
+      <dependency>
+         <groupId>org.testng</groupId>
+         <artifactId>testng</artifactId>
+         <classifier>jdk15</classifier>
+      </dependency>
+
+      <dependency>
+         <groupId>javax.servlet</groupId>
+         <artifactId>servlet-api</artifactId>
+      </dependency>
+
+      <dependency>
+         <groupId>javax.transaction</groupId>
+         <artifactId>jta</artifactId>
+      </dependency>
+      
+      <dependency>
+        <groupId>org.hibernate</groupId>
+        <artifactId>tck-utils-api</artifactId>
+     </dependency>
+
+      <dependency>
+         <groupId>org.jboss.ejb3</groupId>
+         <artifactId>jboss-ejb3-api</artifactId>
+         <exclusions>
+         	<exclusion>
+         		<artifactId>jboss-jaxrpc</artifactId>
+         		<groupId>jbossws</groupId>
+         	</exclusion>
+         	<exclusion>
+         		<artifactId>jboss-transaction-api</artifactId>
+         		<groupId>org.jboss.javaee</groupId>
+         	</exclusion>
+         	<exclusion>
+         		<artifactId>jboss-jaxrpc</artifactId>
+         		<groupId>jboss.jbossws</groupId>
+         	</exclusion>
+         </exclusions>
+      </dependency>
+
+      <dependency>
+         <groupId>javax.annotation</groupId>
+         <artifactId>jsr250-api</artifactId>
+      </dependency>
+
+      <dependency>
+         <groupId>log4j</groupId>
+         <artifactId>log4j</artifactId>
+      </dependency>
+
+      <dependency>
+         <groupId>javax.el</groupId>
+         <artifactId>el-api</artifactId>
+      </dependency>
+
+      <dependency>
+         <groupId>javax.faces</groupId>
+         <artifactId>jsf-api</artifactId>
+      </dependency>
+      
+      <dependency>
+      	<groupId>javax.persistence</groupId>
+      	<artifactId>persistence-api</artifactId>
+      </dependency>
+
+      <dependency>
+         <groupId>commons-httpclient</groupId>
+         <artifactId>commons-httpclient</artifactId>
+      </dependency>
+      
+      <dependency>
+         <groupId>net.sourceforge.htmlunit</groupId>
+         <artifactId>htmlunit</artifactId>
+      </dependency>
+
+   </dependencies>
+
+   <build>
+   	<defaultGoal>install</defaultGoal>
+      <plugins>
+         <plugin>
+            <groupId>org.codehaus.mojo</groupId>
+            <artifactId>build-helper-maven-plugin</artifactId>
+            <version>1.2</version>
+            <executions>
+               <execution>
+                  <id>attach-artifacts</id>
+                  <phase>package</phase>
+                  <goals>
+                     <goal>attach-artifact</goal>
+                  </goals>
+                  <configuration>
+                     <artifacts>
+                        <artifact>
+                           <file>${basedir}/src/main/resources/tck-tests.xml</file>
+                           <type>xml</type>
+                           <classifier>suite</classifier>
+                        </artifact>
+                        <artifact>
+                           <file>${basedir}/src/main/resources/tck-audit.xml</file>
+                           <type>xml</type>
+                           <classifier>audit</classifier>
+                        </artifact>
+                     </artifacts>
+                  </configuration>
+               </execution>
+            </executions>
+         </plugin>
+         <plugin>
+            <groupId>org.apache.maven.plugins</groupId>
+            <artifactId>maven-dependency-plugin</artifactId>
+            <executions>
+               <execution>
+                  <id>copy-in-container-dependencies</id>
+                  <phase>compile</phase>
+                  <goals>
+                     <goal>copy</goal>
+                  </goals>
+                  <configuration>
+                     <outputDirectory>${project.build.outputDirectory}/lib</outputDirectory>
+                     <stripVersion>true</stripVersion>
+                     <artifactItems>
+                        <artifactItem>
+                           <groupId>org.jboss.test-harness</groupId>
+                           <artifactId>jboss-test-harness</artifactId>
+                           <overWrite>true</overWrite>
+                        </artifactItem>
+                     </artifactItems>
+                  </configuration>
+               </execution>
+            </executions>
+         </plugin>
+      </plugins>
+   </build>
+   
+   <profiles>
+      <profile>
+         <id>tck-audit</id>
+         <activation>
+           <property>
+             <name>tck-audit</name>
+          </property>
+        </activation>
+         <dependencies>
+            <dependency>
+               <groupId>org.hibernate</groupId>
+               <artifactId>tck-utils-impl</artifactId>
+            </dependency>
+        </dependencies>
+        <build>
+           <plugins>
+              	<plugin>
+              		<groupId>org.apache.maven.plugins</groupId>
+              		<artifactId>maven-compiler-plugin</artifactId>
+                  <configuration>
+                     <source>1.5</source>
+                     <target>1.5</target>
+                     <compilerArgument>-AauditXml=${basedir}/src/main/resources/tck-audit.xml</compilerArgument>
+                  </configuration>
+              	</plugin>
+               <plugin>
+                  <groupId>org.apache.maven.plugins</groupId>
+                  <artifactId>maven-enforcer-plugin</artifactId>
+                  <executions>
+                     <execution>
+                        <id>enforce-versions</id>
+                        <goals>
+                           <goal>enforce</goal>
+                        </goals>
+                        <configuration>
+                           <rules>
+                              <requireJavaVersion>
+                                 <version>1.6</version>
+                              </requireJavaVersion>
+                           </rules>
+                        </configuration>
+                     </execution>
+                  </executions>
+               </plugin>
+               <plugin>
+                  <groupId>org.codehaus.mojo</groupId>
+                  <artifactId>build-helper-maven-plugin</artifactId>
+                  <version>1.2</version>
+                  <executions>
+                     <execution>
+                        <id>attach-artifacts</id>
+                        <phase>package</phase>
+                        <goals>
+                           <goal>attach-artifact</goal>
+                        </goals>
+                        <configuration>
+                           <artifacts>
+                              <artifact>
+                                 <file>${basedir}/src/main/resources/tck-tests.xml</file>
+                                 <type>xml</type>
+                                 <classifier>suite</classifier>
+                              </artifact>
+                              <artifact>
+                                 <file>${basedir}/src/main/resources/tck-audit.xml</file>
+                                 <type>xml</type>
+                                 <classifier>audit</classifier>
+                              </artifact>
+                              <artifact>
+                                 <file>../target/coverage.html</file>
+                                 <type>html</type>
+                                 <classifier>coverage</classifier>
+                              </artifact>
+                           </artifacts>
+                        </configuration>
+                     </execution>
+                  </executions>
+               </plugin>
+           </plugins>
+           <defaultGoal>compile</defaultGoal>
+        </build>
+      </profile>
+      
+      <profile>
+         <id>write-artifacts-to-disk</id>
+         <activation>
+            <property>
+               <name>dumpArtifacts</name>
+            </property>
+         </activation>
+         <build>
+            <plugins>
+               <plugin>
+                  <groupId>org.codehaus.mojo</groupId>
+                  <artifactId>exec-maven-plugin</artifactId>
+                  <executions>
+                     <execution>
+                        <id>generate-jsr-299-artifacts</id>
+                        <phase>package</phase> 
+                        <goals>
+                        <goal>java</goal>
+                        </goals>
+                     </execution>
+                  </executions>
+                  <configuration>
+                     <mainClass>org.jboss.jsr299.tck.api.TCK</mainClass>
+                     <systemProperties>
+                        <systemProperty>
+                           <key>dumpArtifacts</key>
+                           <value>true</value>
+                        </systemProperty>
+                        <systemProperty>
+                           <key>org.jboss.jsr299.tck.outputDirectory</key>
+                           <value>target/jsr299-artifacts</value>
+                        </systemProperty>
+                        <systemProperty>
+                           <key>org.jboss.jsr299.tck.libraryDirectory</key>
+                           <value>${libaryDir}</value>
+                        </systemProperty>
+                     </systemProperties>
+                  </configuration>
+               </plugin>
+            </plugins>
+         </build>
+      </profile>
+      
+ </profiles>   
+
+</project>

Added: tck/trunk/interceptor/src/main/java/org/jboss/jsr299/tck/AbstractJSR299Test.java
===================================================================
--- tck/trunk/interceptor/src/main/java/org/jboss/jsr299/tck/AbstractJSR299Test.java	                        (rev 0)
+++ tck/trunk/interceptor/src/main/java/org/jboss/jsr299/tck/AbstractJSR299Test.java	2009-04-16 15:14:19 UTC (rev 2435)
@@ -0,0 +1,144 @@
+package org.jboss.jsr299.tck;
+
+import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
+import java.io.IOException;
+import java.io.ObjectInputStream;
+import java.io.ObjectOutputStream;
+import java.lang.annotation.Annotation;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+import java.util.Set;
+
+import javax.context.Context;
+import javax.inject.manager.Manager;
+
+import org.jboss.jsr299.tck.api.JSR299Configuration;
+import org.jboss.jsr299.tck.impl.JSR299ConfigurationImpl;
+
+public abstract class AbstractJSR299Test extends org.jboss.testharness.AbstractTest
+{
+   
+   protected abstract static class RunInDependentContext
+   {
+   
+      protected void setup()
+      {
+         getCurrentConfiguration().getContexts().setActive(getCurrentConfiguration().getContexts().getDependentContext());
+      }
+   
+      protected void cleanup()
+      {
+         getCurrentConfiguration().getContexts().setInactive(getCurrentConfiguration().getContexts().getDependentContext());
+      }
+   
+      public final void run() throws Exception
+      {
+         try
+         {
+            setup();
+            execute();
+         }
+         finally
+         {
+            cleanup();
+         }
+      }
+      
+      protected JSR299Configuration getCurrentConfiguration()
+      {
+         return JSR299ConfigurationImpl.get();
+      }
+   
+      protected abstract void execute() throws Exception;
+   
+   }
+   
+   private Manager currentManager;
+   
+   protected void setCurrentManager(Manager currentManager)
+   {
+      this.currentManager = currentManager;
+   }
+   
+
+   protected Manager getCurrentManager()
+   {
+      return currentManager;
+   }
+
+   protected byte[] serialize(Object instance) throws IOException
+   {
+      ByteArrayOutputStream bytes = new ByteArrayOutputStream();
+      ObjectOutputStream out = new ObjectOutputStream(bytes);
+      out.writeObject(instance);
+      return bytes.toByteArray();
+   }
+
+   protected Object deserialize(byte[] bytes) throws IOException, ClassNotFoundException
+   {
+      ObjectInputStream in = new ObjectInputStream(new ByteArrayInputStream(bytes));
+      return in.readObject();
+   }
+
+   protected void setContextActive(Context context)
+   {
+      getCurrentConfiguration().getContexts().setActive(context);
+   }
+
+   protected void setContextInactive(Context context)
+   {
+      getCurrentConfiguration().getContexts().setInactive(context);
+   }
+
+   protected void destroyContext(Context context)
+   {
+      getCurrentConfiguration().getContexts().destroyContext(context);
+   }
+   
+   protected JSR299Configuration getCurrentConfiguration()
+   {
+      return JSR299ConfigurationImpl.get();
+   }
+   
+   @Override
+   public void beforeMethod()
+   {
+      super.beforeMethod();
+      setCurrentManager(getCurrentConfiguration().getManagers().getManager());
+   }
+   
+   @Override
+   public void afterMethod()
+   {
+      super.afterMethod();
+      setCurrentManager(null);
+   }
+   
+   /**
+    * Checks if all annotations are in a given set of annotations
+    * 
+    * @param annotations The annotation set
+    * @param annotationTypes The annotations to match
+    * @return True if match, false otherwise
+    */
+   public boolean annotationSetMatches(Set<Annotation> annotations, Class<? extends Annotation>... annotationTypes)
+   {
+      List<Class<? extends Annotation>> annotationTypeList = new ArrayList<Class<? extends Annotation>>();
+      annotationTypeList.addAll(Arrays.asList(annotationTypes));
+      for (Annotation annotation : annotations)
+      {
+         if (annotationTypeList.contains(annotation.annotationType()))
+         {
+            annotationTypeList.remove(annotation.annotationType());
+         }
+         else
+         {
+            return false;
+         }
+      }
+      return annotationTypeList.size() == 0;
+   }
+   
+}
\ No newline at end of file

Added: tck/trunk/interceptor/src/main/java/org/jboss/jsr299/tck/ForwardingBean.java
===================================================================
--- tck/trunk/interceptor/src/main/java/org/jboss/jsr299/tck/ForwardingBean.java	                        (rev 0)
+++ tck/trunk/interceptor/src/main/java/org/jboss/jsr299/tck/ForwardingBean.java	2009-04-16 15:14:19 UTC (rev 2435)
@@ -0,0 +1,97 @@
+package org.jboss.jsr299.tck;
+
+import java.lang.annotation.Annotation;
+import java.lang.reflect.Type;
+import java.util.Set;
+
+import javax.context.CreationalContext;
+import javax.inject.manager.Bean;
+import javax.inject.manager.InjectionPoint;
+import javax.inject.manager.Manager;
+
+public abstract class ForwardingBean<T> extends Bean<T>
+{
+   
+   protected ForwardingBean(Manager manager)
+   {
+      super(manager);
+   }
+
+   protected abstract Bean<T> delegate();
+
+   @Override
+   public Set<Annotation> getBindings()
+   {
+      return delegate().getBindings();
+   }
+
+   @Override
+   public Class<? extends Annotation> getDeploymentType()
+   {
+      return delegate().getDeploymentType();
+   }
+
+   @Override
+   public Set<? extends InjectionPoint> getInjectionPoints()
+   {
+      return delegate().getInjectionPoints();
+   }
+
+   @Override
+   public String getName()
+   {
+      return delegate().getName();
+   }
+
+   @Override
+   public Class<? extends Annotation> getScopeType()
+   {
+      return delegate().getScopeType();
+   }
+
+   @Override
+   public Set<Type> getTypes()
+   {
+      return delegate().getTypes();
+   }
+
+   @Override
+   public boolean isNullable()
+   {
+      return delegate().isNullable();
+   }
+
+   @Override
+   public boolean isSerializable()
+   {
+      return delegate().isSerializable();
+   }
+
+   public T create(CreationalContext<T> creationalContext)
+   {
+      return delegate().create(creationalContext);
+   }
+
+   public void destroy(T instance)
+   {
+      delegate().destroy(instance);
+   }
+   
+   @Override
+   public boolean equals(Object obj)
+   {
+      return delegate().equals(obj);
+   }
+   
+   @Override
+   public String toString()
+   {
+      return delegate().toString();
+   }
+   
+   @Override
+   public int hashCode()
+   {
+      return delegate().hashCode();
+   }
+}

Added: tck/trunk/interceptor/src/main/java/org/jboss/jsr299/tck/impl/JSR299ConfigurationImpl.java
===================================================================
--- tck/trunk/interceptor/src/main/java/org/jboss/jsr299/tck/impl/JSR299ConfigurationImpl.java	                        (rev 0)
+++ tck/trunk/interceptor/src/main/java/org/jboss/jsr299/tck/impl/JSR299ConfigurationImpl.java	2009-04-16 15:14:19 UTC (rev 2435)
@@ -0,0 +1,98 @@
+package org.jboss.jsr299.tck.impl;
+
+import javax.context.Context;
+
+import org.jboss.jsr299.tck.api.JSR299Configuration;
+import org.jboss.jsr299.tck.spi.Beans;
+import org.jboss.jsr299.tck.spi.Contexts;
+import org.jboss.jsr299.tck.spi.EL;
+import org.jboss.jsr299.tck.spi.Managers;
+import org.jboss.testharness.impl.ConfigurationImpl;
+
+public class JSR299ConfigurationImpl extends ConfigurationImpl implements JSR299Configuration
+{
+   
+   public static JSR299Configuration get()
+   {
+      return ConfigurationImpl.get(JSR299Configuration.class);
+   }
+   
+   public static final String INTEGRATION_TEST_PACKAGE_NAME = "org.jboss.jsr299.tck.integration";
+   public static final String UNIT_TEST_PACKAGE_NAME = "org.jboss.jsr299.tck.unit";
+ 
+   private Beans beans;
+   private Contexts<? extends Context> contexts;
+   private Managers managers;
+   private EL el;
+   
+   protected JSR299ConfigurationImpl()
+   {
+   }
+   
+   public JSR299ConfigurationImpl(JSR299Configuration configuration)
+   {
+      this.beans = configuration.getBeans();
+      this.contexts = configuration.getContexts();
+      this.managers = configuration.getManagers();
+      this.el = configuration.getEl();
+   }
+
+ 
+   public Beans getBeans()
+   {
+      return beans;
+   }
+
+   public void setBeans(Beans beans)
+   {
+      this.beans = beans;
+   }
+
+   @SuppressWarnings("unchecked")
+   public <T extends Context> Contexts<T> getContexts()
+   {
+      return (Contexts<T>) contexts;
+   }
+
+   public <T extends Context> void setContexts(Contexts<T> contexts)
+   {
+      this.contexts = contexts;
+   }
+
+   public Managers getManagers()
+   {
+      return managers;
+   }
+
+   public void setManagers(Managers managers)
+   {
+      this.managers = managers;
+   }
+
+   public EL getEl()
+   {
+      return el;
+   }
+   
+   public void setEl(EL el)
+   {
+      this.el = el;
+   }
+   
+   @Override
+   public String toString()
+   {
+      StringBuilder configuration = new StringBuilder();
+      configuration.append("JSR 299 TCK Configuration\n");
+      configuration.append("-----------------\n");
+      configuration.append("\tBeans: ").append(getBeans()).append("\n");
+      configuration.append("\tContainers: ").append(getContainers()).append("\n");
+      configuration.append("\tContexts: ").append(getContexts()).append("\n");
+      configuration.append("\tEL: ").append(getEl()).append("\n");
+      configuration.append("\tManagers: ").append(getManagers()).append("\n");
+      configuration.append("\n");
+      configuration.append(super.toString());
+      return configuration.toString();
+   }
+   
+}

Added: tck/trunk/interceptor/src/main/java/org/jboss/jsr299/tck/impl/JSR299PropertiesBasedConfigurationBuilder.java
===================================================================
--- tck/trunk/interceptor/src/main/java/org/jboss/jsr299/tck/impl/JSR299PropertiesBasedConfigurationBuilder.java	                        (rev 0)
+++ tck/trunk/interceptor/src/main/java/org/jboss/jsr299/tck/impl/JSR299PropertiesBasedConfigurationBuilder.java	2009-04-16 15:14:19 UTC (rev 2435)
@@ -0,0 +1,45 @@
+package org.jboss.jsr299.tck.impl;
+
+import java.io.IOException;
+
+import javax.context.Context;
+
+import org.jboss.jsr299.tck.AbstractJSR299Test;
+import org.jboss.jsr299.tck.api.JSR299Configuration;
+import org.jboss.jsr299.tck.literals.NewLiteral;
+import org.jboss.jsr299.tck.spi.Beans;
+import org.jboss.jsr299.tck.spi.Contexts;
+import org.jboss.jsr299.tck.spi.EL;
+import org.jboss.jsr299.tck.spi.Managers;
+import org.jboss.testharness.impl.PropertiesBasedConfigurationBuilder;
+
+public class JSR299PropertiesBasedConfigurationBuilder extends PropertiesBasedConfigurationBuilder<JSR299Configuration>
+{
+   
+   public JSR299PropertiesBasedConfigurationBuilder() throws IOException
+   {
+      super(new JSR299ConfigurationImpl());
+      super.getConfiguration().getExtraPackages().add(NewLiteral.class.getPackage().getName());
+      super.getConfiguration().getExtraPackages().add(AbstractJSR299Test.class.getPackage().getName());
+      super.getConfiguration().getExtraPackages().add(JSR299ConfigurationImpl.class.getPackage().getName());
+      super.getConfiguration().getExtraPackages().add(JSR299Configuration.class.getPackage().getName());
+      super.getConfiguration().getExtraPackages().add(Managers.class.getPackage().getName());
+      super.getConfiguration().getExtraDeploymentProperties().add("org.jboss.testharness.api.ConfigurationBuilder=org.jboss.jsr299.tck.impl.JSR299PropertiesBasedConfigurationBuilder");
+   }
+   
+   @Override
+   public JSR299PropertiesBasedConfigurationBuilder init()
+   {
+      super.init();
+      getConfiguration().setManagers(getInstanceValue(Managers.PROPERTY_NAME, Managers.class, true));
+      getConfiguration().setBeans(getInstanceValue(Beans.PROPERTY_NAME, Beans.class, true));
+      getConfiguration().setEl(getInstanceValue(EL.PROPERTY_NAME, EL.class, true));
+      
+      @SuppressWarnings("unchecked")      
+      Contexts<? extends Context> instanceValue = getInstanceValue(Contexts.PROPERTY_NAME, Contexts.class, true);
+      
+      getConfiguration().setContexts(instanceValue);
+      return this;
+   }
+   
+}

Added: tck/trunk/interceptor/src/main/java/org/jboss/jsr299/tck/literals/CurrentLiteral.java
===================================================================
--- tck/trunk/interceptor/src/main/java/org/jboss/jsr299/tck/literals/CurrentLiteral.java	                        (rev 0)
+++ tck/trunk/interceptor/src/main/java/org/jboss/jsr299/tck/literals/CurrentLiteral.java	2009-04-16 15:14:19 UTC (rev 2435)
@@ -0,0 +1,11 @@
+package org.jboss.jsr299.tck.literals;
+
+import javax.inject.AnnotationLiteral;
+import javax.inject.Current;
+
+/**
+ * Annotation literal for @Current
+ * 
+ * @author Pete Muir
+ */
+public class CurrentLiteral extends AnnotationLiteral<Current> implements Current {}
\ No newline at end of file

Added: tck/trunk/interceptor/src/main/java/org/jboss/jsr299/tck/literals/NewLiteral.java
===================================================================
--- tck/trunk/interceptor/src/main/java/org/jboss/jsr299/tck/literals/NewLiteral.java	                        (rev 0)
+++ tck/trunk/interceptor/src/main/java/org/jboss/jsr299/tck/literals/NewLiteral.java	2009-04-16 15:14:19 UTC (rev 2435)
@@ -0,0 +1,9 @@
+package org.jboss.jsr299.tck.literals;
+
+import javax.inject.AnnotationLiteral;
+import javax.inject.New;
+
+public class NewLiteral extends AnnotationLiteral<New> implements New
+{
+   
+}

Added: tck/trunk/interceptor/src/main/resources/META-INF/jboss-test-harness.properties
===================================================================
--- tck/trunk/interceptor/src/main/resources/META-INF/jboss-test-harness.properties	                        (rev 0)
+++ tck/trunk/interceptor/src/main/resources/META-INF/jboss-test-harness.properties	2009-04-16 15:14:19 UTC (rev 2435)
@@ -0,0 +1,2 @@
+org.jboss.testharness.api.ConfigurationBuilder=org.jboss.jsr299.tck.impl.JSR299PropertiesBasedConfigurationBuilder
+org.jboss.testharness.testPackage=org.jboss.jsr299.tck.tests
\ No newline at end of file

Added: tck/trunk/interceptor/src/main/resources/META-INF/tck-unit.properties
===================================================================
--- tck/trunk/interceptor/src/main/resources/META-INF/tck-unit.properties	                        (rev 0)
+++ tck/trunk/interceptor/src/main/resources/META-INF/tck-unit.properties	2009-04-16 15:14:19 UTC (rev 2435)
@@ -0,0 +1,5 @@
+fisheye_base_url=http\://fisheye.jboss.org/browse/Webbeans/tck/trunk/impl/src/main/java
+svn_base_url=http\://anonsvn.jboss.org/repos/webbeans/tck/trunk/impl/src/main/java/
+pass_threshold=75
+fail_threshold=50
+unimplemented_test_groups=stub,broken
\ No newline at end of file

Added: tck/trunk/interceptor/src/main/resources/org/jboss/testharness/impl/packaging/ear/ejb-jar.xml
===================================================================
--- tck/trunk/interceptor/src/main/resources/org/jboss/testharness/impl/packaging/ear/ejb-jar.xml	                        (rev 0)
+++ tck/trunk/interceptor/src/main/resources/org/jboss/testharness/impl/packaging/ear/ejb-jar.xml	2009-04-16 15:14:19 UTC (rev 2435)
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ejb-jar xmlns="http://java.sun.com/xml/ns/javaee" 
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
+         xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/ejb-jar_3_0.xsd"
+         version="3.0">
+   
+</ejb-jar>

Added: tck/trunk/interceptor/src/main/resources/org/jboss/testharness/impl/packaging/jsr299/default/beans.xml
===================================================================

Added: tck/trunk/interceptor/src/main/resources/tck-audit.xml
===================================================================
--- tck/trunk/interceptor/src/main/resources/tck-audit.xml	                        (rev 0)
+++ tck/trunk/interceptor/src/main/resources/tck-audit.xml	2009-04-16 15:14:19 UTC (rev 2435)
@@ -0,0 +1,410 @@
+<specification 
+    xmlns="http://jboss.com/products/webbeans/tck/audit"
+    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xsi:schemaLocation="http://jboss.com/products/webbeans/tck/audit http://snapshots.jboss.org/maven2/org/hibernate/tck-utils-api/0.9-SNAPSHOT/tck-utils-api-0.9-20090220.134140-13-audit.xsd"
+    name="JSR-299: Java Contexts and Dependency Injection" 
+    version="Revised Public Review Draft">
+
+  <section id="2" title="Bean definition">
+    
+    <assertion id="f">
+      <text>A bean comprises of a set of interceptor bindings</text>
+    </assertion>
+    
+  </section>
+  
+  <section id="2.7.1.2" title="Specifying interceptor bindings for a stereotype">
+  
+    <assertion id="a">
+      <text>A stereotype may declare zero interceptor bindings</text>
+    </assertion>
+    
+    <assertion id="b">
+      <text>A stereotype may declare one interceptor binding</text>
+    </assertion>
+    
+    <assertion id="c">
+      <text>A stereotype may declare multiple interceptor bindings</text>
+    </assertion>
+  
+  </section>
+
+  <section id="3" title="Bean Implementation">
+  
+  </section>
+     
+   
+  <section id="3.2" title="Simple beans">
+    
+    <assertion id="cb">
+      <text>The bean class of a simple bean may not be an abstract class, _unless the simple bean is a decorator_</text>
+    </assertion>
+    
+    <assertion id="d">
+      <text>If the bean class of a simple bean is annotated with both the |@Interceptor| and |@Decorator| stereotypes, a |DefinitionException| is thrown by the container at deployment time.</text>
+    </assertion>
+        
+  </section>
+  
+  <section id="3.2.1" title="Which Java classes are beans?">
+  
+    <assertion id="da">
+      <text>A top-level abstract Java class is a simple bean if it is annotated |@Decorator|.</text>
+    </assertion>
+    
+  </section>
+  
+  <section id="3.2.5" title="Simple beans with the @New binding">
+    <assertion id="c">
+      <text>Every class that satisfies the requirements of Section 3.2.1, "Which Java classes are beans?" is a bean, with scope, deployment type and bindings defined using annotations.  Additionally, for each such simple bean, a second simple bean exists which has _the same interceptor bindings defined by annotations_.</text>
+    </assertion>
+    
+  </section>
+  
+  <section id="3.3" title="Session beans">
+    
+    <assertion id="f">
+      <text>If the bean class of a session bean is annotated |@Interceptor|, a |DefinitionException| is thrown by the container at deployment time</text>
+    </assertion>
+
+    <assertion id="g">
+      <text>If the bean class of a session bean is annotated |@Decorator|, a |DefinitionException| is thrown by the container at deployment time</text>
+    </assertion>
+  </section>
+  
+  <section id="3.3.6" title="Session beans with the @New binding">
+
+    
+    <assertion id="c">
+      <text>Every EJB that satisfies the requirements of Section 3.3.2, "Which EJBs are beans?" is a bean, with scope, deployment type and bindings defined using annotations. Additionally, for each such session bean, a second bean exists which has the same interceptor bindings defined by annotations</text>
+    </assertion>
+       
+  </section>
+  
+  <section id="3.8" title="Injected fields">
+
+    <assertion id="i">
+      <text>If a field is a decorator delegate attribute, it is not an injected field</text>
+    </assertion>
+  </section>
+  
+  <section id="3.10" title="Support for Common Annotations">
+    
+    <assertion id="g">
+      <text>Interception, as defined in |javax.interceptor| is provided by the container when annotations are applied to the bean class of a simple bean</text>
+    </assertion>
+    
+  </section>
+  
+  <section id="4" title="Inheritance, specialization and realization">
+
+  </section>
+  
+  <section id="4.1" title="Inheritance of type-level metadata">  
+    
+    <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 Y does not declare 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 Y does not declare 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="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>     
+    
+  </section>
+  
+  <section id="4.2" title="Inheritance of member-level metadata">
+       
+    <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 Y does not override the method x().</text>
+    </assertion>
+    
+    <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 Y does not override the method x().</text>
+    </assertion>
+    
+    <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="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="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 Y does not define 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 does not define 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>
+    
+  </section>
+  
+  <section id="4.4" title="Realization">
+  
+  </section>
+  
+  <section id="4.4.1" title="Using realization">
+    
+    <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>
+    
+  </section>
+  
+  <section id="5" title="Lookup, dependency injection and EL resolution">
+    
+  </section>
+  
+  <section id="5.12" title="Injection into non-contextual objects">
+    
+  </section>
+  
+  <section id="5.12.1" title="Non-contextual instances of session beans">
+        
+    <assertion id="f">
+      <text>The container is required to create interceptor stacks for session bean instances obtained directly from JNDI</text>
+    </assertion>
+    
+    <assertion id="g">
+      <text>The container is required to create interceptor stacks for session bean instances injected using |@EJB|</text>
+    </assertion>
+    
+    <assertion id="h">
+      <text>The container is required to create interceptor stacks for session bean instances injected using |@Resource|</text>
+    </assertion>
+    
+    <assertion id="i">
+      <text>The container is required to create interceptor stacks for session bean instances created by the container to receive remote method calls</text>
+    </assertion>
+    
+    <assertion id="j">
+      <text>The container is required to create interceptor stacks for session bean instances created by the container to receive timeouts</text>
+    </assertion>
+    
+    <assertion id="k">
+      <text>The container is required to create decorator stacks for session bean instances obtained directly from JNDI</text>
+    </assertion>
+    
+    <assertion id="l">
+      <text>The container is required to create decorator stacks for session bean instances injected using |@EJB|</text>
+    </assertion>
+    
+    <assertion id="m">
+      <text>The container is required to create decorator stacks for session bean instances injected using |@Resource|</text>
+    </assertion>
+    
+    <assertion id="n">
+      <text>The container is required to create decorator stacks for session bean instances created by the container to receive remote method calls</text>
+    </assertion>
+    
+    <assertion id="o">
+      <text>The container is required to create decorator stacks for session bean instances created by the container to receive timeouts</text>
+    </assertion>
+    
+    <assertion id="q">
+      <text>For the purposes of interceptor stack creation, the container must treat non-contextual instances of session beans as instances of the most specialized bean that specializes the bean with binding |@New| and deployment type |@Standard| defined in Section 3.3.6, "Session beans with the |@New| binding"</text>
+    </assertion>
+    
+    <assertion id="r">
+      <text>For the purposes of decorator stack creation, the container must treat non-contextual instances of session beans as instances of the most specialized bean that specializes the bean with binding |@New| and deployment type |@Standard| defined in Section 3.3.6, "Session beans with the |@New| binding"</text>
+    </assertion>
+    
+  </section>
+  
+  <section id="5.12.2" title="Message-driven beans">
+    
+    <assertion id="b">
+      <text>The container creates interceptor stacks for message-driven bean instances according to the bean class annotations</text>
+    </assertion>
+    
+    <assertion id="c">
+      <text>The container creates decorator stacks for message-driven bean instances according to the bean class annotations</text>
+    </assertion>
+  </section>
+  
+  <section id="6" title="Bean lifecycle">
+    
+  </section>
+  
+  <section id="6.2" title="Creation">
+    
+    
+    <assertion id="b">
+      <text>The |Contextual.create()| method creates the interceptor stacks and binds them to the instance</text>
+    </assertion>
+    
+    <assertion id="c">
+      <text>The |Contextual.create()| method creates the decorator stacks and binds them to the instance</text>
+    </assertion>
+
+  </section>
+  
+  <section id="6.4" title="Lifecycle of simple beans">
+    <assertion id="a">
+      <text>When the |create()| method of the |Bean| object that represents a simple bean is called, the container first calls the bean constructor to obtain an instance of the bean. For each constructor parameter, the container passes the object returned by |Manager.getInstanceToInject()|. The container is permitted to return an instance of a container-generated subclass of the bean class, allowing interceptor and decorator bindings</text>
+    </assertion>
+    
+    <assertion id="h">
+      <text>When the |create()| method of the |Bean| object that represents a simple bean is called, after all initializer methods are called the container builds the interceptor stacks for the instance as defined in Section A.3.10 "Interceptor stack creation"</text>
+    </assertion>
+    
+    <assertion id="i">
+      <text>When the |create()| method of the |Bean| object that represents a simple bean is called, after all initializer methods are called the container builds the decorator stacks for the instance as defined in Section A.5.8 "Decorator stack creation"</text>
+    </assertion>
+    
+    <assertion id="j">
+      <text>When the |create()| method of the |Bean| object that represents a simple bean is called, after the interceptor and decorator stacks are built the container calls the |@PostConstruct| method, if any</text>
+    </assertion>
+    
+  </section>
+  
+  <section id="6.11" title="Lifecycle of EJBs">
+    
+    <assertion id="d">
+      <text>When the EJB container creates a new instance of an EJB, after Java EE injection has been performed and before the |@PostConstruct| callback occurs the container builds the interceptor stacks for the instance as defined in Section A.3.10, "Interceptor stack creation" and Section A.5.8, "Decorator stack creation" and binds them to the instance</text>
+    </assertion>
+    
+    <assertion id="e">
+      <text>When the EJB container creates a new instance of an EJB, after Java EE injection has been performed and before the |@PostConstruct| callback occurs the container builds the decorator stacks for the instance as defined in Section A.3.10, "Interceptor stack creation" and Section A.5.8, "Decorator stack creation" and binds them to the instance</text>
+    </assertion>
+    
+  </section>
+  
+  <section id="8" title="Scopes and contexts">
+  
+  </section>
+  
+  <section id="8.3" title="Dependent pseudo-scope">
+    
+    <assertion id="n">
+      <text>The |@Dependent| scope is even active during invocation of interceptors and decorators of observer methods and interceptors and decorators of |@PostConstruct| and |@PreDestroy| callbacks</text>
+    </assertion>
+  
+  </section>
+  
+  <section id="8.3.1" title="Dependent objects">
+    
+    <assertion id="b">
+      <text>Instances of interceptors or decorators with scope |@Dependent| are also dependent objects of the bean they intercept or decorate</text>
+    </assertion>
+  </section>
+  
+  <section id="9" title="XML based metadata">
+    
+  </section>  
+  
+  <section id="9.12" title="Deployment declarations">
+   
+  </section>
+  
+  <section id="9.12.2" title="The &lt;Interceptors&gt; declaration">
+    <assertion id="a">
+      <text>Each direct child element of an |&lt;Interceptors&gt;| element is interpreted as the declaring an enabled interceptor, as specified in Section A.3.7, "Interceptor enablement and ordering".</text>
+    </assertion>
+    
+    <assertion id="b">
+      <text>Each child element is interpreted as a Java class. If no such Java class exists in the classpath, a |DefinitionException| is thrown by the container at deployment time.</text>
+    </assertion>
+    
+    <assertion id="c">
+      <text>If the same interceptor is declared more than once, a |DefinitionException| is thrown by the container at deployment time.</text>
+    </assertion>
+  
+  </section>
+  
+  <section id="9.12.3" title="The &lt;Decorators&gt; declaration">
+    <assertion id="a">
+      <text>Each direct child element of a |&lt;Decorators&gt;| element is interpreted as the declaring an enabled decorator, as specified in Section A.5.5, "Decorator enablement and ordering".</text>
+    </assertion>
+    
+    <assertion id="b">
+      <text>Each child element is interpreted as a Java class. If no such Java class exists in the classpath, a |DefinitionException| is thrown by the container at deployment time.</text>
+    </assertion>
+    
+    <assertion id="c">
+      <text>If the same decorator is declared more than once, a |DefinitionException| is thrown by the container at deployment time.</text>
+    </assertion>
+  </section>
+  
+  <section id="11" title="Packaging and Deployment">
+    
+  </section>
+ 
+  <section id="11.2" title="Bean discovery">
+    
+    <assertion id="p">
+      <text>First, the container discovers all ~binding types, stereotypes and~ interceptor binding types declared in XML, according to the rules of Section 9.4, "Stereotype, binding type and interceptor binding type declarations".</text>
+    </assertion>
+
+    <assertion id="aa">
+      <text>Next, the container determines which ~beans,~ interceptors ~and decorators~ are enabled, according to the rules defined in Section 2.5.6, "Enabled deployment types", Section A.3.7, "Interceptor enablement and ordering" and Section A.5.5, "Decorator enablement and ordering", taking into account any ~|&lt;Deploy&gt;|,~ |&lt;Interceptors&gt;| ~and |&lt;Decorators&gt;|~ declarations in the |beans.xml| files.</text>
+    </assertion> 
+    
+    <assertion id="ab">
+      <text>Next, the container determines which ~beans, interceptors and~ decorators are enabled, according to the rules defined in Section 2.5.6, "Enabled deployment types", Section A.3.7, "Interceptor enablement and ordering" and Section A.5.5, "Decorator enablement and ordering", taking into account any ~|&lt;Deploy&gt;|, |&lt;Interceptors&gt;| and~ |&lt;Decorators&gt;| declarations in the |beans.xml| files.</text>
+    </assertion>
+    
+    <assertion id="ad">
+      <text>For each enabled interceptor, the container creates an instance of |Interceptor| and registers it by calling |Manager.addInterceptor()|</text>
+    </assertion>
+    
+    <assertion id="ae">
+      <text>For each enabled decorator, the container creates an instance of |Decorator| and registers it by calling |Manager.addDecorator()|.</text>
+    </assertion>
+
+  </section>
+    
+  <section id="11.4" title="Providing additional XML based metadata"> 
+    
+  </section>
+  
+  <section id="11.6" title="Activities">
+    
+    <assertion id="e">
+      <text>Every interceptor ~and decorator~ belonging to a parent activity also belongs to the child activity ~and may be applied to any bean belonging to the child activity~</text> 
+    </assertion>
+    
+    <assertion id="f">
+      <text>Every interceptor ~and decorator~ belonging to a parent activity ~also belongs to the child activity and~ may be applied to any bean belonging to the child activity</text> 
+    </assertion>
+    
+    <assertion id="g">
+      <text>Every ~interceptor and~ decorator belonging to a parent activity also belongs to the child activity and~ may be applied to any bean belonging to the child activity~</text> 
+    </assertion>
+    
+    <assertion id="h">
+      <text>Every ~interceptor and~ decorator belonging to a parent activity ~also belongs to the child activity and~ may be applied to any bean belonging to the child activity</text> 
+    </assertion>
+   
+    <assertion id="v">
+      <text>The |addInterceptor()| ~and |addDecorator()|~ methods throw |UnsupportedOperationException| when called on a |Manager| object that represents a child activity.</text>
+    </assertion>
+    
+    <assertion id="w">
+      <text>The ~|addInterceptor()| and~ |addDecorator()| methods throw |UnsupportedOperationException| when called on a |Manager| object that represents a child activity.</text>
+    </assertion> 
+  
+  </section>
+
+</specification>

Added: tck/trunk/interceptor/src/main/resources/tck-tests.xml
===================================================================
--- tck/trunk/interceptor/src/main/resources/tck-tests.xml	                        (rev 0)
+++ tck/trunk/interceptor/src/main/resources/tck-tests.xml	2009-04-16 15:14:19 UTC (rev 2435)
@@ -0,0 +1,26 @@
+<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
+
+<suite name="JSR-299 TCK" verbose="2"  >
+   <test name="JSR-299 TCK" >
+      <method-selectors>
+         <method-selector>
+            <selector-class name="org.jboss.testharness.impl.testng.DisableIntegrationTestsMethodSelector" />
+         </method-selector>
+         <method-selector>
+            <selector-class name="org.jboss.testharness.impl.testng.ExcludeIncontainerUnderInvestigationMethodSelector" />
+         </method-selector>
+      </method-selectors>
+      <groups>
+         <run>
+            <exclude name="stub" />
+            <exclude name="ri-broken" />
+            <exclude name="underInvestigation" />
+            <exclude name="broken" />         
+         </run>
+      </groups>
+      <packages>
+         <package name="org.jboss.jsr299.tck.tests" />
+      </packages>
+   </test>
+   
+</suite>
\ No newline at end of file

Added: tck/trunk/xml/pom.xml
===================================================================
--- tck/trunk/xml/pom.xml	                        (rev 0)
+++ tck/trunk/xml/pom.xml	2009-04-16 15:14:19 UTC (rev 2435)
@@ -0,0 +1,292 @@
+<?xml version="1.0"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+   <parent>
+      <artifactId>parent</artifactId>
+      <groupId>org.jboss.jsr299.tck</groupId>
+      <version>1.0.0-SNAPSHOT</version>
+   </parent>
+   <modelVersion>4.0.0</modelVersion>
+   <groupId>org.jboss.jsr299.tck</groupId>
+   <artifactId>jsr299-tck-xml-beans</artifactId>
+   <name>JSR-299 TCK tests and harness (XML bean definition)</name>
+   
+   <dependencies>
+
+      <dependency>
+         <groupId>org.jboss.webbeans</groupId>
+         <artifactId>jsr299-api</artifactId>
+      </dependency>
+
+      <dependency>
+         <groupId>org.jboss.jsr299.tck</groupId>
+         <artifactId>jsr299-tck-api</artifactId>
+      </dependency>
+      
+      <dependency>
+         <groupId>org.jboss.test-harness</groupId>
+         <artifactId>jboss-test-harness</artifactId>
+      </dependency>
+
+      <dependency>
+         <groupId>org.testng</groupId>
+         <artifactId>testng</artifactId>
+         <classifier>jdk15</classifier>
+      </dependency>
+
+      <dependency>
+         <groupId>javax.servlet</groupId>
+         <artifactId>servlet-api</artifactId>
+      </dependency>
+
+      <dependency>
+         <groupId>javax.transaction</groupId>
+         <artifactId>jta</artifactId>
+      </dependency>
+      
+      <dependency>
+        <groupId>org.hibernate</groupId>
+        <artifactId>tck-utils-api</artifactId>
+     </dependency>
+
+      <dependency>
+         <groupId>org.jboss.ejb3</groupId>
+         <artifactId>jboss-ejb3-api</artifactId>
+         <exclusions>
+         	<exclusion>
+         		<artifactId>jboss-jaxrpc</artifactId>
+         		<groupId>jbossws</groupId>
+         	</exclusion>
+         	<exclusion>
+         		<artifactId>jboss-transaction-api</artifactId>
+         		<groupId>org.jboss.javaee</groupId>
+         	</exclusion>
+         	<exclusion>
+         		<artifactId>jboss-jaxrpc</artifactId>
+         		<groupId>jboss.jbossws</groupId>
+         	</exclusion>
+         </exclusions>
+      </dependency>
+
+      <dependency>
+         <groupId>javax.annotation</groupId>
+         <artifactId>jsr250-api</artifactId>
+      </dependency>
+
+      <dependency>
+         <groupId>log4j</groupId>
+         <artifactId>log4j</artifactId>
+      </dependency>
+
+      <dependency>
+         <groupId>javax.el</groupId>
+         <artifactId>el-api</artifactId>
+      </dependency>
+
+      <dependency>
+         <groupId>javax.faces</groupId>
+         <artifactId>jsf-api</artifactId>
+      </dependency>
+      
+      <dependency>
+      	<groupId>javax.persistence</groupId>
+      	<artifactId>persistence-api</artifactId>
+      </dependency>
+
+      <dependency>
+         <groupId>commons-httpclient</groupId>
+         <artifactId>commons-httpclient</artifactId>
+      </dependency>
+      
+      <dependency>
+         <groupId>net.sourceforge.htmlunit</groupId>
+         <artifactId>htmlunit</artifactId>
+      </dependency>
+
+   </dependencies>
+
+   <build>
+   	<defaultGoal>install</defaultGoal>
+      <plugins>
+         <plugin>
+            <groupId>org.codehaus.mojo</groupId>
+            <artifactId>build-helper-maven-plugin</artifactId>
+            <version>1.2</version>
+            <executions>
+               <execution>
+                  <id>attach-artifacts</id>
+                  <phase>package</phase>
+                  <goals>
+                     <goal>attach-artifact</goal>
+                  </goals>
+                  <configuration>
+                     <artifacts>
+                        <artifact>
+                           <file>${basedir}/src/main/resources/tck-tests.xml</file>
+                           <type>xml</type>
+                           <classifier>suite</classifier>
+                        </artifact>
+                        <artifact>
+                           <file>${basedir}/src/main/resources/tck-audit.xml</file>
+                           <type>xml</type>
+                           <classifier>audit</classifier>
+                        </artifact>
+                     </artifacts>
+                  </configuration>
+               </execution>
+            </executions>
+         </plugin>
+         <plugin>
+            <groupId>org.apache.maven.plugins</groupId>
+            <artifactId>maven-dependency-plugin</artifactId>
+            <executions>
+               <execution>
+                  <id>copy-in-container-dependencies</id>
+                  <phase>compile</phase>
+                  <goals>
+                     <goal>copy</goal>
+                  </goals>
+                  <configuration>
+                     <outputDirectory>${project.build.outputDirectory}/lib</outputDirectory>
+                     <stripVersion>true</stripVersion>
+                     <artifactItems>
+                        <artifactItem>
+                           <groupId>org.jboss.test-harness</groupId>
+                           <artifactId>jboss-test-harness</artifactId>
+                           <overWrite>true</overWrite>
+                        </artifactItem>
+                     </artifactItems>
+                  </configuration>
+               </execution>
+            </executions>
+         </plugin>
+      </plugins>
+   </build>
+   
+   <profiles>
+      <profile>
+         <id>tck-audit</id>
+         <activation>
+           <property>
+             <name>tck-audit</name>
+          </property>
+        </activation>
+         <dependencies>
+            <dependency>
+               <groupId>org.hibernate</groupId>
+               <artifactId>tck-utils-impl</artifactId>
+            </dependency>
+        </dependencies>
+        <build>
+           <plugins>
+              	<plugin>
+              		<groupId>org.apache.maven.plugins</groupId>
+              		<artifactId>maven-compiler-plugin</artifactId>
+                  <configuration>
+                     <source>1.5</source>
+                     <target>1.5</target>
+                     <compilerArgument>-AauditXml=${basedir}/src/main/resources/tck-audit.xml</compilerArgument>
+                  </configuration>
+              	</plugin>
+               <plugin>
+                  <groupId>org.apache.maven.plugins</groupId>
+                  <artifactId>maven-enforcer-plugin</artifactId>
+                  <executions>
+                     <execution>
+                        <id>enforce-versions</id>
+                        <goals>
+                           <goal>enforce</goal>
+                        </goals>
+                        <configuration>
+                           <rules>
+                              <requireJavaVersion>
+                                 <version>1.6</version>
+                              </requireJavaVersion>
+                           </rules>
+                        </configuration>
+                     </execution>
+                  </executions>
+               </plugin>
+               <plugin>
+                  <groupId>org.codehaus.mojo</groupId>
+                  <artifactId>build-helper-maven-plugin</artifactId>
+                  <version>1.2</version>
+                  <executions>
+                     <execution>
+                        <id>attach-artifacts</id>
+                        <phase>package</phase>
+                        <goals>
+                           <goal>attach-artifact</goal>
+                        </goals>
+                        <configuration>
+                           <artifacts>
+                              <artifact>
+                                 <file>${basedir}/src/main/resources/tck-tests.xml</file>
+                                 <type>xml</type>
+                                 <classifier>suite</classifier>
+                              </artifact>
+                              <artifact>
+                                 <file>${basedir}/src/main/resources/tck-audit.xml</file>
+                                 <type>xml</type>
+                                 <classifier>audit</classifier>
+                              </artifact>
+                              <artifact>
+                                 <file>../target/coverage.html</file>
+                                 <type>html</type>
+                                 <classifier>coverage</classifier>
+                              </artifact>
+                           </artifacts>
+                        </configuration>
+                     </execution>
+                  </executions>
+               </plugin>
+           </plugins>
+           <defaultGoal>compile</defaultGoal>
+        </build>
+      </profile>
+      
+      <profile>
+         <id>write-artifacts-to-disk</id>
+         <activation>
+            <property>
+               <name>dumpArtifacts</name>
+            </property>
+         </activation>
+         <build>
+            <plugins>
+               <plugin>
+                  <groupId>org.codehaus.mojo</groupId>
+                  <artifactId>exec-maven-plugin</artifactId>
+                  <executions>
+                     <execution>
+                        <id>generate-jsr-299-artifacts</id>
+                        <phase>package</phase> 
+                        <goals>
+                        <goal>java</goal>
+                        </goals>
+                     </execution>
+                  </executions>
+                  <configuration>
+                     <mainClass>org.jboss.jsr299.tck.api.TCK</mainClass>
+                     <systemProperties>
+                        <systemProperty>
+                           <key>dumpArtifacts</key>
+                           <value>true</value>
+                        </systemProperty>
+                        <systemProperty>
+                           <key>org.jboss.jsr299.tck.outputDirectory</key>
+                           <value>target/jsr299-artifacts</value>
+                        </systemProperty>
+                        <systemProperty>
+                           <key>org.jboss.jsr299.tck.libraryDirectory</key>
+                           <value>${libaryDir}</value>
+                        </systemProperty>
+                     </systemProperties>
+                  </configuration>
+               </plugin>
+            </plugins>
+         </build>
+      </profile>
+      
+ </profiles>   
+
+</project>

Added: tck/trunk/xml/src/main/java/org/jboss/jsr299/tck/AbstractJSR299Test.java
===================================================================
--- tck/trunk/xml/src/main/java/org/jboss/jsr299/tck/AbstractJSR299Test.java	                        (rev 0)
+++ tck/trunk/xml/src/main/java/org/jboss/jsr299/tck/AbstractJSR299Test.java	2009-04-16 15:14:19 UTC (rev 2435)
@@ -0,0 +1,144 @@
+package org.jboss.jsr299.tck;
+
+import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
+import java.io.IOException;
+import java.io.ObjectInputStream;
+import java.io.ObjectOutputStream;
+import java.lang.annotation.Annotation;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+import java.util.Set;
+
+import javax.context.Context;
+import javax.inject.manager.Manager;
+
+import org.jboss.jsr299.tck.api.JSR299Configuration;
+import org.jboss.jsr299.tck.impl.JSR299ConfigurationImpl;
+
+public abstract class AbstractJSR299Test extends org.jboss.testharness.AbstractTest
+{
+   
+   protected abstract static class RunInDependentContext
+   {
+   
+      protected void setup()
+      {
+         getCurrentConfiguration().getContexts().setActive(getCurrentConfiguration().getContexts().getDependentContext());
+      }
+   
+      protected void cleanup()
+      {
+         getCurrentConfiguration().getContexts().setInactive(getCurrentConfiguration().getContexts().getDependentContext());
+      }
+   
+      public final void run() throws Exception
+      {
+         try
+         {
+            setup();
+            execute();
+         }
+         finally
+         {
+            cleanup();
+         }
+      }
+      
+      protected JSR299Configuration getCurrentConfiguration()
+      {
+         return JSR299ConfigurationImpl.get();
+      }
+   
+      protected abstract void execute() throws Exception;
+   
+   }
+   
+   private Manager currentManager;
+   
+   protected void setCurrentManager(Manager currentManager)
+   {
+      this.currentManager = currentManager;
+   }
+   
+
+   protected Manager getCurrentManager()
+   {
+      return currentManager;
+   }
+
+   protected byte[] serialize(Object instance) throws IOException
+   {
+      ByteArrayOutputStream bytes = new ByteArrayOutputStream();
+      ObjectOutputStream out = new ObjectOutputStream(bytes);
+      out.writeObject(instance);
+      return bytes.toByteArray();
+   }
+
+   protected Object deserialize(byte[] bytes) throws IOException, ClassNotFoundException
+   {
+      ObjectInputStream in = new ObjectInputStream(new ByteArrayInputStream(bytes));
+      return in.readObject();
+   }
+
+   protected void setContextActive(Context context)
+   {
+      getCurrentConfiguration().getContexts().setActive(context);
+   }
+
+   protected void setContextInactive(Context context)
+   {
+      getCurrentConfiguration().getContexts().setInactive(context);
+   }
+
+   protected void destroyContext(Context context)
+   {
+      getCurrentConfiguration().getContexts().destroyContext(context);
+   }
+   
+   protected JSR299Configuration getCurrentConfiguration()
+   {
+      return JSR299ConfigurationImpl.get();
+   }
+   
+   @Override
+   public void beforeMethod()
+   {
+      super.beforeMethod();
+      setCurrentManager(getCurrentConfiguration().getManagers().getManager());
+   }
+   
+   @Override
+   public void afterMethod()
+   {
+      super.afterMethod();
+      setCurrentManager(null);
+   }
+   
+   /**
+    * Checks if all annotations are in a given set of annotations
+    * 
+    * @param annotations The annotation set
+    * @param annotationTypes The annotations to match
+    * @return True if match, false otherwise
+    */
+   public boolean annotationSetMatches(Set<Annotation> annotations, Class<? extends Annotation>... annotationTypes)
+   {
+      List<Class<? extends Annotation>> annotationTypeList = new ArrayList<Class<? extends Annotation>>();
+      annotationTypeList.addAll(Arrays.asList(annotationTypes));
+      for (Annotation annotation : annotations)
+      {
+         if (annotationTypeList.contains(annotation.annotationType()))
+         {
+            annotationTypeList.remove(annotation.annotationType());
+         }
+         else
+         {
+            return false;
+         }
+      }
+      return annotationTypeList.size() == 0;
+   }
+   
+}
\ No newline at end of file

Added: tck/trunk/xml/src/main/java/org/jboss/jsr299/tck/ForwardingBean.java
===================================================================
--- tck/trunk/xml/src/main/java/org/jboss/jsr299/tck/ForwardingBean.java	                        (rev 0)
+++ tck/trunk/xml/src/main/java/org/jboss/jsr299/tck/ForwardingBean.java	2009-04-16 15:14:19 UTC (rev 2435)
@@ -0,0 +1,97 @@
+package org.jboss.jsr299.tck;
+
+import java.lang.annotation.Annotation;
+import java.lang.reflect.Type;
+import java.util.Set;
+
+import javax.context.CreationalContext;
+import javax.inject.manager.Bean;
+import javax.inject.manager.InjectionPoint;
+import javax.inject.manager.Manager;
+
+public abstract class ForwardingBean<T> extends Bean<T>
+{
+   
+   protected ForwardingBean(Manager manager)
+   {
+      super(manager);
+   }
+
+   protected abstract Bean<T> delegate();
+
+   @Override
+   public Set<Annotation> getBindings()
+   {
+      return delegate().getBindings();
+   }
+
+   @Override
+   public Class<? extends Annotation> getDeploymentType()
+   {
+      return delegate().getDeploymentType();
+   }
+
+   @Override
+   public Set<? extends InjectionPoint> getInjectionPoints()
+   {
+      return delegate().getInjectionPoints();
+   }
+
+   @Override
+   public String getName()
+   {
+      return delegate().getName();
+   }
+
+   @Override
+   public Class<? extends Annotation> getScopeType()
+   {
+      return delegate().getScopeType();
+   }
+
+   @Override
+   public Set<Type> getTypes()
+   {
+      return delegate().getTypes();
+   }
+
+   @Override
+   public boolean isNullable()
+   {
+      return delegate().isNullable();
+   }
+
+   @Override
+   public boolean isSerializable()
+   {
+      return delegate().isSerializable();
+   }
+
+   public T create(CreationalContext<T> creationalContext)
+   {
+      return delegate().create(creationalContext);
+   }
+
+   public void destroy(T instance)
+   {
+      delegate().destroy(instance);
+   }
+   
+   @Override
+   public boolean equals(Object obj)
+   {
+      return delegate().equals(obj);
+   }
+   
+   @Override
+   public String toString()
+   {
+      return delegate().toString();
+   }
+   
+   @Override
+   public int hashCode()
+   {
+      return delegate().hashCode();
+   }
+}

Added: tck/trunk/xml/src/main/java/org/jboss/jsr299/tck/impl/JSR299ConfigurationImpl.java
===================================================================
--- tck/trunk/xml/src/main/java/org/jboss/jsr299/tck/impl/JSR299ConfigurationImpl.java	                        (rev 0)
+++ tck/trunk/xml/src/main/java/org/jboss/jsr299/tck/impl/JSR299ConfigurationImpl.java	2009-04-16 15:14:19 UTC (rev 2435)
@@ -0,0 +1,98 @@
+package org.jboss.jsr299.tck.impl;
+
+import javax.context.Context;
+
+import org.jboss.jsr299.tck.api.JSR299Configuration;
+import org.jboss.jsr299.tck.spi.Beans;
+import org.jboss.jsr299.tck.spi.Contexts;
+import org.jboss.jsr299.tck.spi.EL;
+import org.jboss.jsr299.tck.spi.Managers;
+import org.jboss.testharness.impl.ConfigurationImpl;
+
+public class JSR299ConfigurationImpl extends ConfigurationImpl implements JSR299Configuration
+{
+   
+   public static JSR299Configuration get()
+   {
+      return ConfigurationImpl.get(JSR299Configuration.class);
+   }
+   
+   public static final String INTEGRATION_TEST_PACKAGE_NAME = "org.jboss.jsr299.tck.integration";
+   public static final String UNIT_TEST_PACKAGE_NAME = "org.jboss.jsr299.tck.unit";
+ 
+   private Beans beans;
+   private Contexts<? extends Context> contexts;
+   private Managers managers;
+   private EL el;
+   
+   protected JSR299ConfigurationImpl()
+   {
+   }
+   
+   public JSR299ConfigurationImpl(JSR299Configuration configuration)
+   {
+      this.beans = configuration.getBeans();
+      this.contexts = configuration.getContexts();
+      this.managers = configuration.getManagers();
+      this.el = configuration.getEl();
+   }
+
+ 
+   public Beans getBeans()
+   {
+      return beans;
+   }
+
+   public void setBeans(Beans beans)
+   {
+      this.beans = beans;
+   }
+
+   @SuppressWarnings("unchecked")
+   public <T extends Context> Contexts<T> getContexts()
+   {
+      return (Contexts<T>) contexts;
+   }
+
+   public <T extends Context> void setContexts(Contexts<T> contexts)
+   {
+      this.contexts = contexts;
+   }
+
+   public Managers getManagers()
+   {
+      return managers;
+   }
+
+   public void setManagers(Managers managers)
+   {
+      this.managers = managers;
+   }
+
+   public EL getEl()
+   {
+      return el;
+   }
+   
+   public void setEl(EL el)
+   {
+      this.el = el;
+   }
+   
+   @Override
+   public String toString()
+   {
+      StringBuilder configuration = new StringBuilder();
+      configuration.append("JSR 299 TCK Configuration\n");
+      configuration.append("-----------------\n");
+      configuration.append("\tBeans: ").append(getBeans()).append("\n");
+      configuration.append("\tContainers: ").append(getContainers()).append("\n");
+      configuration.append("\tContexts: ").append(getContexts()).append("\n");
+      configuration.append("\tEL: ").append(getEl()).append("\n");
+      configuration.append("\tManagers: ").append(getManagers()).append("\n");
+      configuration.append("\n");
+      configuration.append(super.toString());
+      return configuration.toString();
+   }
+   
+}

Added: tck/trunk/xml/src/main/java/org/jboss/jsr299/tck/impl/JSR299PropertiesBasedConfigurationBuilder.java
===================================================================
--- tck/trunk/xml/src/main/java/org/jboss/jsr299/tck/impl/JSR299PropertiesBasedConfigurationBuilder.java	                        (rev 0)
+++ tck/trunk/xml/src/main/java/org/jboss/jsr299/tck/impl/JSR299PropertiesBasedConfigurationBuilder.java	2009-04-16 15:14:19 UTC (rev 2435)
@@ -0,0 +1,45 @@
+package org.jboss.jsr299.tck.impl;
+
+import java.io.IOException;
+
+import javax.context.Context;
+
+import org.jboss.jsr299.tck.AbstractJSR299Test;
+import org.jboss.jsr299.tck.api.JSR299Configuration;
+import org.jboss.jsr299.tck.literals.NewLiteral;
+import org.jboss.jsr299.tck.spi.Beans;
+import org.jboss.jsr299.tck.spi.Contexts;
+import org.jboss.jsr299.tck.spi.EL;
+import org.jboss.jsr299.tck.spi.Managers;
+import org.jboss.testharness.impl.PropertiesBasedConfigurationBuilder;
+
+public class JSR299PropertiesBasedConfigurationBuilder extends PropertiesBasedConfigurationBuilder<JSR299Configuration>
+{
+   
+   public JSR299PropertiesBasedConfigurationBuilder() throws IOException
+   {
+      super(new JSR299ConfigurationImpl());
+      super.getConfiguration().getExtraPackages().add(NewLiteral.class.getPackage().getName());
+      super.getConfiguration().getExtraPackages().add(AbstractJSR299Test.class.getPackage().getName());
+      super.getConfiguration().getExtraPackages().add(JSR299ConfigurationImpl.class.getPackage().getName());
+      super.getConfiguration().getExtraPackages().add(JSR299Configuration.class.getPackage().getName());
+      super.getConfiguration().getExtraPackages().add(Managers.class.getPackage().getName());
+      super.getConfiguration().getExtraDeploymentProperties().add("org.jboss.testharness.api.ConfigurationBuilder=org.jboss.jsr299.tck.impl.JSR299PropertiesBasedConfigurationBuilder");
+   }
+   
+   @Override
+   public JSR299PropertiesBasedConfigurationBuilder init()
+   {
+      super.init();
+      getConfiguration().setManagers(getInstanceValue(Managers.PROPERTY_NAME, Managers.class, true));
+      getConfiguration().setBeans(getInstanceValue(Beans.PROPERTY_NAME, Beans.class, true));
+      getConfiguration().setEl(getInstanceValue(EL.PROPERTY_NAME, EL.class, true));
+      
+      @SuppressWarnings("unchecked")      
+      Contexts<? extends Context> instanceValue = getInstanceValue(Contexts.PROPERTY_NAME, Contexts.class, true);
+      
+      getConfiguration().setContexts(instanceValue);
+      return this;
+   }
+   
+}

Added: tck/trunk/xml/src/main/java/org/jboss/jsr299/tck/literals/CurrentLiteral.java
===================================================================
--- tck/trunk/xml/src/main/java/org/jboss/jsr299/tck/literals/CurrentLiteral.java	                        (rev 0)
+++ tck/trunk/xml/src/main/java/org/jboss/jsr299/tck/literals/CurrentLiteral.java	2009-04-16 15:14:19 UTC (rev 2435)
@@ -0,0 +1,11 @@
+package org.jboss.jsr299.tck.literals;
+
+import javax.inject.AnnotationLiteral;
+import javax.inject.Current;
+
+/**
+ * Annotation literal for @Current
+ * 
+ * @author Pete Muir
+ */
+public class CurrentLiteral extends AnnotationLiteral<Current> implements Current {}
\ No newline at end of file

Added: tck/trunk/xml/src/main/java/org/jboss/jsr299/tck/literals/NewLiteral.java
===================================================================
--- tck/trunk/xml/src/main/java/org/jboss/jsr299/tck/literals/NewLiteral.java	                        (rev 0)
+++ tck/trunk/xml/src/main/java/org/jboss/jsr299/tck/literals/NewLiteral.java	2009-04-16 15:14:19 UTC (rev 2435)
@@ -0,0 +1,9 @@
+package org.jboss.jsr299.tck.literals;
+
+import javax.inject.AnnotationLiteral;
+import javax.inject.New;
+
+public class NewLiteral extends AnnotationLiteral<New> implements New
+{
+   
+}

Added: tck/trunk/xml/src/main/java/org/jboss/jsr299/tck/tests/implementation/simple/lifecycle/Animal.java
===================================================================
--- tck/trunk/xml/src/main/java/org/jboss/jsr299/tck/tests/implementation/simple/lifecycle/Animal.java	                        (rev 0)
+++ tck/trunk/xml/src/main/java/org/jboss/jsr299/tck/tests/implementation/simple/lifecycle/Animal.java	2009-04-16 15:14:19 UTC (rev 2435)
@@ -0,0 +1,6 @@
+package org.jboss.jsr299.tck.tests.implementation.simple.lifecycle;
+
+interface Animal
+{
+
+}

Added: tck/trunk/xml/src/main/java/org/jboss/jsr299/tck/tests/implementation/simple/lifecycle/AnotherDeploymentType.java
===================================================================
--- tck/trunk/xml/src/main/java/org/jboss/jsr299/tck/tests/implementation/simple/lifecycle/AnotherDeploymentType.java	                        (rev 0)
+++ tck/trunk/xml/src/main/java/org/jboss/jsr299/tck/tests/implementation/simple/lifecycle/AnotherDeploymentType.java	2009-04-16 15:14:19 UTC (rev 2435)
@@ -0,0 +1,20 @@
+package org.jboss.jsr299.tck.tests.implementation.simple.lifecycle;
+
+import static java.lang.annotation.ElementType.METHOD;
+import static java.lang.annotation.ElementType.TYPE;
+import static java.lang.annotation.RetentionPolicy.RUNTIME;
+
+import java.lang.annotation.Documented;
+import java.lang.annotation.Retention;
+import java.lang.annotation.Target;
+
+import javax.inject.DeploymentType;
+
+ at Target( { TYPE, METHOD })
+ at Retention(RUNTIME)
+ at Documented
+ at DeploymentType
+ at interface AnotherDeploymentType
+{
+
+}

Added: tck/trunk/xml/src/main/java/org/jboss/jsr299/tck/tests/implementation/simple/lifecycle/BookOrderProcessor.java
===================================================================
--- tck/trunk/xml/src/main/java/org/jboss/jsr299/tck/tests/implementation/simple/lifecycle/BookOrderProcessor.java	                        (rev 0)
+++ tck/trunk/xml/src/main/java/org/jboss/jsr299/tck/tests/implementation/simple/lifecycle/BookOrderProcessor.java	2009-04-16 15:14:19 UTC (rev 2435)
@@ -0,0 +1,12 @@
+package org.jboss.jsr299.tck.tests.implementation.simple.lifecycle;
+
+class BookOrderProcessor extends OrderProcessor
+{
+   
+   @Override
+   public void postConstruct() {}
+   
+   @Override
+   public void preDestroy() {}
+   
+}

Added: tck/trunk/xml/src/main/java/org/jboss/jsr299/tck/tests/implementation/simple/lifecycle/CdOrderProcessor.java
===================================================================
--- tck/trunk/xml/src/main/java/org/jboss/jsr299/tck/tests/implementation/simple/lifecycle/CdOrderProcessor.java	                        (rev 0)
+++ tck/trunk/xml/src/main/java/org/jboss/jsr299/tck/tests/implementation/simple/lifecycle/CdOrderProcessor.java	2009-04-16 15:14:19 UTC (rev 2435)
@@ -0,0 +1,6 @@
+package org.jboss.jsr299.tck.tests.implementation.simple.lifecycle;
+
+class CdOrderProcessor extends OrderProcessor
+{
+   
+}

Added: tck/trunk/xml/src/main/java/org/jboss/jsr299/tck/tests/implementation/simple/lifecycle/Cod.java
===================================================================
--- tck/trunk/xml/src/main/java/org/jboss/jsr299/tck/tests/implementation/simple/lifecycle/Cod.java	                        (rev 0)
+++ tck/trunk/xml/src/main/java/org/jboss/jsr299/tck/tests/implementation/simple/lifecycle/Cod.java	2009-04-16 15:14:19 UTC (rev 2435)
@@ -0,0 +1,14 @@
+package org.jboss.jsr299.tck.tests.implementation.simple.lifecycle;
+
+import javax.annotation.PreDestroy;
+import javax.context.RequestScoped;
+
+ at RequestScoped
+class Cod
+{
+   @PreDestroy
+   public void destroyWithProblem()
+   {
+      throw new RuntimeException("Some error");
+   }
+}

Added: tck/trunk/xml/src/main/java/org/jboss/jsr299/tck/tests/implementation/simple/lifecycle/Duck.java
===================================================================
--- tck/trunk/xml/src/main/java/org/jboss/jsr299/tck/tests/implementation/simple/lifecycle/Duck.java	                        (rev 0)
+++ tck/trunk/xml/src/main/java/org/jboss/jsr299/tck/tests/implementation/simple/lifecycle/Duck.java	2009-04-16 15:14:19 UTC (rev 2435)
@@ -0,0 +1,29 @@
+package org.jboss.jsr299.tck.tests.implementation.simple.lifecycle;
+
+import javax.inject.Initializer;
+import javax.inject.Produces;
+import javax.inject.Production;
+
+
+ at Production
+class Duck
+{
+   
+   @Produces public static String foo = "foo";
+   
+   @Produces public static Integer bar = 1;
+   
+   @Produces @Synchronous public static Integer synchronousBar = 2;
+   
+   public static boolean constructedCorrectly = false;
+   
+   @Initializer
+   public Duck(String foo, @Synchronous Integer bar)
+   {
+      if (foo.equals(Duck.foo) && bar.equals(Duck.synchronousBar))
+      {
+         constructedCorrectly = true;
+      }
+   }
+   
+}

Added: tck/trunk/xml/src/main/java/org/jboss/jsr299/tck/tests/implementation/simple/lifecycle/Egg.java
===================================================================
--- tck/trunk/xml/src/main/java/org/jboss/jsr299/tck/tests/implementation/simple/lifecycle/Egg.java	                        (rev 0)
+++ tck/trunk/xml/src/main/java/org/jboss/jsr299/tck/tests/implementation/simple/lifecycle/Egg.java	2009-04-16 15:14:19 UTC (rev 2435)
@@ -0,0 +1,24 @@
+package org.jboss.jsr299.tck.tests.implementation.simple.lifecycle;
+
+import javax.annotation.PreDestroy;
+
+public class Egg
+{
+   private static boolean eggDestroyed = false;
+   
+   public Egg()
+   {
+      eggDestroyed = false;
+   }
+
+   @PreDestroy
+   public void destroy()
+   {
+      eggDestroyed = true;
+   }
+
+   public static boolean isEggDestroyed()
+   {
+      return eggDestroyed;
+   }
+}

Added: tck/trunk/xml/src/main/java/org/jboss/jsr299/tck/tests/implementation/simple/lifecycle/EggProducer.java
===================================================================
--- tck/trunk/xml/src/main/java/org/jboss/jsr299/tck/tests/implementation/simple/lifecycle/EggProducer.java	                        (rev 0)
+++ tck/trunk/xml/src/main/java/org/jboss/jsr299/tck/tests/implementation/simple/lifecycle/EggProducer.java	2009-04-16 15:14:19 UTC (rev 2435)
@@ -0,0 +1,26 @@
+package org.jboss.jsr299.tck.tests.implementation.simple.lifecycle;
+
+import javax.inject.Disposes;
+import javax.inject.Produces;
+
+public class EggProducer
+{
+   private static boolean eggDisposed = false;
+   
+   @Produces @Synchronous
+   public Egg nextEgg()
+   {
+      eggDisposed = false;
+      return new Egg();
+   }
+   
+   public void disposeEgg(@Disposes @Synchronous Egg egg)
+   {
+      eggDisposed = true;
+   }
+
+   public static boolean isEggDisposed()
+   {
+      return eggDisposed;
+   }
+}

Added: tck/trunk/xml/src/main/java/org/jboss/jsr299/tck/tests/implementation/simple/lifecycle/Farm.java
===================================================================
--- tck/trunk/xml/src/main/java/org/jboss/jsr299/tck/tests/implementation/simple/lifecycle/Farm.java	                        (rev 0)
+++ tck/trunk/xml/src/main/java/org/jboss/jsr299/tck/tests/implementation/simple/lifecycle/Farm.java	2009-04-16 15:14:19 UTC (rev 2435)
@@ -0,0 +1,33 @@
+package org.jboss.jsr299.tck.tests.implementation.simple.lifecycle;
+
+import java.util.Date;
+
+import javax.annotation.PostConstruct;
+import javax.annotation.PreDestroy;
+import javax.inject.Current;
+
+class Farm
+{
+   
+   public Date founded;
+   public Date closed;
+   public int initialStaff;
+   public String location;
+   
+   @Current
+   FarmOffice farmOffice;
+   
+   @PostConstruct
+   protected void postConstruct() 
+   {
+      founded = new Date();
+      initialStaff = farmOffice.noOfStaff;
+   }
+   
+   @PreDestroy
+   protected void preDestroy() 
+   {
+      closed = new Date();
+   }
+   
+}

Added: tck/trunk/xml/src/main/java/org/jboss/jsr299/tck/tests/implementation/simple/lifecycle/FarmOffice.java
===================================================================
--- tck/trunk/xml/src/main/java/org/jboss/jsr299/tck/tests/implementation/simple/lifecycle/FarmOffice.java	                        (rev 0)
+++ tck/trunk/xml/src/main/java/org/jboss/jsr299/tck/tests/implementation/simple/lifecycle/FarmOffice.java	2009-04-16 15:14:19 UTC (rev 2435)
@@ -0,0 +1,9 @@
+package org.jboss.jsr299.tck.tests.implementation.simple.lifecycle;
+
+
+class FarmOffice
+{
+   
+   public int noOfStaff = 20;
+   
+}

Added: tck/trunk/xml/src/main/java/org/jboss/jsr299/tck/tests/implementation/simple/lifecycle/FishPond.java
===================================================================
--- tck/trunk/xml/src/main/java/org/jboss/jsr299/tck/tests/implementation/simple/lifecycle/FishPond.java	                        (rev 0)
+++ tck/trunk/xml/src/main/java/org/jboss/jsr299/tck/tests/implementation/simple/lifecycle/FishPond.java	2009-04-16 15:14:19 UTC (rev 2435)
@@ -0,0 +1,26 @@
+package org.jboss.jsr299.tck.tests.implementation.simple.lifecycle;
+
+import javax.annotation.PreDestroy;
+import javax.inject.Current;
+import javax.inject.Initializer;
+
+class FishPond
+{
+   
+   public Animal goldfish;
+   
+   @Current
+   public Salmon salmon;
+   
+   @Initializer
+   public FishPond(Goldfish goldfish)
+   {
+      this.goldfish = goldfish;
+   }
+   
+   @PreDestroy
+   public void destroy()
+   {
+      assert !Salmon.isBeanDestroyed();
+   }
+}

Added: tck/trunk/xml/src/main/java/org/jboss/jsr299/tck/tests/implementation/simple/lifecycle/FishStereotype.java
===================================================================
--- tck/trunk/xml/src/main/java/org/jboss/jsr299/tck/tests/implementation/simple/lifecycle/FishStereotype.java	                        (rev 0)
+++ tck/trunk/xml/src/main/java/org/jboss/jsr299/tck/tests/implementation/simple/lifecycle/FishStereotype.java	2009-04-16 15:14:19 UTC (rev 2435)
@@ -0,0 +1,21 @@
+package org.jboss.jsr299.tck.tests.implementation.simple.lifecycle;
+
+import static java.lang.annotation.ElementType.TYPE;
+import static java.lang.annotation.RetentionPolicy.RUNTIME;
+
+import java.lang.annotation.Retention;
+import java.lang.annotation.Target;
+
+import javax.annotation.Named;
+import javax.annotation.Stereotype;
+import javax.context.ApplicationScoped;
+
+ at Stereotype(requiredTypes=Animal.class)
+ at Target( { TYPE })
+ at Retention(RUNTIME)
+ at ApplicationScoped
+ at Named
+ at interface FishStereotype
+{
+
+}

Added: tck/trunk/xml/src/main/java/org/jboss/jsr299/tck/tests/implementation/simple/lifecycle/FooException.java
===================================================================
--- tck/trunk/xml/src/main/java/org/jboss/jsr299/tck/tests/implementation/simple/lifecycle/FooException.java	                        (rev 0)
+++ tck/trunk/xml/src/main/java/org/jboss/jsr299/tck/tests/implementation/simple/lifecycle/FooException.java	2009-04-16 15:14:19 UTC (rev 2435)
@@ -0,0 +1,6 @@
+package org.jboss.jsr299.tck.tests.implementation.simple.lifecycle;
+
+class FooException extends RuntimeException
+{
+   
+}

Added: tck/trunk/xml/src/main/java/org/jboss/jsr299/tck/tests/implementation/simple/lifecycle/Goldfish.java
===================================================================
--- tck/trunk/xml/src/main/java/org/jboss/jsr299/tck/tests/implementation/simple/lifecycle/Goldfish.java	                        (rev 0)
+++ tck/trunk/xml/src/main/java/org/jboss/jsr299/tck/tests/implementation/simple/lifecycle/Goldfish.java	2009-04-16 15:14:19 UTC (rev 2435)
@@ -0,0 +1,12 @@
+package org.jboss.jsr299.tck.tests.implementation.simple.lifecycle;
+
+import javax.context.RequestScoped;
+import javax.inject.Production;
+
+ at RequestScopedAnimalStereotype
+ at RequestScoped
+ at Production
+class Goldfish implements Animal
+{
+
+}

Added: tck/trunk/xml/src/main/java/org/jboss/jsr299/tck/tests/implementation/simple/lifecycle/Goose.java
===================================================================
--- tck/trunk/xml/src/main/java/org/jboss/jsr299/tck/tests/implementation/simple/lifecycle/Goose.java	                        (rev 0)
+++ tck/trunk/xml/src/main/java/org/jboss/jsr299/tck/tests/implementation/simple/lifecycle/Goose.java	2009-04-16 15:14:19 UTC (rev 2435)
@@ -0,0 +1,14 @@
+package org.jboss.jsr299.tck.tests.implementation.simple.lifecycle;
+
+
+public class Goose
+{
+   @Synchronous
+   private Egg currentEgg;
+
+   public Egg getCurrentEgg()
+   {
+      return currentEgg;
+   }
+
+}

Added: tck/trunk/xml/src/main/java/org/jboss/jsr299/tck/tests/implementation/simple/lifecycle/IndirectOrderProcessor.java
===================================================================
--- tck/trunk/xml/src/main/java/org/jboss/jsr299/tck/tests/implementation/simple/lifecycle/IndirectOrderProcessor.java	                        (rev 0)
+++ tck/trunk/xml/src/main/java/org/jboss/jsr299/tck/tests/implementation/simple/lifecycle/IndirectOrderProcessor.java	2009-04-16 15:14:19 UTC (rev 2435)
@@ -0,0 +1,6 @@
+package org.jboss.jsr299.tck.tests.implementation.simple.lifecycle;
+
+class IndirectOrderProcessor extends IntermediateOrderProcessor
+{
+
+}

Added: tck/trunk/xml/src/main/java/org/jboss/jsr299/tck/tests/implementation/simple/lifecycle/IntermediateOrderProcessor.java
===================================================================
--- tck/trunk/xml/src/main/java/org/jboss/jsr299/tck/tests/implementation/simple/lifecycle/IntermediateOrderProcessor.java	                        (rev 0)
+++ tck/trunk/xml/src/main/java/org/jboss/jsr299/tck/tests/implementation/simple/lifecycle/IntermediateOrderProcessor.java	2009-04-16 15:14:19 UTC (rev 2435)
@@ -0,0 +1,6 @@
+package org.jboss.jsr299.tck.tests.implementation.simple.lifecycle;
+
+class IntermediateOrderProcessor extends OrderProcessor
+{
+
+}

Added: tck/trunk/xml/src/main/java/org/jboss/jsr299/tck/tests/implementation/simple/lifecycle/Lion.java
===================================================================
--- tck/trunk/xml/src/main/java/org/jboss/jsr299/tck/tests/implementation/simple/lifecycle/Lion.java	                        (rev 0)
+++ tck/trunk/xml/src/main/java/org/jboss/jsr299/tck/tests/implementation/simple/lifecycle/Lion.java	2009-04-16 15:14:19 UTC (rev 2435)
@@ -0,0 +1,7 @@
+package org.jboss.jsr299.tck.tests.implementation.simple.lifecycle;
+
+ at Tame
+class Lion
+{
+   
+}

Added: tck/trunk/xml/src/main/java/org/jboss/jsr299/tck/tests/implementation/simple/lifecycle/Lorry_Broken.java
===================================================================
--- tck/trunk/xml/src/main/java/org/jboss/jsr299/tck/tests/implementation/simple/lifecycle/Lorry_Broken.java	                        (rev 0)
+++ tck/trunk/xml/src/main/java/org/jboss/jsr299/tck/tests/implementation/simple/lifecycle/Lorry_Broken.java	2009-04-16 15:14:19 UTC (rev 2435)
@@ -0,0 +1,11 @@
+package org.jboss.jsr299.tck.tests.implementation.simple.lifecycle;
+
+class Lorry_Broken
+{
+   
+   public Lorry_Broken() throws Exception
+   {
+      throw new Exception();
+   }
+   
+}

Added: tck/trunk/xml/src/main/java/org/jboss/jsr299/tck/tests/implementation/simple/lifecycle/MountainLion.java
===================================================================
--- tck/trunk/xml/src/main/java/org/jboss/jsr299/tck/tests/implementation/simple/lifecycle/MountainLion.java	                        (rev 0)
+++ tck/trunk/xml/src/main/java/org/jboss/jsr299/tck/tests/implementation/simple/lifecycle/MountainLion.java	2009-04-16 15:14:19 UTC (rev 2435)
@@ -0,0 +1,10 @@
+package org.jboss.jsr299.tck.tests.implementation.simple.lifecycle;
+
+import javax.inject.Specializes;
+
+ at Specializes
+ at AnotherDeploymentType
+class MountainLion extends Lion
+{
+
+}

Added: tck/trunk/xml/src/main/java/org/jboss/jsr299/tck/tests/implementation/simple/lifecycle/MyCreationalContext.java
===================================================================
--- tck/trunk/xml/src/main/java/org/jboss/jsr299/tck/tests/implementation/simple/lifecycle/MyCreationalContext.java	                        (rev 0)
+++ tck/trunk/xml/src/main/java/org/jboss/jsr299/tck/tests/implementation/simple/lifecycle/MyCreationalContext.java	2009-04-16 15:14:19 UTC (rev 2435)
@@ -0,0 +1,36 @@
+package org.jboss.jsr299.tck.tests.implementation.simple.lifecycle;
+
+import javax.context.CreationalContext;
+
+class MyCreationalContext<T> implements CreationalContext<T>
+{
+   private static Object lastBeanPushed = null;
+   private static boolean pushCalled = false;
+
+   public void push(T incompleteInstance)
+   {
+      pushCalled = true;
+      lastBeanPushed = incompleteInstance;
+   }
+
+   public static Object getLastBeanPushed()
+   {
+      return lastBeanPushed;
+   }
+
+   public static void setLastBeanPushed(Object lastBeanPushed)
+   {
+      MyCreationalContext.lastBeanPushed = lastBeanPushed;
+   }
+
+   public static boolean isPushCalled()
+   {
+      return pushCalled;
+   }
+
+   public static void setPushCalled(boolean pushCalled)
+   {
+      MyCreationalContext.pushCalled = pushCalled;
+   }
+
+}

Added: tck/trunk/xml/src/main/java/org/jboss/jsr299/tck/tests/implementation/simple/lifecycle/NovelOrderProcessor.java
===================================================================
--- tck/trunk/xml/src/main/java/org/jboss/jsr299/tck/tests/implementation/simple/lifecycle/NovelOrderProcessor.java	                        (rev 0)
+++ tck/trunk/xml/src/main/java/org/jboss/jsr299/tck/tests/implementation/simple/lifecycle/NovelOrderProcessor.java	2009-04-16 15:14:19 UTC (rev 2435)
@@ -0,0 +1,6 @@
+package org.jboss.jsr299.tck.tests.implementation.simple.lifecycle;
+
+class NovelOrderProcessor extends BookOrderProcessor
+{
+   
+}

Added: tck/trunk/xml/src/main/java/org/jboss/jsr299/tck/tests/implementation/simple/lifecycle/OrderProcessor.java
===================================================================
--- tck/trunk/xml/src/main/java/org/jboss/jsr299/tck/tests/implementation/simple/lifecycle/OrderProcessor.java	                        (rev 0)
+++ tck/trunk/xml/src/main/java/org/jboss/jsr299/tck/tests/implementation/simple/lifecycle/OrderProcessor.java	2009-04-16 15:14:19 UTC (rev 2435)
@@ -0,0 +1,31 @@
+package org.jboss.jsr299.tck.tests.implementation.simple.lifecycle;
+
+import javax.annotation.PostConstruct;
+import javax.annotation.PreDestroy;
+
+class OrderProcessor
+{
+   
+   public static boolean postConstructCalled = false;
+   
+   public static boolean preDestroyCalled = true;
+   
+   @PostConstruct
+   public void postConstruct()
+   {
+      postConstructCalled = true;
+   }
+   
+   @PreDestroy
+   public void preDestroy()
+   {
+      preDestroyCalled = true;
+   }
+   
+   public void order()
+   {
+      
+   }
+    
+   
+}

Added: tck/trunk/xml/src/main/java/org/jboss/jsr299/tck/tests/implementation/simple/lifecycle/RedSnapper.java
===================================================================
--- tck/trunk/xml/src/main/java/org/jboss/jsr299/tck/tests/implementation/simple/lifecycle/RedSnapper.java	                        (rev 0)
+++ tck/trunk/xml/src/main/java/org/jboss/jsr299/tck/tests/implementation/simple/lifecycle/RedSnapper.java	2009-04-16 15:14:19 UTC (rev 2435)
@@ -0,0 +1,10 @@
+package org.jboss.jsr299.tck.tests.implementation.simple.lifecycle;
+
+import javax.context.RequestScoped;
+
+ at FishStereotype
+ at RequestScoped
+class RedSnapper implements Animal
+{
+   
+}

Added: tck/trunk/xml/src/main/java/org/jboss/jsr299/tck/tests/implementation/simple/lifecycle/RequestScopedAnimalStereotype.java
===================================================================
--- tck/trunk/xml/src/main/java/org/jboss/jsr299/tck/tests/implementation/simple/lifecycle/RequestScopedAnimalStereotype.java	                        (rev 0)
+++ tck/trunk/xml/src/main/java/org/jboss/jsr299/tck/tests/implementation/simple/lifecycle/RequestScopedAnimalStereotype.java	2009-04-16 15:14:19 UTC (rev 2435)
@@ -0,0 +1,18 @@
+package org.jboss.jsr299.tck.tests.implementation.simple.lifecycle;
+
+import static java.lang.annotation.ElementType.TYPE;
+import static java.lang.annotation.RetentionPolicy.RUNTIME;
+
+import java.lang.annotation.Retention;
+import java.lang.annotation.Target;
+
+import javax.annotation.Stereotype;
+import javax.context.RequestScoped;
+
+ at Stereotype(requiredTypes=Animal.class, supportedScopes=RequestScoped.class)
+ at Target( { TYPE })
+ at Retention(RUNTIME)
+ at interface RequestScopedAnimalStereotype
+{
+
+}

Added: tck/trunk/xml/src/main/java/org/jboss/jsr299/tck/tests/implementation/simple/lifecycle/Salmon.java
===================================================================
--- tck/trunk/xml/src/main/java/org/jboss/jsr299/tck/tests/implementation/simple/lifecycle/Salmon.java	                        (rev 0)
+++ tck/trunk/xml/src/main/java/org/jboss/jsr299/tck/tests/implementation/simple/lifecycle/Salmon.java	2009-04-16 15:14:19 UTC (rev 2435)
@@ -0,0 +1,24 @@
+package org.jboss.jsr299.tck.tests.implementation.simple.lifecycle;
+
+import javax.annotation.PreDestroy;
+
+class Salmon
+{
+   private static boolean beanDestroyed = false;
+   
+   public Salmon()
+   {
+      beanDestroyed = false;
+   }
+   
+   @PreDestroy
+   public void destroy()
+   {
+      beanDestroyed = true;
+   }
+
+   public static boolean isBeanDestroyed()
+   {
+      return beanDestroyed;
+   }
+}

Added: tck/trunk/xml/src/main/java/org/jboss/jsr299/tck/tests/implementation/simple/lifecycle/SimpleBeanLifecycleTest.java
===================================================================
--- tck/trunk/xml/src/main/java/org/jboss/jsr299/tck/tests/implementation/simple/lifecycle/SimpleBeanLifecycleTest.java	                        (rev 0)
+++ tck/trunk/xml/src/main/java/org/jboss/jsr299/tck/tests/implementation/simple/lifecycle/SimpleBeanLifecycleTest.java	2009-04-16 15:14:19 UTC (rev 2435)
@@ -0,0 +1,47 @@
+package org.jboss.jsr299.tck.tests.implementation.simple.lifecycle;
+
+import java.lang.annotation.Annotation;
+
+import javax.context.Context;
+import javax.context.Contextual;
+import javax.context.CreationalContext;
+import javax.context.Dependent;
+import javax.context.RequestScoped;
+import javax.inject.AnnotationLiteral;
+import javax.inject.CreationException;
+import javax.inject.manager.Bean;
+
+import org.hibernate.tck.annotations.SpecAssertion;
+import org.hibernate.tck.annotations.SpecAssertions;
+import org.jboss.jsr299.tck.AbstractJSR299Test;
+import org.jboss.testharness.impl.packaging.Artifact;
+import org.jboss.testharness.impl.packaging.jsr299.BeansXml;
+import org.testng.annotations.Test;
+
+/**
+ * 
+ * Spec version: PRD2
+ * 
+ */
+ at Artifact
+ at BeansXml("beans.xml")
+public class SimpleBeanLifecycleTest extends AbstractJSR299Test
+{
+   private static final Annotation TAME_LITERAL = new AnnotationLiteral<Tame>()
+   {
+   };
+
+   @Test(groups = "beanConstruction")
+   @SpecAssertions({
+     @SpecAssertion(section = "3.2.6.3", id = "a"),
+     @SpecAssertion(section = "2.3.6", id = "d"),
+     @SpecAssertion(section = "6.4", id = "a")
+   })
+   public void testInjectionOfParametersIntoBeanConstructor()
+   {
+      assert getCurrentManager().resolveByType(FishPond.class).size() == 1;
+      FishPond fishPond = getCurrentManager().getInstanceByType(FishPond.class);
+      assert fishPond.goldfish != null;
+   }
+
+}

Added: tck/trunk/xml/src/main/java/org/jboss/jsr299/tck/tests/implementation/simple/lifecycle/Synchronous.java
===================================================================
--- tck/trunk/xml/src/main/java/org/jboss/jsr299/tck/tests/implementation/simple/lifecycle/Synchronous.java	                        (rev 0)
+++ tck/trunk/xml/src/main/java/org/jboss/jsr299/tck/tests/implementation/simple/lifecycle/Synchronous.java	2009-04-16 15:14:19 UTC (rev 2435)
@@ -0,0 +1,22 @@
+package org.jboss.jsr299.tck.tests.implementation.simple.lifecycle;
+
+import static java.lang.annotation.ElementType.FIELD;
+import static java.lang.annotation.ElementType.METHOD;
+import static java.lang.annotation.ElementType.PARAMETER;
+import static java.lang.annotation.ElementType.TYPE;
+import static java.lang.annotation.RetentionPolicy.RUNTIME;
+
+import java.lang.annotation.Documented;
+import java.lang.annotation.Retention;
+import java.lang.annotation.Target;
+
+import javax.inject.BindingType;
+
+ at Target( { TYPE, METHOD, PARAMETER, FIELD })
+ at Retention(RUNTIME)
+ at Documented
+ at BindingType
+ at interface Synchronous
+{
+
+}

Added: tck/trunk/xml/src/main/java/org/jboss/jsr299/tck/tests/implementation/simple/lifecycle/Tame.java
===================================================================
--- tck/trunk/xml/src/main/java/org/jboss/jsr299/tck/tests/implementation/simple/lifecycle/Tame.java	                        (rev 0)
+++ tck/trunk/xml/src/main/java/org/jboss/jsr299/tck/tests/implementation/simple/lifecycle/Tame.java	2009-04-16 15:14:19 UTC (rev 2435)
@@ -0,0 +1,22 @@
+package org.jboss.jsr299.tck.tests.implementation.simple.lifecycle;
+
+import static java.lang.annotation.ElementType.FIELD;
+import static java.lang.annotation.ElementType.METHOD;
+import static java.lang.annotation.ElementType.PARAMETER;
+import static java.lang.annotation.ElementType.TYPE;
+import static java.lang.annotation.RetentionPolicy.RUNTIME;
+
+import java.lang.annotation.Documented;
+import java.lang.annotation.Retention;
+import java.lang.annotation.Target;
+
+import javax.inject.BindingType;
+
+ at Target( { TYPE, METHOD, PARAMETER, FIELD })
+ at Retention(RUNTIME)
+ at Documented
+ at BindingType
+ at interface Tame
+{
+
+}

Added: tck/trunk/xml/src/main/java/org/jboss/jsr299/tck/tests/implementation/simple/lifecycle/Tuna.java
===================================================================
--- tck/trunk/xml/src/main/java/org/jboss/jsr299/tck/tests/implementation/simple/lifecycle/Tuna.java	                        (rev 0)
+++ tck/trunk/xml/src/main/java/org/jboss/jsr299/tck/tests/implementation/simple/lifecycle/Tuna.java	2009-04-16 15:14:19 UTC (rev 2435)
@@ -0,0 +1,15 @@
+package org.jboss.jsr299.tck.tests.implementation.simple.lifecycle;
+
+import javax.context.RequestScoped;
+
+ at AnotherDeploymentType
+ at RequestScoped
+class Tuna
+{
+   
+   public String getName()
+   {
+      return "Ophir";
+   }
+
+}

Added: tck/trunk/xml/src/main/java/org/jboss/jsr299/tck/tests/implementation/simple/lifecycle/TunaFarm.java
===================================================================
--- tck/trunk/xml/src/main/java/org/jboss/jsr299/tck/tests/implementation/simple/lifecycle/TunaFarm.java	                        (rev 0)
+++ tck/trunk/xml/src/main/java/org/jboss/jsr299/tck/tests/implementation/simple/lifecycle/TunaFarm.java	2009-04-16 15:14:19 UTC (rev 2435)
@@ -0,0 +1,17 @@
+package org.jboss.jsr299.tck.tests.implementation.simple.lifecycle;
+
+import javax.inject.Current;
+import javax.inject.Production;
+
+ at Production
+class TunaFarm
+{
+
+   @SuppressWarnings("unused")
+   @Current
+   public Tuna tuna;
+   
+   public Tuna notInjectedTuna = new Tuna();
+
+   
+}

Added: tck/trunk/xml/src/main/java/org/jboss/jsr299/tck/tests/implementation/simple/lifecycle/Van_Broken.java
===================================================================
--- tck/trunk/xml/src/main/java/org/jboss/jsr299/tck/tests/implementation/simple/lifecycle/Van_Broken.java	                        (rev 0)
+++ tck/trunk/xml/src/main/java/org/jboss/jsr299/tck/tests/implementation/simple/lifecycle/Van_Broken.java	2009-04-16 15:14:19 UTC (rev 2435)
@@ -0,0 +1,11 @@
+package org.jboss.jsr299.tck.tests.implementation.simple.lifecycle;
+
+class Van_Broken
+{
+   
+   public Van_Broken() throws Exception
+   {
+      throw new FooException();
+   }
+   
+}

Added: tck/trunk/xml/src/main/resources/META-INF/jboss-test-harness.properties
===================================================================
--- tck/trunk/xml/src/main/resources/META-INF/jboss-test-harness.properties	                        (rev 0)
+++ tck/trunk/xml/src/main/resources/META-INF/jboss-test-harness.properties	2009-04-16 15:14:19 UTC (rev 2435)
@@ -0,0 +1,2 @@
+org.jboss.testharness.api.ConfigurationBuilder=org.jboss.jsr299.tck.impl.JSR299PropertiesBasedConfigurationBuilder
+org.jboss.testharness.testPackage=org.jboss.jsr299.tck.tests
\ No newline at end of file

Added: tck/trunk/xml/src/main/resources/META-INF/tck-unit.properties
===================================================================
--- tck/trunk/xml/src/main/resources/META-INF/tck-unit.properties	                        (rev 0)
+++ tck/trunk/xml/src/main/resources/META-INF/tck-unit.properties	2009-04-16 15:14:19 UTC (rev 2435)
@@ -0,0 +1,5 @@
+fisheye_base_url=http\://fisheye.jboss.org/browse/Webbeans/tck/trunk/impl/src/main/java
+svn_base_url=http\://anonsvn.jboss.org/repos/webbeans/tck/trunk/impl/src/main/java/
+pass_threshold=75
+fail_threshold=50
+unimplemented_test_groups=stub,broken
\ No newline at end of file

Added: tck/trunk/xml/src/main/resources/README.TXT
===================================================================
--- tck/trunk/xml/src/main/resources/README.TXT	                        (rev 0)
+++ tck/trunk/xml/src/main/resources/README.TXT	2009-04-16 15:14:19 UTC (rev 2435)
@@ -0,0 +1,10 @@
+Notes on using Sigtest
+-----------------------------------------
+Sigtest home page: https://sigtest.dev.java.net/
+User Guide: http://java.sun.com/javame/sigtest/docs/sigtest2.1_usersguide.pdf
+
+Generating a signature file
+---------------------------
+To generate a signature file, use the following command:
+
+java -cp %JAVA_HOME%\jre\lib\rt.jar%;sigtestdev.jar com.sun.tdk.signaturetest.Setup -Package javax.annotation -Package javax.context -Package javax.decorator -Package javax.event -Package javax.inject -Package javax.interceptor -Package javax.webbeans -FileName webbeans.sig -Classpath .;%JAVA_HOME%\jre\lib\rt.jar -static -Exclude java
\ No newline at end of file

Added: tck/trunk/xml/src/main/resources/images/4.1.aa.png
===================================================================
(Binary files differ)


Property changes on: tck/trunk/xml/src/main/resources/images/4.1.aa.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: tck/trunk/xml/src/main/resources/org/jboss/jsr299/tck/tests/implementation/simple/lifecycle/beans.xml
===================================================================
--- tck/trunk/xml/src/main/resources/org/jboss/jsr299/tck/tests/implementation/simple/lifecycle/beans.xml	                        (rev 0)
+++ tck/trunk/xml/src/main/resources/org/jboss/jsr299/tck/tests/implementation/simple/lifecycle/beans.xml	2009-04-16 15:14:19 UTC (rev 2435)
@@ -0,0 +1,11 @@
+<Beans xmlns="urn:java:ee"
+       xmlns:test="urn:java:org.jboss.jsr299.tck.tests.implementation.simple.lifecycle"> 
+   <Deploy>
+      <Standard />
+      <Production />
+      <test:AnotherDeploymentType />
+   </Deploy>
+   <test:Farm>
+      <test:location>Indiana</test:location>
+   </test:Farm>
+</Beans>

Added: tck/trunk/xml/src/main/resources/tck-audit.xml
===================================================================
--- tck/trunk/xml/src/main/resources/tck-audit.xml	                        (rev 0)
+++ tck/trunk/xml/src/main/resources/tck-audit.xml	2009-04-16 15:14:19 UTC (rev 2435)
@@ -0,0 +1,1966 @@
+<specification 
+    xmlns="http://jboss.com/products/webbeans/tck/audit"
+    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xsi:schemaLocation="http://jboss.com/products/webbeans/tck/audit http://snapshots.jboss.org/maven2/org/hibernate/tck-utils-api/0.9-SNAPSHOT/tck-utils-api-0.9-20090220.134140-13-audit.xsd"
+    name="JSR-299: Java Contexts and Dependency Injection" 
+    version="Revised Public Review Draft">
+
+  <section id="2" title="Bean definition">
+  
+  </section>
+  
+  <section id="2.2" title="Bean types">
+  
+  </section>
+  
+  <section id="2.3" title="Bindings">
+  
+  </section>
+    
+  <section id="2.3.1" title="Default binding type">
+    
+  </section>
+    
+  <section id="2.3.3" title="Declaring the bindings of a bean using annotations">
+
+  </section>
+  
+  <section id="2.3.4" title="Declaring the bindings of a bean using XML">
+  
+    <assertion id="a">
+      <text>If a bean is declared in beans.xml, bindings may be specified using the binding type names</text>
+    </assertion>
+  
+  </section>
+  
+  <section id="2.3.5" title="Specifying bindings of an injected field">
+    
+    <assertion id="c">
+      <text>For a bean defined in XML, the bindings of a field may be specified using XML</text>
+    </assertion>
+    
+    <assertion id="d">
+      <text>When the bindings of a field are specified using XML, any binding annotations of the field are ignored</text>
+    </assertion>
+  </section>
+  
+  <section id="2.3.6" title="Specifying bindings of a method or constructor parameter">
+    
+    <assertion id="e">
+      <text>For a bean defined in XML, the bindings of a method parameter may be specified using XML</text>
+    </assertion>
+    
+    <assertion id="f">
+      <text>When the bindings of a parameter are specified using XML, any binding annotations of the parameter are ignored</text>
+    </assertion>
+  </section>
+  
+  <section id="2.4" title="Scopes">
+    
+  </section>
+  
+  <section id="2.4.1" title="Built-in scope types">
+        
+  </section>
+  
+  <section id="2.4.3" title="Declaring the bean scope using annotations">
+
+  </section>
+  
+  <section id="2.4.4" title="Declaring the bean scope using XML">
+    <assertion id="a">
+      <text>If the bean is declared in beans.xml, the scope may be specified using the scope annotation type name</text>
+    </assertion>
+    
+    <assertion id="b">
+      <text>If more than one scope type is specified in XML, a |DefinitionException| is thrown by the container at deployment time</text>
+    </assertion>
+    
+    <assertion id="c">
+      <text>A scope type may be specified using a stereotype declared in XML, as defined in Section 2.7.3, "Declaring the stereotypes for a bean using XML"</text>
+    </assertion>
+  </section>
+  
+  <section id="2.4.5" title="Default scope">
+    <assertion id="a">
+      <text>When no scope is explicitly declared by annotating the bean class or producer method or field, or by using XML, the scope of a bean is defaulted</text>
+    </assertion>
+    
+  </section>
+  
+  <section id="2.5.1" title="Built-in deployment types">
+  
+  </section>    
+  
+  <section id="2.5.2" title="Defining new deployment types">
+  
+  </section>
+  
+  <section id="2.5.3" title="Declaring the deployment type of a bean using annotations">
+  
+  </section>
+  
+  <section id="2.5.4" title="Declaring the deployment type of a bean using XML">
+    <assertion id="a">
+      <text>When a bean is declared in beans.xml, the deployment type may be specified using a tag with the annotation type name</text>
+    </assertion>
+    
+    <assertion id="b">
+      <text>If more than one deployment type is specified in XML, a |DefinitionException| is thrown by the container at deployment time</text>
+    </assertion>
+    
+    <assertion id="c">
+      <text>A deployment type may be specified using a stereotype declared in XML, as defined in Section 2.7.3, "Declaring the stereotypes for a bean using XML".</text>
+    </assertion>
+  </section>
+  
+  <section id="2.5.5" title="Default deployment type">
+    
+  </section>
+  
+  <section id="2.5.6" title="Enabled deployment types">
+  
+  </section>
+  
+  <section id="2.6" title="Bean names">
+  
+  </section>
+  
+  <section id="2.6.1" title="Declaring the bean name using annotations">
+  
+  </section>
+  
+  <section id="2.6.2" title="Declaring the bean name using XML">
+    
+    <assertion id="a">
+      <text>If the bean is declared in beans.xml, the name may be specified using |&lt;Named&gt;|</text>
+    </assertion>
+    
+    <assertion id="b">
+      <text>If the |&lt;Named&gt;| element is empty, the default name is assumed</text>
+    </assertion>
+  </section>
+  
+  <section id="2.6.3" title="Default bean names">
+    
+    <assertion id="d">
+      <text>A default name must be assigned by the container when an empty |&lt;Named&gt;| element is specified by a bean defined in XML</text>
+    </assertion>
+    
+  </section>
+  
+  <section id="2.6.4" title="Beans with no name">
+  
+    <assertion id="a">
+      <text>If neither |&lt;Named&gt;| nor |@Named| is specified, by the bean or its stereotypes, a bean has no name</text>
+    </assertion>
+    
+  </section>
+  
+  <section id="2.7" title="Stereotypes">
+  
+  </section>
+  
+  <section id="2.7.1" title="Defining new stereotypes">
+ 
+  </section>
+  
+  <section id="2.7.1.1" title="Declaring the default scope and deployment type for a stereotype">
+
+  </section>
+  
+  <section id="2.7.1.2" title="Specifying interceptor bindings for a stereotype">
+  
+  </section>
+  
+  <section id="2.7.1.3" title="Specifying name defaulting for a stereotype">
+   
+  </section>
+  
+  <section id="2.7.1.4" title="Restricting bean scopes and types using a stereotype">
+   
+  </section>
+  
+  <section id="2.7.1.5" title="Stereotypes with additional stereotypes">
+    
+  </section>
+  
+  <section id="2.7.2" title="Declaring the stereotypes for a bean using annotations">
+    
+  </section>
+  
+  <section id="2.7.3" title="Declaring the stereotypes for a bean using XML">
+    <assertion id="a">
+      <text>If the bean is declared in beans.xml, stereotypes may be declared using the stereotype annotation type name</text>
+    </assertion>
+  </section>
+  
+  <section id="2.7.4" title="Stereotype restrictions">
+  </section>
+  
+  <section id="2.7.5" title="Built-in stereotypes">
+    
+  </section>
+
+  <section id="3" title="Bean Implementation">
+  
+  </section>
+     
+  <section id="3.1" title="Restriction upon bean instantiation">
+    
+  </section>
+ 
+  <section id="3.2" title="Simple beans">
+    
+    <assertion id="e">
+      <text>Multiple simple beans may share the same bean class. This occurs when beans are defined using XML. Only one simple bean per bean class may be defined using annotations.</text>
+    </assertion>
+        
+  </section>
+  
+  <section id="3.2.1" title="Which Java classes are beans?">
+
+    <assertion id="r">
+      <text>Additional simple beans with the same bean class may be defined using XML, by specifying the class in |beans.xml|.</text>    
+    </assertion>
+    
+  </section>
+  
+  <section id="3.2.2" title="Bean types of a simple bean">
+    
+  </section>
+  
+  <section id="3.2.3" title="Declaring a simple bean using annotations">
+ 
+  </section>
+  
+  <section id="3.2.4" title="Declaring a simple bean using XML">
+    <assertion id="a">
+      <text>Simple beans may be declared in |beans.xml| using the bean class name</text>
+    </assertion>
+    
+    <assertion id="b">
+      <text>A simple bean may even be declared at any injection point declared in XML, as defined in Section 9.9, "Inline bean declarations", in which case no bindings are specified.</text>
+    </assertion>
+    
+    <assertion id="c">
+      <text>If the bean class of a simple bean defined in XML is a parameterized type , a |DefinitionException| is thrown by the container at deployment time.</text>
+    </assertion>
+    
+    <assertion id="d">
+      <text>If the bean class of a simple bean defined in XML is a non-static inner class, a |DefinitionException| is thrown by the container at deployment time.</text>
+    </assertion>
+    
+    <assertion id="da">
+      <text>If the bean class of a simple bean defined in XML is a static inner class, a |DefinitionException| is not thrown.</text>
+    </assertion>
+    
+    <assertion id="e">
+      <text>If the bean class of a simple bean defined in XML is an abstract class, and the simple bean is not a decorator, a |DefinitionException|
+is thrown by the container at deployment time</text>
+    </assertion>
+    
+    <assertion id="f">
+      <text>If the bean class of a simple bean defined in XML is annotated @Interceptor, then the bean must be explicitly declared as an interceptor in XML, as defined in Section A.3.5.2, "Declaring an interceptor using XML". If a simple bean defined in XML has a bean class annotated |@Interceptor| and is not declared as an interceptor in XML, a |DefinitionException| is
+thrown by the container at deployment time.</text>
+    </assertion>
+    
+    <assertion id="g">
+      <text>If the bean class of a simple bean defined in XML is annotated @Interceptor, then the bean must be explicitly declared as an interceptor in XML, as defined in Section A.3.5.2, "Declaring an interceptor using XML". If a simple bean defined in XML has a bean class annotated |@Interceptor| and is not declared as an interceptor in XML, a |DefinitionException| is
+thrown by the container at deployment time.</text>
+    </assertion>
+  </section>
+  
+  <section id="3.2.5" title="Simple beans with the @New binding">
+    
+  </section>
+  
+  <section id="3.2.6" title="Bean constructors">
+    
+  </section>
+  
+  <section id="3.2.6.1" title="Declaring a bean constructor using annotations">
+  
+  </section>
+  
+  <section id="3.2.6.2" title="Declaring a bean constructor using XML">
+  
+    <assertion id="a">
+      <text>For a simple bean defined using XML, the bean constructor may be specified by listing the parameter types of the constructer, in order, as direct children of the element that declares the bean</text>
+    </assertion>
+    
+    <assertion id="b">
+      <text>If a simple bean defined using XML does not explicitly declare constructor parameters in XML, the constructor that accepts no parameters is the bean constructor</text>
+    </assertion>
+    
+    <assertion id="c">
+      <text>If a simple bean declared in XML does not have a constructor with the parameter types declared in XML, a |DefinitionException| is thrown by the container at deployment time</text>
+    </assertion>
+    
+    <assertion id="d">
+      <text>When a bean constructor is declared in XML, the container ignores binding annotations applied to Java constructor parameters</text>
+    </assertion>
+  
+  </section>
+  
+  <section id="3.2.6.3" title="Bean constructor parameters">
+    
+  </section>
+  
+  <section id="3.2.7" title="Specializing a simple bean">
+    <assertion id="e">
+      <text>If a simple bean X defined in XML declares the |&lt;Specializes&gt;| element, then the bean class of X must be the bean class of another simple bean Y defined using annotations. Then X inherits all bindings of Y, and if Y has a name, X has the same name as Y</text>
+    </assertion>
+  </section>
+  
+  <section id="3.2.8" title="Default name for a simple bean">
+
+  </section>
+  
+  <section id="3.3" title="Session beans">
+    
+    <assertion id="e">
+      <text>Note that multiple session beans may share the same bean class. This occurs when beans are defined using XML</text>
+    </assertion>
+    
+  </section>
+  
+  <section id="3.3.1" title="EJB remove methods of session beans">
+    
+  </section>
+  
+  <section id="3.3.2" title="Which EJBs are beans?">
+    
+  </section>
+  
+  <section id="3.3.3" title="Bean types of a session bean">
+    
+  </section>
+  
+  <section id="3.3.4" title="Declaring a session bean using annotations">
+  
+  </section>
+  
+  <section id="3.3.5" title="Declaring a session bean using XML">
+    <assertion id="a">
+      <text>Session beans may be declared in |beans.xml| using the bean class name (for EJBs defined using a component-defining annotation) or bean class and EJB name (for EJBs defined in |ejb-jar.xml|)</text>
+    </assertion>
+    
+    <assertion id="b">
+      <text>The ejbName attribute declares the EJB name of an EJB defined in |ejb-jar.xml|</text>
+    </assertion>
+    
+    <assertion id="c">
+      <text>If an entity bean class is declared in XML, a |DefinitionException| is thrown by the container at deployment time</text>
+    </assertion>
+
+    <assertion id="d">
+      <text>If a message-driven bean class is declared in XML, a |DefinitionException| is thrown by the container at deployment time</text>
+    </assertion>
+  </section>
+  
+  <section id="3.3.6" title="Session beans with the @New binding">
+
+    
+  </section>
+  
+  <section id="3.3.7" title="Specializing a session bean">
+    
+    <assertion id="e">
+      <text>If a session bean X defined in XML declares the |&lt;Specializes&gt;| element, then the bean class of X must be the bean class of another session bean Y defined using annotations. Then X inherits all bindings of Y, and if Y has a name, X has the same name as Y.</text>
+    </assertion>
+  </section>
+  
+  <section id="3.3.8" title="Default name for a session bean">
+    
+  </section>
+  
+  <section id="3.3.9" title="Session bean proxies">
+ 
+  </section>
+  
+  <section id="3.4" title="Producer methods">
+  
+  </section>
+  
+  <section id="3.4.1" title="Bean types of a producer method">
+  
+  </section>
+  
+  <section id="3.4.2" title="Declaring a producer method using annotations">
+  
+  </section>
+  
+  <section id="3.4.3" title="Declaring a producer method using XML">
+  
+    <assertion id="a">
+      <text>For a bean defined in XML, a producer method may be declared using the method name, the |&lt;Produces&gt;| element, the return type, and the parameter types of the method</text>
+    </assertion>
+    
+    <assertion id="b">
+      <text>When a producer method is declared in XML, the container ignores binding annotations applied to the Java method or method parameters</text>
+    </assertion>
+    
+    <assertion id="c">
+      <text>If the bean class of a bean declared in XML does not have a method with the name and parameter types declared in XML, a |DefinitionException| is thrown by the container at deployment time</text>
+    </assertion>
+  </section>
+  
+  <section id="3.4.4" title="Producer method parameters">
+    
+  </section>
+  
+  <section id="3.4.5" title="Specializing a producer method">
+    
+  </section>
+  
+  <section id="3.4.6" title="Disposal methods">
+
+  </section>
+  
+  <section id="3.4.7" title="Disposed parameter of a disposal method">
+    
+  </section>
+  
+  <section id="3.4.8" title="Declaring a disposal method using annotations">
+    
+  </section>
+  
+  <section id="3.4.9" title="Declaring a disposal method using XML">
+  
+    <assertion id="a">
+      <text>For a bean defined in XML, a disposal method may be declared using the method name, the &lt;Disposes&gt; element, and the parameter types of the method</text>
+    </assertion>
+    
+    <assertion id="b">
+      <text>When a disposal method is declared in XML, the container ignores binding annotations applied to the Java method parameter</text>
+    </assertion>
+    
+    <assertion id="c">
+      <text>If the bean class of a bean declared in XML does not have a method with the name and parameter types declared in XML, a |DefinitionException| is thrown by the container at deployment time</text>
+    </assertion>
+  </section>
+  
+  <section id="3.4.10" title="Disposal method parameters">
+  
+  </section>
+  
+  <section id="3.4.11" title="Disposal method resolution">
+  
+  </section>
+  
+  <section id="3.4.12" title="Default name for a producer method">
+  
+  </section>
+  
+  <section id="3.5" title="Producer fields">
+  
+  </section>
+  
+  <section id="3.5.1" title="Bean types of a producer field">
+    
+  </section>
+  
+  <section id="3.5.2" title="Declaring a producer field using annotations">
+  
+  </section>
+  
+  <section id="3.5.3" title="Declaring a producer field using XML">
+  
+    <assertion id="a">
+      <text>For a bean defined in XML, a producer field may be declared using the field name, the |&lt;Produces&gt;| element, and the type</text>
+    </assertion>
+    
+    <assertion id="b">
+      <text>When a producer field is declared in XML, the container ignores binding annotations applied to the Java field</text>
+    </assertion>
+    
+    <assertion id="c">
+      <text>If the bean class of a bean declared in XML does not have a field with the name and type declared in XML, a |DefinitionException| is thrown by the container at deployment time</text>
+    </assertion>
+  
+  </section>
+  
+  <section id="3.5.4" title="Default name for a producer field">
+    
+  </section>
+  
+  <section id="3.6" title="Resources">
+    
+  </section>
+  
+  <section id="3.6.1" title="Declaring a resource using XML">
+  
+  </section>
+  
+  <section id="3.7" title="JMS resources">
+    
+  </section>
+  
+  <section id="3.7.1" title="Bean types of a JMS resource">
+  
+  </section>
+  
+  <section id="3.7.2" title="Declaring a JMS resource using XML">
+    
+  </section>
+  
+  <section id="3.8" title="Injected fields">
+ 
+  </section>
+  
+  <section id="3.8.1" title="Declaring an injected field using annotations">
+    
+  </section>
+  
+  <section id="3.8.2" title="Declaring an injected field using XML">
+    <assertion id="a">
+      <text>For bean defined in XML, an injected field may be declared using the field name and a child element representing the type of the field</text>
+    </assertion>
+    
+    <assertion id="b">
+      <text>When an injected field is declared in XML, the container ignores binding annotations applied to the Java field</text>
+    </assertion>
+    
+    <assertion id="c">
+      <text>If the type element does not declare any binding, the default binding |@Current| is assumed</text>
+    </assertion>
+    
+    <assertion id="d">
+      <text>If the bean class of a bean declared in XML does not have a field with the name and type declared in XML, a |DefinitionException| is thrown by the container at deployment time</text>
+    </assertion>
+    
+    <assertion id="e">
+      <text>Check fields declared in XML and Java injected</text>
+      <note>Sanity check</note>
+    </assertion>
+  </section>
+  
+  <section id="3.9" title="Initializer methods">
+    
+  </section>
+  
+  <section id="3.9.1" title="Declaring an initializer method using annotations">
+    
+  </section>
+  
+  <section id="3.9.2" title="Declaring an initializer method using XML">
+  
+    <assertion id="a">
+      <text>For a bean defined in XML, an initializer method may be declared using the method name, the |&lt;Initializer&gt;| element and the parameter types of the method</text>
+    </assertion>
+    
+    <assertion id="b">
+      <text>When an initializer method is declared in XML, the container ignores binding annotations applied to the Java method parameters</text>
+    </assertion>
+    
+    <assertion id="c">
+      <text>If the bean class of a bean declared in XML does not have a method with the name and parameter types declared in XML, a |DefinitionException| is thrown by the container at deployment time</text>
+    </assertion>
+  </section>
+  
+  <section id="3.9.3" title="Initializer method parameters">
+   
+  </section>
+  
+  <section id="3.10" title="Support for Common Annotations">
+    
+  </section>
+  
+  <section id="3.11" title="The Bean object for a bean">
+    
+  </section>
+  
+  <section id="4" title="Inheritance, specialization and realization">
+
+  </section>
+  
+  <section id="4.1" title="Inheritance of type-level metadata">
+    
+    <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>  
+    
+  </section>
+  
+  <section id="4.2" title="Inheritance of member-level metadata">
+    
+    <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">
+    
+  </section>
+  
+  <section id="4.3.1" title="Using specialization">
+  
+    <assertion id="b">
+      <text>A bean declared using XML may declare that it specializes a lower-priority bean using the |&lt;Specializes&gt;| element</text>
+    </assertion>
+    
+  </section>
+  
+  <section id="4.3.2" title="Direct and indirect specialization">
+    <assertion id="a" testable="false">
+      <text>The |@javax.inject.Specializes| annotation or |&lt;Specializes&gt;| XML element is used to indicate that one bean directly specializes another bean</text>
+      <note>A statement of intent</note>
+    </assertion>
+    
+  </section>
+  
+  <section id="4.3.3" title="Inconsistent specialization">
+    
+    <assertion id="b" testable="false">
+      <text>Any bean that extends a generic class may declare that the generic class is the bean class, in the case of a bean declared using XML 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="b" testable="false">
+      <text>A bean declared using XML may declare that it realizes a generic class using the |&lt;Realizes&gt;| element.</text>
+      <note>A statement of intent</note>
+    </assertion>
+    
+  </section>
+  
+  <section id="5" title="Lookup, dependency injection and EL resolution">
+   
+  </section>
+  
+  <section id="5.1" title="Unsatisfied and ambiguous dependencies">
+    
+  </section>
+  
+  <section id="5.2" title="Primitive types and null values">
+     
+  </section>
+  
+  <section id="5.3" title="Injected reference validity">
+    
+  </section>
+  
+  <section id="5.4" title="Client proxies">
+    
+  </section>
+  
+  <section id="5.4.1" title="Unproxyable bean types">
+
+  </section>
+  
+  <section id="5.5" title="The default binding at injection points">
+    
+  </section>
+  
+  <section id="5.6" title="Injection point metadata">
+    
+    <assertion id="bd">
+      <text>An injection point declared in XML has it's bindings determined according to Section 9.10, "Specifying bean types and bindings"</text>
+    </assertion>
+    
+  </section>
+  
+  <section id="5.6.1" title="Injecting InjectionPoint">
+  
+  </section>
+  
+  <section id="5.7" title="The Manager object">
+  
+  </section>
+  
+  <section id="5.7.1" title="Resolving dependencies">
+  
+  </section>
+  
+  <section id="5.8" title="Dynamic lookup">
+  
+  </section>    
+  
+  <section id="5.9" title="Typesafe resolution algorithm">
+    
+  </section>
+  
+  <section id="5.9.1" title="Binding annotations with members">
+   
+  </section>
+  
+  <section id="5.9.2" title="Multiple bindings">
+   
+  </section>
+  
+  <section id="5.10" title="EL name resolution">
+  
+  </section>
+  
+  <section id="5.11" title="Name resolution algorithm">
+    
+  </section>
+  
+  <section id="5.12" title="Injection into non-contextual objects">
+    
+  </section>
+  
+  <section id="5.12.1" title="Non-contextual instances of session beans">
+    
+  </section>
+  
+  <section id="5.12.2" title="Message-driven beans">
+   
+  </section>
+  
+  <section id="5.12.3" title="Servlets">
+    
+  </section>
+  
+  <section id="6" title="Bean lifecycle">
+ 
+  </section>
+  
+  <section id="6.1" title="The Contextual interface">
+ 
+  </section>
+  
+  <section id="6.2" title="Creation">
+
+    
+    <assertion id="e">
+      <text>The |Contextual.create()| method sets any initial field values defined in XML</text>
+    </assertion>
+  </section>
+  
+  <section id="6.4" title="Lifecycle of simple beans">
+    
+    <assertion id="f">
+      <text>When the |create()| method of the |Bean| object that represents a simple bean is called, after injected fields are initialized the container initializes the values of any fields with initial values specified in XML, as defined in Section 9.5.5, "Field initial value declarations".</text>
+    </assertion>
+    
+    <assertion id="g">
+      <text>When the |create()| method of the |Bean| object that represents a simple bean is called, after the values of fields with initial values specified in XML are initialized the container calls all initializer methods. For each initializer method parameter, the container passes the object
+returned by |Manager.getInstanceToInject()|</text>
+    </assertion>
+    
+  </section>
+  
+  <section id="6.5" title="Lifecycle of stateful session beans">
+    
+  </section>
+  
+  <section id="6.6" title="Lifecycle of stateless session and singleton beans">
+    
+  </section>
+  
+  <section id="6.7" title="Lifecycle of producer methods">
+   
+  </section>
+  
+  <section id="6.8" title="Lifecycle of producer fields">
+    
+  </section>
+  
+  <section id="6.9" title="Lifecycle of resources">
+   
+  </section>
+  
+  <section id="6.10" title="Lifecycle of JMS resources">
+    
+  </section>
+  
+  <section id="6.11" title="Lifecycle of EJBs">
+
+    <assertion id="b">
+      <text>When the EJB container creates a new instance of an EJB, after Java EE injection has been performed and before the |@PostConstruct| callback occurs the container must initialize the values of any fields with initial values specified in XML, as defined in Section 9.5.5, "Field initial value declarations"</text>
+    </assertion>
+    
+  </section>
+  
+  <section id="6.12" title="Lifecycle of servlets">
+
+  </section>
+  
+  <section id="7" title="Events">
+  
+  </section>
+  
+  <section id="7.1" title="Event types and binding types">
+  
+  </section>
+  
+  <section id="7.2" title="Firing an event via the Manager interface">
+    
+  </section>
+  
+  <section id="7.3" title="Observing events via the Observer interface">
+   
+  </section>
+  
+  <section id="7.4" title="Observer notification">
+  
+  </section>
+  
+  <section id="7.5" title="Observer methods">
+
+  </section>
+  
+  <section id="7.5.1" title="Event parameter of an observer method">
+
+  </section>
+  
+  <section id="7.5.2" title="Declaring an observer method using annotations">
+ 
+  </section>
+  
+  <section id="7.5.3" title="Declaring an observer method using XML">
+    <assertion id="a">
+      <text>For a beans defined in XML, an observer method may be declared using the method name, the |&lt;Observes&gt;| element, and the parameter types of the method</text>
+    </assertion>
+    
+    <assertion id="b">
+      <text>When an observer method is declared in XML, the container ignores binding annotations applied to the Java method parameters</text>
+    </assertion>
+    
+    <assertion id="c">
+      <text>If the bean class of a bean declared in XML does not have a method with parameters that match those declared in XML, a |DefinitionException| is thrown by the container at deployment time</text>
+    </assertion>
+  </section>
+  
+  <section id="7.5.4" title="Observer method parameters">
+
+  </section>
+  
+  <section id="7.5.5" title="Conditional observer methods">
+    
+    <assertion id="c">
+      <text>Conditional observer methods may be declared in XML by adding a child |&lt;IfExists&gt;| element to the |&lt;Observes&gt;| element</text>
+    </assertion>
+  </section>
+  
+  <section id="7.5.6" title="Transactional observer methods">
+    
+    <assertion id="f">
+      <text>A transactional observer method may be declared by ~annotating the event parameter of the observer method~ or in XML by a child element of the &lt;Observes&gt; element</text>
+    </assertion>
+    
+    <assertion id="g">
+      <text>A transactional observer method may be declared by annotating the event parameter of the observer method or ~in XML by a child element of the |&lt;Observes&gt;| element~</text>
+    </assertion>
+    
+  </section>
+  
+  <section id="7.5.7" title="Asynchronous observer methods">
+    <assertion id="a">
+      <text>An asynchronous observer method may be declared by ~annotating the event parameter of the observer method |@javax.event.Asynchronously|~ or in XML by a child |&lt;Asynchronously&gt;| element of the |&lt;Observes&gt;| element</text>
+    </assertion>
+    
+  </section>
+  
+  <section id="7.5.8" title="Observer object for an observer method">
+     
+  </section>
+  
+  <section id="7.5.9" title="Observer invocation context">
+    
+  </section>
+  
+  <section id="7.6" title="The Event interface">
+    
+  </section>
+  
+  <section id="7.7" title="Observer resolution">
+    
+  </section>
+  
+  <section id="7.7.1" title="Event binding types with members">
+    
+  </section>
+  
+  <section id="7.7.2" title="Multiple event bindings">
+   
+  </section>
+  
+  <section id="7.8" title="JMS event mappings">
+    
+  </section>
+  
+  <section id="8" title="Scopes and contexts">
+  
+  </section>
+  
+  <section id="8.1" title="The Context interface">
+    
+  </section>
+  
+  <section id="8.2" title="Normal scopes and pseudo-scopes">
+    
+  </section>
+  
+  <section id="8.3" title="Dependent pseudo-scope">
+  
+  </section>
+  
+  <section id="8.3.1" title="Dependent objects">
+    
+  </section>
+  
+  <section id="8.3.2" title="Dependent object destruction">
+  
+    
+  </section>
+  
+  <section id="8.4" title="Passivating scopes and serialization">
+    
+  </section>
+  
+  <section id="8.5" title="Context management for built-in scopes">
+  
+  </section>
+  
+  <section id="8.5.1" title="Request context lifecycle">
+  
+  </section>
+  
+  <section id="8.5.2" title="Session context lifecycle">
+  
+  </section>
+  
+  <section id="8.5.3" title="Application context lifecycle">
+  
+  </section>
+  
+  <section id="8.5.4" title="Conversation context lifecycle">
+  
+    
+  </section>
+  
+  <section id="8.6" title="Context management for custom scopes">
+  
+  </section>
+  
+  <section id="9" title="XML based metadata">
+    <assertion id="a">
+      <text>XML-based bean declarations define additional beans they do not redefine or disable any bean that was declared via annotations</text>
+    </assertion>
+    
+  </section>  
+  
+  <section id="9.1" title="XML namespace for a Java package">
+    
+  </section>
+  
+  <section id="9.2" title="XML namespace aggregating multiple packages">
+
+  </section>
+  
+  <section id="9.2.1" title="The Java EE namespace">
+    
+  </section>
+  
+  <section id="9.3" title="Standard schema location for a namespace">
+    
+  </section>
+  
+  <section id="9.4" title="Stereotype, binding type and interceptor binding type declarations">
+    
+  </section>
+  
+  <section id="9.4.1" title="Child elements of a stereotype declaration">
+    
+  </section>
+  
+  <section id="9.4.2" title="Child elements of an interceptor binding type declaration">
+  
+  </section>
+  
+  <section id="9.5" title="Bean declarations">
+  
+    <assertion id="a">
+      <text>An XML element that appears as a direct child of the root |&lt;Beans&gt;| element is interpreted as a bean declaration if it is not a |&lt;Deploy&gt;|, |&lt;Interceptors&gt;| or |&lt;Decorators&gt;| element in the Java EE namespace, and does not have a direct child |&lt;BindingType&gt;|,|&lt;InterceptorBindingType&gt;| or |&lt;Stereotype&gt;| element in the Java EE namespace</text>    
+    </assertion>
+    
+    <assertion id="b">
+      <text>The name of the XML element is interpreted as a Java type. The container inspects the Java type and other metadata to determine what kind of bean is being declared. If no such Java type exists in the classpath, a |DefinitionException| is thrown by the container at deployment time</text>
+    </assertion>
+    
+    <assertion id="c">
+      <text>If the type is |javax.jms.Queue| or |javax.jms.Topic|, it declares a JMS resource, as defined in Section 3.7.2, "Declaring a JMS resource using XML"</text>
+    </assertion>
+    
+    <assertion id="d">
+      <text>If the element has a child |&lt;Resource&gt;|, |&lt;PersistenceContext&gt;|, |&lt;PersistenceUnit&gt;|, |&lt;EJB&gt;| or |&lt;WebServiceRef&gt;| element, it declares a resource, as defined in Section 3.6.1, "Declaring a resource using XML"</text>
+    </assertion>
+    
+    <assertion id="e">
+      <text>If the type is an EJB bean class, a session bean was declared, as defined in Section 3.3.5, "Declaring a session bean using XML"</text>
+    </assertion>
+    
+    <assertion id="f">
+      <text>If the type is a concrete class, is not an EJB bean class, and is not a parameterized type, a simple bean was declared, as defined in Section 3.2.4, "Declaring a simple bean using XML"</text>
+    </assertion>
+    
+    <assertion id="g">
+      <text>Otherwise, a |DefinitionException| is thrown by the container at deployment time</text>
+    </assertion>
+    
+    <assertion id="h">
+      <text>Inline bean declarations may occur at injection points, as defined in Section 9.9, "Inline bean declarations". Inline bean declarations always declare simple beans</text>
+    </assertion>
+  
+  </section>
+  
+  <section id="9.5.1" title="Child elements of a bean declaration">
+    <assertion id="a">
+      <text>If the child element can be interpreted as a Java annotation type, the container interprets the child element as declaring type-level metadata</text>
+    </assertion>
+    
+    <assertion id="b">
+      <text>If the child element can be interpreted as a Java class or interface, the container interprets the child element as declaring a parameter of the bean constructor</text>
+    </assertion>
+    
+    <assertion id="c">
+      <text>If the child element namespace is the same as the namespace of the parent, the container interprets the element as declaring a method or field of the bean</text>
+    </assertion>
+    
+    <assertion id="d">
+      <text>If the name of the child element matches the name of both a method and a field of the bean class, a |DefinitionException| is thrown by the container at deployment time</text>
+    </assertion>
+    
+    <assertion id="e">
+      <text>If the name of the child element matches the name of a method of the bean class, is it interpreted to represent that method</text>
+    </assertion>
+    
+    <assertion id="f">
+      <text>If the name of the child element matches the name of a field of the bean class, is it interpreted to represent that field</text>
+    </assertion>
+    
+    <assertion id="g">
+      <text>Otherwise, a |DefinitionException| is thrown by the container at deployment time</text>
+    </assertion>
+  </section>
+  
+  <section id="9.5.2" title="Type-level metadata for a bean">
+    <assertion id="a">
+      <text>Type-level metadata is specified via direct child elements of the bean declaration that represent Java annotation types</text>
+    </assertion>
+    
+    <assertion id="b">
+      <text>The child element is interpreted as a Java annotation type</text>
+    </assertion>
+    
+    <assertion id="c">
+      <text>If the annotation type is a deployment type, the deployment type of the bean was declared, as defined in Section 2.5.4, "Declaring the deployment type of a bean using XML"</text>
+    </assertion>
+    
+    <assertion id="d">
+      <text>If the annotation type is a scope type, the scope of the bean was declared, as defined in Section 2.4.4, "Declaring the bean scope using XML"</text>
+    </assertion>
+    
+    <assertion id="e">
+      <text>If the annotation type is a binding type, a binding of the bean was declared, as defined in Section 2.3.4, "Declaring the bindings of a bean using XML"</text>
+    </assertion>
+    
+    <assertion id="f">
+      <text>If the annotation type is an interceptor binding type, an interceptor binding of the bean was declared, as defined in Section A.3.6.2, "Binding an interceptor using XML"</text>
+    </assertion>
+    
+    <assertion id="g">
+      <text>If the annotation type is a stereotype, a stereotype of the bean was declared, as defined in Section 2.7.3, "Declaring the stereotypes for a bean using XML"</text>
+    </assertion>
+    
+    <assertion id="h">
+      <text>If the annotation type is |javax.annotation.Name|, the name of the bean was declared, as defined in Section 2.6.2, "Declaring the bean name using XML"</text>
+    </assertion>
+    
+    <assertion id="i">
+      <text>If the annotation type is |javax.inject.Specializes|, the bean was declared to directly specialize the bean with the same bean class that was defined using annotations, as specified in Section 3.2.7, "Specializing a simple bean" and Section 3.3.7, "Specializing a session bean"</text>
+    </assertion>
+    
+    <assertion id="j">
+      <text>If the annotation type is |javax.inject.Realizes|, the bean was declared to realize the bean with the same bean class that was defined using annotations</text>
+    </assertion>
+    
+    <assertion id="k">
+      <text>If the annotation type is |javax.interceptor.Interceptor|, or |javax.decorator.Decorator| the bean is an interceptor or decorator, as defined in Section 9.7, "Interceptor and decorator declarations"</text>
+    </assertion>
+    
+    <assertion id="l">
+      <text>If the annotation type is |javax.annotation.Resource|, |javax.ejb.EJB|, |javax.xml.ws.WebServiceRef|, |javax.persistence.PersistenceContext| or |javax.persistence.PersistenceUnit|, the metadata for a resource or JMS resource was declared, as defined in Section 3.6.1, "Declaring a resource using XML" and Section 3.7.2, "Declaring a JMS resource using XML"</text>
+    </assertion>
+    
+    <assertion id="m">
+      <text>Otherwise, a |DefinitionException| is thrown by the container at deployment time</text>
+    </assertion>
+  </section>
+  
+  <section id="9.5.3" title="Bean constructor declarations">
+    <assertion id="a">
+      <text>The bean constructor for a simple bean is declared by the list of direct child elements of the bean declaration that represent Java class or interface types</text>
+    </assertion>
+    
+    <assertion id="b">
+      <text>The container interprets these elements as declaring parameters of the constructor</text>
+    </assertion>
+    
+    <assertion id="c">
+      <text>Each constructor parameter declaration is interpreted as an injection point declaration, as specified in Section 9.8, "Injection point declarations"</text>
+    </assertion>
+    
+    <assertion id="d">
+      <text>If the simple bean class has exactly one constructor such that the constructor has the same number of parameters as the bean declaration has constructor parameter declarations, and the Java type represented by each constructor parameter declaration is assignable to the Java type of the corresponding constructor parameter then the element is interpreted to represent that constructor, and that constructor is the bean constructor</text>
+    </assertion>
+    
+    <assertion id="e">
+      <text>If more than one constructor exists which satisfies these conditions, a |DefinitionException| is thrown by the container at deployment time</text>
+    </assertion>
+    
+    <assertion id="f">
+      <text>If no constructor of the simple bean class satisfies these conditions, a |DefinitionException| is thrown by the container at deployment time</text>
+    </assertion>
+    
+    <assertion id="g">
+      <text>For any constructor parameter, the bean type declared in XML may be a subtype of the Java parameter type. In this case, the container will use the bean type declared in XML when resolving the dependency</text>
+    </assertion>
+  </section>
+  
+  <section id="9.5.4" title="Fields of a bean">
+    <assertion id="a">
+      <text>A field of a bean is declared by a direct child element of the bean declaration. The name of the field is the same as the name of the element</text>
+    </assertion>
+    
+    <assertion id="b">
+      <text>If the bean class has exactly one field with the same name as the child element, then the child element is interpreted to represent that field</text>
+    </assertion>
+    
+    <assertion id="c">
+      <text>If the bean class does not have exactly one field with the specified name, a |DefinitionException| is thrown by the container at deployment time</text>
+    </assertion>
+    
+    <assertion id="d">
+      <text>If more than one child element of a bean declaration represents the same field of the bean class, a |DefinitionException| is thrown by the container at deployment time</text>
+    </assertion>
+    
+    <assertion id="e">
+      <text>A field declaration may contain child elements</text>
+    </assertion>
+    
+    <assertion id="f">
+      <text>If a field declaration has more than one direct child element, and at least
+one of these elements is something other than a |&lt;value&gt;| element in the Java EE namespace, a |DefinitionException| is thrown by the container at deployment time</text>
+    </assertion>
+    
+    <assertion id="g">
+      <text>An element that represents a field may declare an injected field, a producer field or a field with an initial value</text>
+    </assertion>
+    
+    <assertion id="h">
+      <text>If the element contains a child |&lt;Produces&gt;| element in the Java EE namespace, a producer field was declared, as defined in Section 3.5.3, "Declaring a producer field using XML"</text>
+    </assertion>
+    
+    <assertion id="i">
+      <text>If the element contains a child |&lt;value&gt;| element in the Java EE namespace, a field with an initial value of type Set or List was declared, as defined in Section 9.5.5, "Field initial value declarations"</text>
+    </assertion>
+    
+    <assertion id="j">
+      <text>If the element has exactly one child element, an injected field was declared, as defined in Section 3.8.2, "Declaring an injected field using XML"</text>
+    </assertion>
+    
+    <assertion id="k">
+      <text>If the element has a non-empty body, and no child elements, a field with an initial value was declared, as defined in Section 9.5.5, "Field initial value declarations"</text>
+    </assertion>
+    
+    <assertion id="l">
+      <text>Otherwise, a |DefinitionException| is thrown by the container at deployment time</text>
+    </assertion>
+    
+    <assertion id="m">
+      <text>If a field declaration represents an injected field, the child element is interpreted as an injection point declaration, as specified in Section 9.8, "Injection point declarations"</text>
+    </assertion>
+    
+    <assertion id="n">
+      <text>If the declared type is not assignable to the Java type of the field, a |DefinitionException| is thrown by the container at deployment time</text>
+    </assertion>
+    
+    <assertion id="o">
+      <text>The bean type declared in XML may be a subtype of the Java field type. In this case, the container will use the bean type declared in XML when resolving the dependency</text>
+    </assertion>
+        
+  </section>
+  
+  <section id="9.5.5" title="Field initial value declarations">
+    <assertion id="a">
+      <text>The initial value of a field of a simple bean or session bean with any one of the following types may be specified in XML: any primitive type, or |java.lang| wrapper type, any enumerated type, |java.lang.String|, |java.util.Date|, |java.sql.Date|, |java.sql.Time| or |java.sql.Timestamp|, |java.util.Calendar|, |java.math.BigDecimal| or |java.math.BigInteger|, |java.lang.Class|, |java.util.List&lt;java.lang.String&gt;| or |java.util.Set&lt;java.lang.String&gt;|, |java.util.List&lt;java.lang.Class&gt;| or |java.util.Set&lt;java.lang.Class&gt;|, |java.util.List&lt;X&gt;| or |java.util.Set&lt;X&gt;| where X is an enumerated type</text>
+    </assertion>
+    
+    <assertion id="b">
+      <text>The initial value of the field is specified in the body of an XML element representing the field</text>
+    </assertion>
+    
+    <assertion id="c">
+      <text>The initial value of a field of primitive type or |java.lang| wrapper type is specified using the Java literal syntax for that type</text>
+    </assertion>
+    
+    <assertion id="d">
+      <text>The initial value of a field of type |java.lang.String| is specified using the string value</text>
+    </assertion>
+    
+    <assertion id="e">
+      <text>The initial value of a field of enumerated type is specified using the unqualified name of the enumeration value</text>
+    </assertion>
+    
+    <assertion id="f">
+      <text>The initial value of a field of type |java.util.Date|, |java.sql.Date|, |java.sql.Time|, |java.sql.Timestamp| or |java.util.Calendar| is specified using a format that can be parsed by calling
+|java.text.DateFormat.getDateTimeInstance().parse()|</text>
+    </assertion>
+    
+    <assertion id="g">
+      <text>The initial value of a field of type |java.math.BigDecimal| or |java.math.BigInteger| is specified using a format that can be parsed by the constructor that accepts a string</text>
+    </assertion>
+    
+    <assertion id="h">
+      <text>The initial value of a field of type |java.lang.Class| is specified using the fully qualified Java class name</text>
+    </assertion>
+    
+    <assertion id="i">
+      <text>The initial value of a field of type |java.util.List| or |java.util.Set| is specified by a list of |&lt;value&gt;| elements. The body of the value element is specified using the string value, fully qualified Java class name or unqualified name of the enumeration value</text>
+    </assertion>
+    
+    <assertion id="j">
+      <text>If a field with an initial value specified in XML is not of one of the listed types, or if the initial value is not specified in the correct format for the type of the field, a  |DefinitionException| is thrown by the container at deployment time</text>
+    </assertion>
+    
+    <assertion id="k">
+      <text>If an element representing a field specifies both an initial value and a type declaration, a |DefinitionException| is thrown by the container at deployment time</text>
+    </assertion>
+  </section>
+  
+  <section id="9.5.6" title="Methods of a bean">
+    <assertion id="a">
+      <text>A method of a bean is declared by a direct child element of the bean declaration. The name of the declared method is the same as the name of the child element</text>
+    </assertion>
+    
+    <assertion id="b">
+      <text>A method declaration may have any number of direct child elements</text>
+    </assertion>
+    
+    <assertion id="c">
+      <text>The container inspects the direct child elements of the method declaration. For each child element, the element is interpreted as a Java type. If no such Java type exists in the classpath, a |DefinitionException| is thrown by the container at deployment time</text>
+    </assertion>
+    
+    <assertion id="d">
+      <text>If the type is |javax.inject.Disposes|, the container searches for a direct child element of the child element and interprets that element as declaring a disposed parameter of the disposal method</text>
+    </assertion>
+    
+    <assertion id="e">
+      <text>If the type is |javax.event.Observes|, the container searches for a direct child element of the child element that is not an |&lt;IfExists&gt;|, |&lt;Asynchronously&gt;|, |&lt;AfterTransactionCompletion&gt;|, |&lt;AfterTransactionSuccess&gt;|, |&lt;AfterTransactionFailure&gt;| or |&lt;BeforeTransactionCompletion&gt;| element in the Java EE namespace, and interprets that element as declaring an event parameter of the observer method</text>
+    </assertion>
+    
+    <assertion id="f">
+      <text>If the type is some other Java annotation type, the container interprets the child element as declaring method-level metadata</text>
+    </assertion>
+    
+    <assertion id="g">
+      <text>If the type is a Java class or interface, the container interprets the child element as declaring a parameter of the method</text>
+    </assertion>
+    
+    <assertion id="h">
+      <text>Otherwise, a |DefinitionException| is thrown by the container at deployment time</text>
+    </assertion>
+    
+    <assertion id="i">
+      <text>If a method declaration has more than one direct child element which is an |&lt;Initializer&gt;|, |&lt;Produces&gt;|, |&lt;Disposes&gt;| or |&lt;Observes&gt;| element in the Java EE namespace, a |DefinitionException| is thrown by the container at deployment time</text>
+    </assertion>
+    
+    <assertion id="j">
+      <text>If a |&lt;Disposes&gt;| element does not contain exactly one direct child element, a |DefinitionException| is thrown by the container at deployment time</text>
+    </assertion>
+    
+    <assertion id="k">
+      <text>If an |&lt;Observes&gt;| element does not contain exactly one direct child element that is not an |&lt;IfExists&gt;|, |&lt;Asynchronously&gt;|, |&lt;AfterTransactionCompletion&gt;|, |&lt;AfterTransactionSuccess&gt;|, |&lt;AfterTransactionFailure&gt;| or |&lt;BeforeTransactionCompletion&gt;| element in the Java EE namespace, a |DefinitionException| is thrown by the container at deployment time</text>
+    </assertion>
+    
+    <assertion id="l">
+      <text>Each method parameter declaration and disposed parameter declaration is interpreted as an injection point declaration, as specified in Section 9.8, "Injection point declarations". An event parameter declaration is interpreted as a type declaration, as defined in Section 9.10, "Specifying bean types and bindings"</text>
+    </assertion>
+    
+    <assertion id="m">
+      <text>If the bean class has exactly one method such that the method name is the same as the name of the element that declares the method, the method has the same number of parameters as the element that declares the method has child elements, and the Java type represented by each method parameter declaration is assignable to the Java type of the corresponding method parameter, then the element is interpreted to represent that method</text>
+    </assertion>
+    
+    <assertion id="n">
+      <text>If more than one method exists which satisfies these conditions, a |DefinitionException| is thrown by the container at deployment time</text>
+    </assertion>
+    
+    <assertion id="o">
+      <text>If no method of the bean class satisfies these conditions, a |DefinitionException| is thrown by the container at deployment time</text>
+    </assertion>
+    
+    <assertion id="p">
+      <text>For any method parameter, the bean type declared in XML may be a subtype of the Java parameter type. In this case, the container will use the bean type declared in XML when resolving the dependency</text>
+    </assertion>
+    
+    <assertion id="q">
+      <text>If more than one child element of a bean declaration represents the same method of the bean class, a |DefinitionException| is thrown by the container at deployment time</text>
+    </assertion>
+    
+    <assertion id="r">
+      <text>An element that represents a method may declare an initializer method, an observer method, a producer method or a disposal method. Alternatively, or additionally, it may declare method-level interceptor binding</text>
+    </assertion>
+    
+    <assertion id="s">
+      <text>If the element contains a child |&lt;Initializes&gt;| element in the Java EE namespace, an initializer method was declared, as defined in Section 3.9.2, "Declaring an initializer method using XML"</text>
+    </assertion>
+    
+    <assertion id="t">
+      <text>If the element contains a child |&lt;Produces&gt;| element in the Java EE namespace, a producer method was declared, as defined in Section 3.4.3, "Declaring a producer method using XML"</text>
+    </assertion>
+    
+    <assertion id="u">
+      <text>If the element contains a child |&lt;Disposes&gt;| element in the Java EE namespace, a disposal method was declared, as defined in Section 3.4.9, "Declaring a disposal method using XML"</text>
+    </assertion>
+    
+    <assertion id="v">
+      <text>If the element contains a child |&lt;Observes&gt;| element in the Java EE namespace, an observer method was declared, as defined in Section 7.5.3, "Declaring an observer method using XML"</text>
+    </assertion>
+    
+    <assertion id="w">
+      <text>If the element contains a child element which can be interpreted as an interceptor binding type, method-level interceptor binding was declared, as defined in Section A.3.6.2, "Binding an interceptor using XML"</text>
+    </assertion>
+  </section>
+  
+  <section id="9.6" title="Producer method and field declarations">
+    <assertion id="a">
+      <text>A producer method or field declaration is formed by adding a direct child |&lt;Produces&gt;| element to an element that represents the method or field, as defined in Section 3.4.3, "Declaring a producer method using XML" and Section 3.5.3, "Declaring a producer field using XML"</text>
+    </assertion>
+    
+  </section>
+  
+  <section id="9.6.1" title="Child elements of a producer field declaration">
+    <assertion id="a">
+      <text>The container inspects the direct child elements of a producer field declaration</text>
+    </assertion>
+    
+    <assertion id="b">
+      <text>If there is more than one direct child element, a |DefinitionException| is thrown by the container at deployment time</text>
+    </assertion>
+    
+    <assertion id="c">
+      <text>Otherwise, the direct child element is a |&lt;Produces&gt;| element in the Java EE namespace, and declares the return type, bindings and member-level metadata of the producer field</text>
+    </assertion>
+    
+    <assertion id="d">
+      <text>The container inspects the direct child elements of the |&lt;Produces&gt;| element. For each child element, the element is interpreted as a Java type. If no such Java type exists in the classpath, a |DefinitionException| is thrown by the container at deployment time</text>
+    </assertion>
+    
+    <assertion id="e">
+      <text>If the type is a Java class or interface type, the type of the producer field was declared</text>
+    </assertion>
+    
+    <assertion id="f">
+      <text>If the type is a Java annotation type, it declares member-level metadata of the producer field</text>
+    </assertion>
+    
+    <assertion id="g">
+      <text>Otherwise, a |DefinitionException| is thrown by the container at deployment time</text>
+    </assertion>
+    
+    <assertion id="h">
+      <text>If more than one child element represents a Java class or interface type, or if no child element represents a Java class or interface type, a |DefinitionException| is thrown by the container at deployment time</text>
+    </assertion>
+  </section>
+  
+  <section id="9.6.2" title="Child elements of a producer method declaration">
+    <assertion id="a">
+      <text>If a child element of a producer method declaration is the |&lt;Produces&gt;| element in the Java EE namespace, it declares the return type, bindings and member-level metadata of the producer method</text>
+    </assertion>
+    
+    <assertion id="b">
+      <text>If the child element of a producer method declaration can be interpreted as an interceptor binding type, it declares a method-level interceptor binding</text>
+    </assertion>
+    
+    <assertion id="c">
+      <text>The container interprets the child element of a producer method declaration as declaring a parameter of the producer method, if it is not a |&lt;Produces&gt;| element and cannot be interpreted as an interceptor binding type</text>
+    </assertion>
+    
+    <assertion id="d">
+      <text>If there is more than one child |&lt;Produces&gt;| element of a producer method declaration in the Java EE namespace, a |DefinitionException| is thrown by the container at deployment time.</text>
+    </assertion>
+    
+    <assertion id="e">
+      <text>The container inspects the direct child elements of the |&lt;Produces&gt;| element. For each child element, the element is interpreted as a Java type. If no such Java type exists in the classpath, a |DefinitionException| is thrown by the container at deployment time</text>
+    </assertion>
+    
+    <assertion id="f">
+      <text>If the type of the direct child element of a |&lt;Produces&gt;| element is a Java class or interface type, the return type of the producer method was declared</text>
+    </assertion>
+    
+    <assertion id="g">
+      <text>If the type of the direct child element of a |&lt;Produces&gt;| element is a Java annotation type, it declares member-level metadata of the producer method</text>
+    </assertion>
+    
+    <assertion id="h">
+      <text>If the type of the direct child element of a |&lt;Produces&gt;| element is not a Java class or Java annotation, a |DefinitionException| is thrown by the container at deployment time.</text>
+    </assertion>
+    
+    <assertion id="i">
+      <text>If more than one child element represents a Java class or interface type, or if no child element represents a Java class or interface type, a |DefinitionException| is thrown by the container at deployment time</text>
+    </assertion>
+  </section>
+  
+  <section id="9.6.3" title="Return type and bindings of a producer method or field">
+    <assertion id="a">
+      <text>Every XML producer method or field declaration has a direct child |&lt;Produces&gt;| element</text>
+    </assertion>
+    
+    <assertion id="b">
+      <text>This |&lt;Produces&gt;| element must, in turn, have a direct child element which declares the return type of the producer method or the type of the producer field and which is interpreted by the container as a type declaration, as defined in Section 9.10, "Specifying bean types and bindings"</text>
+    </assertion>
+    
+    <assertion id="c">
+      <text>The type declaration that declares the return type of the producer method or the type of the producer field specifies the return type and bindings of the producer method bean, or the type and bindings of the producer field bean.</text>
+    </assertion>
+    
+    <assertion id="d">
+      <text>The type is used to calculate the set of bean types</text>
+    </assertion>
+    
+    <assertion id="e">
+      <text>The type declared in XML must be a supertype or subtype of the Java method or field type. If the declared type is not a supertype or subtype of the Java method or field type, a |DefinitionException| is thrown by the container at deployment time.</text>
+    </assertion>
+    
+  </section>
+  
+  <section id="9.6.4" title="Member-level metadata for a producer method or field">
+    <assertion id="a">
+      <text>Member-level metadata for a producer method or field declaration is specified via direct child elements of the |&lt;Produces&gt;| element that represent Java annotation types.</text>
+    </assertion>
+    
+    <assertion id="b">
+      <text>Each child element is interpreted as a Java annotation type. If the type is not a Java annotation type, a |DefinitionException| is thrown by the container at deployment time</text>
+    </assertion>
+    
+    <assertion id="c">
+      <text>If the annotation type is a deployment type, the deployment type of the producer method or field was declared, as defined in Section 2.5.4, "Declaring the deployment type of a bean using XML".</text>
+    </assertion>
+    
+    <assertion id="d">
+      <text>If the annotation type is a scope type, the scope of the producer method or field was declared, as defined in Section 2.4.4, "Declaring the bean scope using XML".</text>
+    </assertion>
+    
+    <assertion id="e">
+      <text>If the annotation type is a stereotype, a stereotype of the producer method or field was declared, as defined in Section 2.7.3, "Declaring the stereotypes for a bean using XML".</text>
+    </assertion>
+    
+    <assertion id="f">
+      <text>If the annotation type is |javax.annotation.Name|, the name of the producer method or field was declared, as defined in Section 2.6.2, "Declaring the bean name using XML".</text>
+    </assertion>
+    
+    <assertion id="g">
+      <text>If the annotation type is not a deployment type, or a scope type, or a stereotype, or a |javax.annotation.Name|, a |DefinitionException| is thrown by the container at deployment time</text>
+    </assertion>
+  </section>
+  
+  <section id="9.7" title="Interceptor and decorator declarations">
+    <assertion id="a">
+      <text>A simple bean declaration is interpreted as an interceptor declaration if it contains a direct child |&lt;Interceptor&gt;| element in the Java EE namespace</text>
+    </assertion>
+    
+    <assertion id="b">
+      <text>A simple bean declaration is interpreted as a decorator declaration if it contains a direct child |&lt;Decorator&gt;| element in the Java EE namespace</text>
+    </assertion>
+    
+    <assertion id="c">
+      <text>If a bean declaration that is not a simple bean declaration contains a child |&lt;Interceptor&gt;| element, a |DefinitionException| is thrown by the container at deployment time.</text>
+    </assertion>
+    
+    <assertion id="d">
+      <text>If a bean declaration that is not a simple bean declaration contains a child |&lt;Decorator&gt;| element, a |DefinitionException| is thrown by the container at deployment time.</text>
+    </assertion>
+    
+    <assertion id="e">
+      <text>If an inline bean declaration contains a child |&lt;Interceptor&gt;| element, a |DefinitionException| is thrown by the container at deployment time.</text>
+    </assertion>
+    
+    <assertion id="f">
+      <text>If an inline bean declaration contains a child |&lt;Decorator&gt;| element, a |DefinitionException| is thrown by the container at deployment time.</text>
+    </assertion>
+    
+    <assertion id="g">
+      <text>If a simple bean declaration contains more than one direct child |&lt;Interceptor&gt;| element in the Java EE namespace, a |DefinitionException| is thrown by the container at deployment time.</text>
+    </assertion>
+    
+    <assertion id="h">
+      <text>If a simple bean declaration contains more than one direct child |&lt;Decorator&gt;| element in the Java EE namespace, a |DefinitionException| is thrown by the container at deployment time.</text>
+    </assertion>
+  </section>
+  
+  <section id="9.7.1" title="Decorator delegate attribute">
+    <assertion id="a">
+      <text>Decorator declarations may declare the delegate attribute</text>
+    </assertion>
+    
+    <assertion id="b">
+      <text>A delegate declaration is a direct child element of the decorator declaration.</text>
+    </assertion>
+    
+    <assertion id="c">
+      <text>The name of the delegate attribute is the same as the name of the element.</text>
+    </assertion>
+    
+    <assertion id="d">
+      <text>If a direct child element of a decorator declaration exists in the same namespace as its parent, and has direct child |&lt;Decorates&gt;| element in the Java EE namespace then it is interpreted as a delegate declaration.</text>
+    </assertion>
+    
+    <assertion id="e">
+      <text>If the bean class has a field with the same name as the child element, then the child element is interpreted to represent that field.</text>
+    </assertion>
+    
+    <assertion id="f">
+      <text>If the bean class does not have have a field with the specified name, a |DefinitionException| is thrown by the container at deployment time.</text>
+    </assertion>
+    
+    <assertion id="g">
+      <text>If a delegate declaration has more than one direct child element, a |DefinitionException| is thrown by the container at deployment time.</text>
+    </assertion>
+    
+    <assertion id="h">
+      <text>The child element of the delegate declaration is a |&lt;Decorates&gt;| element in the Java EE namespace. If the |&lt;Decorates&gt;| element does not, in turn, have exactly one direct child element, a |DefinitionException| is thrown by the container at deployment time.</text>
+    </assertion>
+    
+    <assertion id="i">
+      <text>The direct child element of the |&lt;Decorates&gt;| element is interpreted as a type declaration as specified by Section 9.10, "Specifying bean types and bindings". If the declared bean type is not assignable to the type of the Java field, a |DefinitionException| is thrown by the container at deployment time.</text>
+    </assertion>
+    
+    <assertion id="j">
+      <text>The bean type declared in XML may be a subtype of the Java field type. In this case, the container will use the bean type declared in XML when resolving the dependency.</text>
+    </assertion>
+    
+    <assertion id="k">
+      <text>If simple bean declaration that is not a decorator declaration contains a direct child element that in turn contains a direct child |&lt;Decorates&gt;| element, a |DefinitionException| is thrown by the container at deployment time.</text>
+    </assertion>
+    
+  </section>
+  
+  <section id="9.8" title="Injection point declarations">
+    <assertion id="a">
+      <text>An injection point declaration is either a type declaration, as defined in Section 9.10, "Specifying bean types and bindings", or an inline bean declaration, as defined in Section 9.9, "Inline bean declarations".</text>
+    </assertion>
+    
+    <assertion id="b">
+      <text>When the container encounters an injection point declaration, it interprets the element as a Java class or interface. If no such Java type exists in the classpath, a |DefinitionException| is thrown by the container at deployment time.</text>
+    </assertion>
+    
+    <assertion id="c">
+      <text>If the Java type is a parameterized type, the injection point declaration is a type declaration, and the declared type of the injection point is the bean type of the type declaration, including actual type parameters.</text>
+    </assertion>
+    
+    <assertion id="d">
+      <text>Otherwise, the container inspects the direct child elements. If any direct child element can be interpreted as a binding type, the injection point declaration is a type declaration, and the declared type of the injection point is the bean type of the type declaration.</text>
+    </assertion>
+    
+    <assertion id="e">
+      <text>Otherwise, if any direct child elements exist, the injection point declaration is an inline bean declaration, and the declared type of the injection point is the bean class of the bean.</text>
+    </assertion>
+    
+    <assertion id="f">
+      <text>Otherwise, the injection point declaration is a type declaration, and the declared type of the injection point is the bean type of the type declaration.</text>
+    </assertion>
+  </section>
+  
+  <section id="9.9" title="Inline bean declarations">
+    <assertion id="a">
+      <text>An inline bean declaration is a simple bean declaration, as defined in Section 9.5, "Bean declarations" that occurs as an injection point declaration, instead of as a direct child of the &lt;Beans&gt; element.</text>
+    </assertion>
+    
+    <assertion id="b">
+      <text>The element is interpreted as a Java class. This Java class is the bean class of the simple bean</text>
+    </assertion>
+    
+    <assertion id="c">
+      <text>Inline bean declarations may not explicitly specify a binding type. If an inline bean declaration explicitly specifies a binding type, a |DefinitionException| is thrown by the container at deployment time.</text>
+    </assertion>
+    
+    <assertion id="d">
+      <text>For every inline injection point, the container generates a unique value for an implementation-specific binding type.  This generated value is the binding of the injection point, and the only binding of the simple bean. The bean type of the injection point is the declared bean class of the simple bean.</text>
+    </assertion>
+    
+    <assertion id="e">
+      <text>An inline bean declaration results in a simple bean that is bound only to the injection point at which it was declared.</text>
+    </assertion>
+  </section>
+  
+  <section id="9.10" title="Specifying bean types and bindings">
+    <assertion id="a">
+      <text>Every injection point defined in XML must explicitly specify a bean type and combination of bindings.</text>
+    </assertion>
+    
+    <assertion id="b">
+      <text>Every event parameter defined in XML must explicitly specify a bean type and combination of bindings.</text>
+    </assertion>
+    
+    <assertion id="c">
+      <text>Every delegate attribute defined in XML must explicitly specify a bean type and combination of bindings.</text>
+    </assertion>
+    
+    <assertion id="d">
+      <text>XML-based producer method declarations must explicitly specify the return type (which is used to calculate the set of bean types) and bindings</text>
+    </assertion>
+    
+    <assertion id="e">
+      <text>A type declaration is an element that represents a Java class or interface, or |&lt;Array&gt;|</text>
+    </assertion>
+    
+    <assertion id="f">
+      <text>A type declaration is (if the type is a parameterized type), a set of child elements that represent Java classes and/or interfaces, and are interpreted as the actual type parameters, or, if the type is an array type, a single child element that represents the array element type</text>
+    </assertion>
+    
+    <assertion id="g">
+      <text>A type declaration is optionally, a set of child elements that represent Java annotation types, and are interpreted as bindings</text>
+    </assertion>
+    
+    <assertion id="h">
+      <text>When the container encounters a type declaration it interprets the element as a Java type</text>
+    </assertion>
+    
+    <assertion id="i">
+      <text>If the element is an |&lt;Array&gt;| element in the Java EE namespace, an array type was declared.</text>
+    </assertion>
+    
+    <assertion id="j">
+      <text>Otherwise, the element is interpreted as a Java class or interface. If no such Java type exists in the classpath, a |DefinitionException| is thrown by the container at deployment time. If the Java type is not a class or interface type, a |DefinitionException| is thrown by the container at deployment time</text>
+    </assertion>
+    
+    <assertion id="k">
+      <text>The container inspects every direct child element of the type declaration. Each child element is interpreted as a Java type. If no such Java type exists in the classpath, a |DefinitionException| is thrown by the container at deployment time.</text>
+    </assertion>
+    
+    <assertion id="l">
+      <text>If the type is a Java annotation type, a binding was declared.</text>
+    </assertion>
+    
+    <assertion id="m">
+      <text>If the type is a Java class or interface type, an actual type parameter or array element type was declared</text>
+    </assertion>
+    
+    <assertion id="n">
+      <text>If the type is not a Java annotation type or a Java class or interface type, a |DefinitionException| is thrown by the container at deployment time.</text>
+    </assertion>
+    
+    <assertion id="o">
+      <text>If multiple array element types are declared, a |DefinitionException| is thrown by the container at deployment time.</text>
+    </assertion>
+    
+    <assertion id="p">
+      <text>If the number of declared actual type parameters is not the same as the number of parameters of the Java type, a |DefinitionException| is thrown by the container at deployment time.</text>
+    </assertion>
+    
+    <assertion id="q">
+      <text>If a type parameter of the Java type is bounded, and the corresponding declared actual type parameter does not satisfy the upper or lower bound, a |DefinitionException| is thrown by the container at deployment time.</text>
+    </assertion>
+    
+    <assertion id="r">
+      <text>If a binding declaration declares a Java annotation type that is not a binding type, a |DefinitionException| is thrown by the container at deployment time.</text>
+    </assertion>
+    
+    <assertion id="s">
+      <text>If no binding is declared, the default binding |@Current| is assumed</text>
+    </assertion>
+    
+    <assertion id="t">
+      <text>If the same binding type occurs more than once, a |DuplicateBindingTypeException| is thrown by the container at deployment time.</text>
+    </assertion>
+    
+    <assertion id="u">
+      <text>For fields, type declarations are specified as direct child elements of the field declaration</text>
+    </assertion>
+    
+    <assertion id="v">
+      <text>For methods, the method parameter declarations are type declarations</text>
+    </assertion>
+    
+    <assertion id="w">
+      <text>For producer methods, the return type must be specified</text>
+    </assertion>
+    
+    <assertion id="x">
+      <text>For constructors, the constructor parameter declarations are type declarations</text>
+    </assertion>
+  </section>
+  
+  <section id="9.11" title="Annotation members">
+    <assertion id="a">
+      <text>Any binding or interceptor binding declaration must define the value of any annotation member without a default value, and may additionally define the value of any annotation member with a default value.</text>
+    </assertion>
+    
+    <assertion id="b">
+      <text>Annotation member values are defined by attributes of the XML element which represents the Java annotation.</text>
+    </assertion>
+    
+    <assertion id="c">
+      <text>All attributes of any XML element which represents a Java annotation are interpreted as members of the annotation</text>
+    </assertion>
+    
+    <assertion id="d">
+      <text>The name of the attribute is interpreted as the name of the corresponding annotation member.</text>
+    </assertion>
+    
+    <assertion id="e">
+      <text>The value of the attribute is interpreted as the value of the annotation member.</text>
+    </assertion>
+    
+    <assertion id="f">
+      <text>If there is no annotation member with the same name as the attribute, a |DefinitionException| is thrown by the container at deployment time.</text>
+    </assertion>
+    
+    <assertion id="g">
+      <text>The value of an annotation member named value may be specified in the body of the XML element which represents the Java annotation.</text>
+    </assertion>
+    
+    <assertion id="h">
+      <text>If the XML element has a non-empty body and also specifies an attribute named value, a
+|DefinitionException| is thrown by the container at deployment time.</text>
+    </assertion>
+    
+    <assertion id="i">
+      <text>If the XML element has a non-empty body, and there is no annotation member named value, a |DefinitionException| is thrown by the container at deployment time</text>
+    </assertion>
+    
+    <assertion id="j">
+      <text>The value of a member of primitive type is specified using the Java literal syntax for that type</text>
+    </assertion>
+    
+    <assertion id="k">
+      <text>The value of a member of type |java.lang.String| is specified using the string value</text>
+    </assertion>
+    
+    <assertion id="l">
+      <text>The value of a member of enumerated type is specified using the unqualified name of the enumeration value.</text>
+    </assertion>
+    
+    <assertion id="m">
+      <text>The value of a member of type |java.lang.Class| is specified using the fully qualified Java class name.</text>
+    </assertion>
+    
+    <assertion id="n">
+      <text>If the member value is not specified in the correct format for the type of the member, a |DefinitionException| is thrown by the container at deployment time.</text>
+    </assertion>
+    
+    <assertion id="o">
+      <text>If an XML element that refers to a Java annotation with a member with no default value does not declare a value for that member, a |DefinitionException| is thrown by the container at deployment time.</text>
+    </assertion>
+  </section>
+  
+  <section id="9.12" title="Deployment declarations">
+    
+  </section>
+  
+  <section id="9.12.1" title="The &lt;Deploy&gt; declaration">
+   
+  </section>
+  
+  <section id="9.12.2" title="The &lt;Interceptors&gt; declaration">
+  
+  </section>
+  
+  <section id="9.12.3" title="The &lt;Decorators&gt; declaration">
+    
+  </section>
+  
+  <section id="11" title="Packaging and Deployment">
+    
+  </section>
+  
+  <section id="11.1" title="Deployment lifecycle">
+    
+  </section>
+ 
+  <section id="11.2" title="Bean discovery">
+     
+   
+    
+    <assertion id="w">
+      <text>The container discovers beans~, disposal methods and observer methods~ defined using XML by parsing the |beans.xml| files according to the rules of Chapter 9, XML based metadata.</text>
+      <note>Check all archive types enumerated above, simple beans, session beans, producer methods and producer fields</note>
+    </assertion>
+    
+    <assertion id="x">
+      <text>The container discovers ~beans, ~disposal methods ~and observer methods~ defined using XML by parsing the |beans.xml| files according to the rules of Chapter 9, XML based metadata.</text>
+      <note>Check all archive types enumerated above</note>
+    </assertion>
+    
+    <assertion id="y">
+      <text>The container discovers ~beans, disposal methods and~ observer methods defined using XML by parsing the |beans.xml| files according to the rules of Chapter 9, XML based metadata.</text>
+      <note>Check all archive types enumerated above</note>
+    </assertion> 
+
+  </section>
+    
+  <section id="11.4" title="Providing additional XML based metadata"> 
+    <assertion id="a">
+      <text>The container parses the XML stream according to the rules of Chapter 9, XML based metadata.  This method may be called at any time by the application or third-party framework.</text>
+      <note>Check that the parse method adds beans etc.</note>
+    </assertion>
+  </section>
+  
+  <section id="11.6" title="Activities">
+  
+  </section>
+  
+  <section id="11.6.1" title="Current Activity">
+  
+  </section>
+
+</specification>

Added: tck/trunk/xml/src/main/resources/tck-tests.xml
===================================================================
--- tck/trunk/xml/src/main/resources/tck-tests.xml	                        (rev 0)
+++ tck/trunk/xml/src/main/resources/tck-tests.xml	2009-04-16 15:14:19 UTC (rev 2435)
@@ -0,0 +1,26 @@
+<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
+
+<suite name="JSR-299 TCK" verbose="2"  >
+   <test name="JSR-299 TCK" >
+      <method-selectors>
+         <method-selector>
+            <selector-class name="org.jboss.testharness.impl.testng.DisableIntegrationTestsMethodSelector" />
+         </method-selector>
+         <method-selector>
+            <selector-class name="org.jboss.testharness.impl.testng.ExcludeIncontainerUnderInvestigationMethodSelector" />
+         </method-selector>
+      </method-selectors>
+      <groups>
+         <run>
+            <exclude name="stub" />
+            <exclude name="ri-broken" />
+            <exclude name="underInvestigation" />
+            <exclude name="broken" />         
+         </run>
+      </groups>
+      <packages>
+         <package name="org.jboss.jsr299.tck.tests" />
+      </packages>
+   </test>
+   
+</suite>
\ No newline at end of file




More information about the weld-commits mailing list