[webbeans-commits] Webbeans SVN: r3545 - in tck/trunk/impl: src/main/java/org/jboss/jsr299/tck/tests/context and 222 other directories.

webbeans-commits at lists.jboss.org webbeans-commits at lists.jboss.org
Tue Aug 18 01:20:30 EDT 2009


Author: shane.bryzak at jboss.com
Date: 2009-08-18 01:20:25 -0400 (Tue, 18 Aug 2009)
New Revision: 3545

Added:
   tck/trunk/impl/src/main/resources/tck-audit-jsr299.xml
   tck/trunk/impl/src/main/resources/tck-audit-mngbean.xml
Removed:
   tck/trunk/impl/src/main/resources/tck-audit.xml
Modified:
   tck/trunk/impl/pom.xml
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/context/ContextTest.java
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/context/DestroyedInstanceReturnedByGetTest.java
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/context/GetFromContextualTest.java
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/context/GetOnInactiveContextTest.java
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/context/GetWithNoCreationalContextTest.java
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/context/NormalContextTest.java
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/context/application/ApplicationContextTest.java
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/context/application/ejb/EJBApplicationContextTest.java
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/context/conversation/ConversationBeginTest.java
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/context/conversation/ConversationContextTest.java
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/context/conversation/ConversationEndTest.java
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/context/conversation/ConversationIdSetByApplicationTest.java
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/context/conversation/ConversationIdSetByContainerTest.java
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/context/conversation/ConversationTimeoutTest.java
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/context/conversation/client/ClientConversationContextTest.java
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/context/conversation/client/InvalidatingSessionDestroysConversationTest.java
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/context/conversation/client/LongRunningConversationPropagatedByFacesContextTest.java
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/context/conversation/client/ManualCidPropagationTest.java
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/context/dependent/DependentContextTest.java
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/context/dependent/ejb/DependentContextEjbTest.java
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/context/passivating/PassivatingContextTest.java
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/context/passivating/broken/decoratorWithNonPassivatingBeanConstructor/DecoratorWithNonPassivatingBeanConstructorTest.java
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/context/passivating/broken/decoratorWithNonPassivatingInitializerMethod/DecoratorWithNonPassivatingInitializerMethodTest.java
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/context/passivating/broken/decoratorWithNonPassivatingInjectedField/DecoratorWithNonPassivatingInjectedFieldTest.java
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/context/passivating/broken/dependentScopedProducerFieldReturnsNonSerializableObjectForInjectionIntoStatefulSessionBean/EnterpriseBeanWithIllegalDependencyTest.java
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/context/passivating/broken/dependentScopedProducerMethodReturnsNonSerializableObjectForInjectionIntoStatefulSessionBean/EnterpriseBeanWithIllegalDependencyTest.java
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/context/passivating/broken/enterpriseBeanWithNonPassivatingBeanConstructorParameterInInterceptor/EnterpriseBeanWithNonPassivatingBeanConstructorParameterInInterceptorTest.java
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/context/passivating/broken/enterpriseBeanWithNonPassivatingConstructorFieldInDecorator/EnterpriseBeanWithNonPassivatingFieldInDecoratorTest.java
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/context/passivating/broken/enterpriseBeanWithNonPassivatingDecorator/EnterpriseBeanWithNonPassivatingDecoratorTest.java
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/context/passivating/broken/enterpriseBeanWithNonPassivatingInitializerInDecorator/EnterpriseBeanWithNonPassivatingInitializerInDecoratorTest.java
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/context/passivating/broken/enterpriseBeanWithNonPassivatingInitializerParameterInInterceptor/EnterpriseBeanWithNonPassivatingInitializerParameterInInterceptorTest.java
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/context/passivating/broken/enterpriseBeanWithNonPassivatingInjectedFieldInDecorator/EnterpriseBeanWithNonPassivatingInjectedFieldInDecoratorTest.java
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/context/passivating/broken/enterpriseBeanWithNonPassivatingInjectedFieldInInterceptor/EnterpriseBeanWithNonPassivatingInjectedFieldInInterceptorTest.java
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/context/passivating/broken/enterpriseBeanWithNonSerializableIntializerMethod/EnterpriseBeanWithNonSerializableIntializerMethodTest.java
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/context/passivating/broken/finalProducerFieldNotPassivationCapable/NonPassivationCapableProducerFieldTest.java
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/context/passivating/broken/interceptorWithNonPassivatingBeanConstructorParameter/PassivationCapableBeanWithNonPassivatingInterceptorTest.java
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/context/passivating/broken/interceptorWithNonPassivatingInitializerMethodParameter/PassivationCapableBeanWithNonPassivatingInterceptorTest.java
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/context/passivating/broken/managedBeanWithNonSerializableInterceptorClass/ManagedBeanWithNonSerializableInterceptorClassTest.java
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/context/passivating/broken/nonPassivationCapableManagedBeanHasPassivatingScope/NonPassivationManagedBeanHasPassivatingScopeTest.java
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/context/passivating/broken/nonPassivationCapableProducerField/NonPassivationCapableProducerFieldTest.java
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/context/passivating/broken/nonPassivationCapableProducerMethod/NonPassivationCapableProducerMethodTest.java
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/context/passivating/broken/passivatingManagedBeanWithNonPassivatingBeanConstructor/PassivatingManagedBeanWithNonPassivatingBeanConstructorTest.java
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/context/passivating/broken/passivatingManagedBeanWithNonPassivatingInitializerMethod/PassivatingManagedBeanWithNonPassivatingInitializerMethodTest.java
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/context/passivating/broken/passivatingManagedBeanWithNonPassivatingInjcetedField/PassivatingManagedBeanWithNonPassivatingInjcetedFieldTest.java
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/context/passivating/broken/passivatingProducerMethodWithNonPassivatingParameter/PassivatingProducerMethodWithNonPassivatingParameterTest.java
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/context/passivating/broken/unserializableSimpleInjectedIntoPassivatingEnterpriseBean/UnserializableSimpleInjectedIntoPassivatingEnterpriseBeanTest.java
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/context/request/RequestContextTest.java
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/context/request/ejb/EJBRequestContextTest.java
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/context/session/SessionContextTest.java
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/definition/DecoratorDefinitionTest.java
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/definition/broken/decoratorListedTwiceInBeansXml/DecoratorListedTwiceInBeansXmlTest.java
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/definition/broken/enabledDecoratorIsNotDecorator/EnabledDecoratorNotADecoratorTest.java
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/definition/broken/finalBeanClass/FinalBeanClassTest.java
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/definition/broken/finalBeanMethod/FinalBeanMethodTest.java
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/definition/broken/multipleDelegateInjectionPoints/MultipleDelegateInjectionPointsTest.java
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/definition/broken/noDelegateInjectionPoints/NoDelegateInjectionPointsTest.java
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/definition/broken/nonDecoratorWithDecorates/NonDecoratorWithDecoratesTest.java
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/definition/broken/nonExistantClassInBeansXml/NonExistantDecoratorClassInBeansXmlTest.java
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/definition/broken/notAllDecoratedTypesImplemented/NotAllDecoratedTypesImplementedTest.java
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/definition/inject/broken/delegateProducerMethod/DelegateInjectionPointTest.java
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/definition/inject/delegateConstructor/DelegateInjectionPointTest.java
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/definition/inject/delegateField/DelegateFieldInjectionPointTest.java
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/definition/inject/delegateInitializerMethod/DelegateInjectionPointTest.java
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/invocation/DecoratorInvocationTest.java
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/invocation/EJBDecoratorInvocationTest.java
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/invocation/observer/DecoratorInvocationTest.java
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/invocation/producer/method/DecoratorInvocationTest.java
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/definition/bean/BeanDefinitionTest.java
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/definition/bean/custom/CustomBeanImplementationTest.java
   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/enterprise/EnterpriseBindingDefinitionTest.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/scope/broken/tooManyScopes/TooManyScopesTest.java
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/definition/scope/enterprise/EnterpriseScopeDefinitionTest.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/definition/stereotype/broken/nonEmptyNamed/NonEmptyNamedTest.java
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/definition/stereotype/broken/scopeConflict/IncompatibleStereotypesTest.java
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/definition/stereotype/broken/tooManyScopes/TooManyScopeTypesTest.java
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/definition/stereotype/broken/withBindingType/StereoTypeWithBindingTypesTest.java
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/definition/stereotype/defaultNamed/DefaultNamedTest.java
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/definition/stereotype/enterprise/EnterpriseStereotypeDefinitionTest.java
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/definition/stereotype/inheritance/StereotypeInheritenceTest.java
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/deployment/lifecycle/DeploymentTest.java
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/deployment/lifecycle/ExtensionsTest.java
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/deployment/lifecycle/broken/addDefinitionError/AddDefinitionErrorTest.java
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/deployment/lifecycle/broken/addDeploymentProblem/AddDeploymentProblemTest.java
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/deployment/lifecycle/broken/beanDiscoveryMethodThrowsException/BeforeBeanDiscoveryThrowsExceptionTest.java
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/deployment/lifecycle/broken/exceptionInAfterBeanDiscoveryObserver/AfterBeanDiscoveryObserverExecutionFailureTest.java
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/deployment/lifecycle/broken/exceptionInAfterBeanValidationObserver/AfterDeploymentValidationObserverExecutionFailureTest.java
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/deployment/lifecycle/broken/failsDuringBeanDiscovery/DeploymentFailureTest.java
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/deployment/lifecycle/broken/failsDuringValidation/AfterBeanDiscoveryFailureTest.java
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/deployment/lifecycle/broken/normalScope/AddingNormalScopeTest.java
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/deployment/lifecycle/broken/passivatingScope/AddingPassivatingScopeTest.java
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/deployment/lifecycle/broken/useBeforeValidationFails/UseBeforeValidationTest.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/bindingTypes/EventBindingTypesTest.java
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/event/broken/observer/beanNotManaged/ObserverMethodOnIncorrectBeanTest.java
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/event/broken/observer/dependentIsConditionalObserver/DependentIsConditionalObserverTest.java
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/event/broken/observer/isDisposer/ObserverMethodAnnotatedDisposesTest.java
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/event/broken/observer/isInitializer/ObserverMethodAnnotatedInitialzerTest.java
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/event/broken/observer/isProducer/ObserverMethodAnnotatedProducesTest.java
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/event/broken/observer/notBusinessMethod/EJBObserverMethodNotBusinessMethodTest.java
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/event/broken/observer/tooManyParameters/ObserverMethodWithTwoEventParametersTest.java
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/event/eventTypes/EventTypesTest.java
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/event/fires/FireEventTest.java
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/event/fires/nonbinding/NonBindingTypePassedToFireTest.java
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/event/implicit/ImplicitEventTest.java
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/event/observer/ObserverTest.java
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/event/observer/abortProcessing/ObserverExceptionAbortsProcessingTest.java
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/event/observer/checkedException/CheckedExceptionWrappedTest.java
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/event/observer/conditional/ConditionalObserverTest.java
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/event/observer/enterprise/EnterpriseEventInheritenceTest.java
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/event/observer/resolve/ResolveEventObserversTest.java
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/event/observer/resolve/enterprise/ResolveEnterpriseEventObserverTest.java
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/event/observer/runtimeException/ObserverExceptionRethrownTest.java
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/event/observer/transactional/TransactionalObserversTest.java
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/event/observer/wildcardAndTypeVariable/ObserverMethodWithParametertizedTypeTest.java
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/event/resolve/binding/DuplicateBindingTypesWhenResolvingTest.java
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/event/resolve/binding/ResolvingChecksBindingTypeMembersTest.java
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/event/resolve/nonbinding/NonBindingTypesWhenResolvingTest.java
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/event/resolve/typeWithParameters/CheckTypeParametersWhenResolvingObserversTest.java
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/event/resolve/typeWithParameters/ChecksEventTypeWhenResolvingTest.java
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/event/select/SelectEventTest.java
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/extensions/annotated/AlternativeMetaDataTest.java
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/extensions/bean/bytype/BeanByTypeTest.java
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/extensions/beanManager/BeanManagerTest.java
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/extensions/producer/ProducerTest.java
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/extensions/producer/broken/injectionTargetError/InjectionTargetDefinitionErrorTest.java
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/builtin/BuiltInBeansTest.java
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/disposal/method/definition/DisposalMethodDefinitionTest.java
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/disposal/method/definition/broken/initializerUnallowed/InitializerUnallowedDefinitionTest.java
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/disposal/method/definition/broken/methodOnSessionBean/DisposalMethodOnSessionBean.java
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/disposal/method/definition/broken/multiParams/MultipleDisposeParametersDefinitionTest.java
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/disposal/method/definition/broken/observesUnallowed/ObserverParameterUnallowedDefinitionTest.java
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/disposal/method/definition/broken/producesUnallowed/ProducesUnallowedDefinitionTest.java
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/disposal/method/definition/broken/unresolvedMethod/UnresolvedDisposalMethodDefinitionTest.java
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/enterprise/broken/singletonWithConversationScope/SingletonWithConversationScopeTest.java
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/enterprise/broken/singletonWithRequestScope/SingletonWithRequestScopeTest.java
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/enterprise/broken/singletonWithSessionScope/SingletonWithSessionScopeTest.java
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/enterprise/broken/statelessWithApplicationScope/StatelessWithApplicationScopeTest.java
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/enterprise/broken/statelessWithConversationScope/StatelessWithConversationScopeTest.java
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/enterprise/broken/statelessWithRequestScope/StatelessWithRequestScopeTest.java
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/enterprise/broken/statelessWithSessionScope/StatelessWithSessionScopeTest.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/definition/EnterpriseBeanViaXmlTest.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/NewEnterpriseBeanICTest.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/enterprise/remove/EnterpriseBeanRemoveMethodTest.java
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/initializer/EjbInitializerMethodTest.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/initializer/broken/methodAnnotatedProduces/InitializerMethodAnnotatedProducesTest.java
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/initializer/broken/parameterAnnotatedDisposes/ParameterAnnotatedDisposesTest.java
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/initializer/broken/parameterAnnotatedObserves/ParameterAnnotatedObservesTest.java
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/initializer/staticInitializer/StaticInitializerTest.java
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/producer/field/definition/ProducerFieldDefinitionTest.java
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/producer/field/definition/broken/parameterizedReturnTypeWithWildcard/ParameterizedReturnTypeWithWildcardTest.java
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/producer/field/definition/enterprise/EnterpriseProducerFieldDefinitionTest.java
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/producer/field/lifecycle/ProducerFieldLifecycleTest.java
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/producer/method/broken/enterprise/nonbusiness/ProducerMethodNotBusinessMethodTest.java
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/producer/method/broken/parameterAnnotatedDisposes/ParameterAnnotatedDisposesTest.java
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/producer/method/broken/parameterAnnotatedObserves/ParameterAnnotatedObservesTest.java
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/producer/method/broken/parameterizedTypeWithTypeParameter2/ParameterizedTypeWithTypeParameterTest.java
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/producer/method/broken/parameterizedTypeWithWildcard/ParameterizedTypeWithWildcardTest.java
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/producer/method/definition/ProducerMethodDefinitionTest.java
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/producer/method/definition/enterprise/EnterpriseProducerMethodDefinitionTest.java
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/producer/method/lifecycle/ProducerMethodLifecycleTest.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/definition/constructorHasDisposesParameter/ConstructorHasDisposesParameterTest.java
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/simple/definition/constructorHasObservesParameter/ConstructorHasObservesParameterTest.java
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/simple/definition/dependentWithPublicField/DependentWithPublicFieldTest.java
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/simple/definition/tooManyInitializerAnnotatedConstructors/TooManyInitializerAnnotatedConstructorsTest.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/lifecycle/unproxyable/UnproxyableManagedBeanTest.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/implementation/simple/resource/ejb/EjbInjectionTest.java
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/simple/resource/env/EnvInjectionTest.java
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/simple/resource/persistenceContext/PersistenceContextInjectionTest.java
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/simple/resource/resource/InjectionOfResourceTest.java
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/inheritance/specialization/enterprise/EnterpriseBeanSpecializationIntegrationTest.java
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/inheritance/specialization/enterprise/EnterpriseBeanSpecializationTest.java
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/inheritance/specialization/enterprise/broken/directlyExtendsNothing/DirectlyExtendsNothingTest.java
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/inheritance/specialization/enterprise/broken/directlyExtendsSimpleBean/DirectlyExtendsSimpleBeanTest.java
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/inheritance/specialization/enterprise/broken/implementInterfaceAndExtendsNothing/ImplementsInterfaceAndExtendsNothingTest.java
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/inheritance/specialization/enterprise/broken/sameName/SameNameTest.java
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/inheritance/specialization/enterprise/broken/twoBeansSpecializeTheSameBean/TwoBeansSpecializeTheSameBeanTest.java
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/inheritance/specialization/producer/method/ProducerMethodSpecializationTest.java
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/inheritance/specialization/producer/method/broken/indirectOverride/IndirectOverrideTest.java
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/inheritance/specialization/producer/method/broken/specializesStaticMethod/SpecializesStaticMethodTest.java
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/inheritance/specialization/producer/method/broken/specializingAndSpecializedBeanHaveName/SpecializingAndSpecializedBeanHaveNameTest.java
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/inheritance/specialization/producer/method/broken/twoBeansSpecializeTheSameBean/TwoBeansSpecializeTheSameBeanTest.java
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/inheritance/specialization/simple/SimpleBeanSpecializationTest.java
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/inheritance/specialization/simple/broken/extendejb/SpecializingBeanExtendsEnterpriseBeanTest.java
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/inheritance/specialization/simple/broken/names/SpecializingAndSpecializedBeanHasNameTest.java
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/inheritance/specialization/simple/broken/noextend1/SpecializingBeanImplementsInterfaceOnly.java
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/inheritance/specialization/simple/broken/noextend2/SpecializingBeanExtendsNothingTest.java
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/inheritance/specialization/simple/broken/noextend3/SpecializingClassExtendsNonSimpleBeanTest.java
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/inheritance/specialization/simple/broken/two/TwoSpecializingBeansForOneSpecializedTest.java
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/interceptors/definition/InterceptorDefinitionTest.java
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/lookup/binding/members/annotation/BindingAnnotationWithMemberTest.java
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/lookup/binding/members/array/BindingAnnotationWithMemberTest.java
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/lookup/byname/ResolutionByNameTest.java
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/lookup/byname/duplicateNameResolution/DuplicateNameResolutionTest.java
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/lookup/byname/duplicatePrefixResolution/DuplicateNamePrefixResolutionTest.java
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/lookup/circular/CircularDependencyTest.java
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/lookup/clientProxy/ClientProxyTest.java
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/lookup/clientProxy/unproxyable/array/ArrayTest.java
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/lookup/clientProxy/unproxyable/finalClass/FinalClassTest.java
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/lookup/clientProxy/unproxyable/finalMethod/FinalMethodTest.java
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/lookup/clientProxy/unproxyable/primitive/UnproxyableTest.java
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/lookup/clientProxy/unproxyable/privateConstructor/PrivateConstructorTest.java
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/lookup/dependency/resolution/broken/ambiguous/AmbiguousDependencyTest.java
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/lookup/dependency/resolution/broken/unsatisfied/UnsatisfiedDependencyTest.java
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/lookup/dynamic/DynamicLookupTest.java
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/lookup/dynamic/builtin/BuiltinInstanceTest.java
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/lookup/el/ResolutionByNameTest.java
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/lookup/el/integration/IntegrationWithUnifiedELTest.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/lookup/injection/any/AnyInjectionTest.java
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/lookup/injection/enterprise/SessionBeanInjectionTest.java
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/lookup/injection/non/contextual/InjectionIntoNonContextualComponentTest.java
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/lookup/injection/non/contextual/ws/InjectionIntoWebServiceEndPointTest.java
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/lookup/injection/nullableBean/NullableBeanTest.java
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/lookup/injectionpoint/InjectableReferenceTest.java
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/lookup/injectionpoint/InjectionPointTest.java
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/lookup/injectionpoint/broken/normal/scope/NormalScopedBeanWithInjectionPoint.java
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/lookup/injectionpoint/broken/reference/ambiguous/AmbiguousInjectableReferenceTest.java
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/lookup/injectionpoint/broken/reference/unresolved/UnsatisfiedInjectableReferenceTest.java
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/lookup/manager/ManagerTest.java
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/lookup/manager/jndi/ManagerTest.java
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/lookup/typesafe/resolution/ResolutionByTypeTest.java
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/lookup/typesafe/resolution/broken/primitive/PrimitiveInjectionPointTest.java
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/lookup/typesafe/resolution/broken/type/variable/TypeVariableInjectionPointTest.java
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/lookup/typesafe/resolution/decorator/DecoratorNotResolvedTest.java
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/lookup/typesafe/resolution/interceptor/InterceptorNotResolvedTest.java
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/lookup/typesafe/resolution/parameterized/AssignabilityOfRawAndParameterizedTypesTest.java
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/policy/PolicyAvailabilityTest.java
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/policy/broken/incorrect/name/NoClassWithSpecifiedNameTest.java
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/policy/broken/incorrect/name/stereotype/NoAnnotationWithSpecifiedNameTest.java
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/policy/broken/not/policy/ClassIsNotPolicyTest.java
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/policy/broken/not/policy/stereotype/ClassIsNotPolicyTest.java
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/policy/broken/same/type/twice/SameTypeListedTwiceTest.java
   tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/policy/enterprise/SessionBeanPolicyTest.java
Log:
updated to support multiple specs


Modified: tck/trunk/impl/pom.xml
===================================================================
--- tck/trunk/impl/pom.xml	2009-08-17 22:38:44 UTC (rev 3544)
+++ tck/trunk/impl/pom.xml	2009-08-18 05:20:25 UTC (rev 3545)
@@ -141,7 +141,7 @@
                            <classifier>suite</classifier>
                         </artifact>
                         <artifact>
-                           <file>${basedir}/src/main/resources/tck-audit.xml</file>
+                           <file>${basedir}/src/main/resources/tck-audit-jsr299.xml</file>
                            <type>xml</type>
                            <classifier>audit</classifier>
                         </artifact>
@@ -199,7 +199,7 @@
                   <configuration>
                      <source>1.5</source>
                      <target>1.5</target>
-                     <compilerArgument>-AauditXml=${basedir}/src/main/resources/tck-audit.xml</compilerArgument>
+                     <compilerArgument>-AauditXml=${basedir}/src/main/resources/tck-audit-jsr299.xml,${basedir}/src/main/resources/tck-audit-mngbean.xml</compilerArgument>
                   </configuration>
               	</plugin>
                <plugin>
@@ -240,15 +240,20 @@
                                  <classifier>suite</classifier>
                               </artifact>
                               <artifact>
-                                 <file>${basedir}/src/main/resources/tck-audit.xml</file>
+                                 <file>${basedir}/src/main/resources/tck-audit-jsr299.xml</file>
                                  <type>xml</type>
                                  <classifier>audit</classifier>
                               </artifact>
                               <artifact>
-                                 <file>../target/coverage.html</file>
+                                 <file>../target/coverage-jsr299.html</file>
                                  <type>html</type>
-                                 <classifier>coverage</classifier>
+                                 <classifier>coverage-jsr299</classifier>
                               </artifact>
+                              <artifact>
+                                 <file>../target/coverage-mngbean.html</file>
+                                 <type>html</type>
+                                 <classifier>coverage-mngbean</classifier>
+                              </artifact>                              
                            </artifacts>
                         </configuration>
                      </execution>

Modified: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/context/ContextTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/context/ContextTest.java	2009-08-17 22:38:44 UTC (rev 3544)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/context/ContextTest.java	2009-08-18 05:20:25 UTC (rev 3545)
@@ -15,7 +15,7 @@
 import org.testng.annotations.Test;
 
 @Artifact
- at SpecVersion("20090625")
+ at SpecVersion(spec="jsr299", version="20090625")
 public class ContextTest extends AbstractJSR299Test
 {
    @Test(expectedExceptions = { IllegalStateException.class }, groups = { "manager" })

Modified: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/context/DestroyedInstanceReturnedByGetTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/context/DestroyedInstanceReturnedByGetTest.java	2009-08-17 22:38:44 UTC (rev 3544)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/context/DestroyedInstanceReturnedByGetTest.java	2009-08-18 05:20:25 UTC (rev 3545)
@@ -13,7 +13,7 @@
 import org.testng.annotations.Test;
 
 @Artifact
- at SpecVersion("20090625")
+ at SpecVersion(spec="jsr299", version="20090625")
 public class DestroyedInstanceReturnedByGetTest extends AbstractJSR299Test
 {
    @Test(groups = { "contexts" })

Modified: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/context/GetFromContextualTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/context/GetFromContextualTest.java	2009-08-17 22:38:44 UTC (rev 3544)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/context/GetFromContextualTest.java	2009-08-18 05:20:25 UTC (rev 3545)
@@ -14,7 +14,7 @@
 import org.testng.annotations.Test;
 
 @Artifact
- at SpecVersion("20090625")
+ at SpecVersion(spec="jsr299", version="20090625")
 public class GetFromContextualTest extends AbstractJSR299Test
 {
    @Test(groups = { "contexts" })

Modified: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/context/GetOnInactiveContextTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/context/GetOnInactiveContextTest.java	2009-08-17 22:38:44 UTC (rev 3544)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/context/GetOnInactiveContextTest.java	2009-08-18 05:20:25 UTC (rev 3545)
@@ -12,7 +12,7 @@
 import org.testng.annotations.Test;
 
 @Artifact
- at SpecVersion("20090625")
+ at SpecVersion(spec="jsr299", version="20090625")
 public class GetOnInactiveContextTest extends AbstractJSR299Test
 {
    @Test(groups = { "contexts" }, expectedExceptions = { ContextNotActiveException.class })

Modified: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/context/GetWithNoCreationalContextTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/context/GetWithNoCreationalContextTest.java	2009-08-17 22:38:44 UTC (rev 3544)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/context/GetWithNoCreationalContextTest.java	2009-08-18 05:20:25 UTC (rev 3545)
@@ -11,7 +11,7 @@
 import org.testng.annotations.Test;
 
 @Artifact
- at SpecVersion("20090625")
+ at SpecVersion(spec="jsr299", version="20090625")
 public class GetWithNoCreationalContextTest extends AbstractJSR299Test
 {
    @Test(groups = { "contexts" })

Modified: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/context/NormalContextTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/context/NormalContextTest.java	2009-08-17 22:38:44 UTC (rev 3544)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/context/NormalContextTest.java	2009-08-18 05:20:25 UTC (rev 3545)
@@ -22,7 +22,7 @@
  * @author David Allen
  */
 @Artifact
- at SpecVersion("20090625")
+ at SpecVersion(spec="jsr299", version="20090625")
 public class NormalContextTest extends AbstractJSR299Test
 {
 

Modified: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/context/application/ApplicationContextTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/context/application/ApplicationContextTest.java	2009-08-17 22:38:44 UTC (rev 3544)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/context/application/ApplicationContextTest.java	2009-08-18 05:20:25 UTC (rev 3545)
@@ -22,7 +22,7 @@
   @Resource(destination=WarArtifactDescriptor.WEB_XML_DESTINATION, source="web.xml"),
   @Resource(destination="SimplePage.html", source="SimplePage.html")
 })
- at SpecVersion("20090625")
+ at SpecVersion(spec = "jsr299", version="20090625")
 public class ApplicationContextTest extends AbstractJSR299Test
 {
 

Modified: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/context/application/ejb/EJBApplicationContextTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/context/application/ejb/EJBApplicationContextTest.java	2009-08-17 22:38:44 UTC (rev 3544)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/context/application/ejb/EJBApplicationContextTest.java	2009-08-18 05:20:25 UTC (rev 3545)
@@ -17,7 +17,7 @@
 @Artifact
 @IntegrationTest
 @Packaging(PackagingType.EAR)
- at SpecVersion("20090625")
+ at SpecVersion(spec="jsr299", version="20090625")
 public class EJBApplicationContextTest extends AbstractJSR299Test
 {
    @Test(groups = { "rewrite", "contexts", "webservice", "integration", "jboss-as-broken" })

Modified: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/context/conversation/ConversationBeginTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/context/conversation/ConversationBeginTest.java	2009-08-17 22:38:44 UTC (rev 3544)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/context/conversation/ConversationBeginTest.java	2009-08-18 05:20:25 UTC (rev 3545)
@@ -12,7 +12,7 @@
  * @author Nicklas Karlsson
  */
 @Artifact
- at SpecVersion("20090625")
+ at SpecVersion(spec="jsr299", version="20090625")
 public class ConversationBeginTest extends AbstractJSR299Test
 {
    

Modified: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/context/conversation/ConversationContextTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/context/conversation/ConversationContextTest.java	2009-08-17 22:38:44 UTC (rev 3544)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/context/conversation/ConversationContextTest.java	2009-08-18 05:20:25 UTC (rev 3545)
@@ -16,7 +16,7 @@
  * @author Nicklas Karlsson
  */
 @Artifact
- at SpecVersion("20090625")
+ at SpecVersion(spec="jsr299", version="20090625")
 public class ConversationContextTest extends AbstractJSR299Test
 {
 

Modified: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/context/conversation/ConversationEndTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/context/conversation/ConversationEndTest.java	2009-08-17 22:38:44 UTC (rev 3544)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/context/conversation/ConversationEndTest.java	2009-08-18 05:20:25 UTC (rev 3545)
@@ -13,7 +13,7 @@
  * @author Nicklas Karlsson
  */
 @Artifact
- at SpecVersion("20090625")
+ at SpecVersion(spec="jsr299", version="20090625")
 public class ConversationEndTest extends AbstractJSR299Test
 {
    @Override

Modified: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/context/conversation/ConversationIdSetByApplicationTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/context/conversation/ConversationIdSetByApplicationTest.java	2009-08-17 22:38:44 UTC (rev 3544)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/context/conversation/ConversationIdSetByApplicationTest.java	2009-08-18 05:20:25 UTC (rev 3545)
@@ -13,7 +13,7 @@
  * @author Nicklas Karlsson
  */
 @Artifact
- at SpecVersion("20090625")
+ at SpecVersion(spec="jsr299", version="20090625")
 public class ConversationIdSetByApplicationTest extends AbstractJSR299Test
 {
    

Modified: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/context/conversation/ConversationIdSetByContainerTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/context/conversation/ConversationIdSetByContainerTest.java	2009-08-17 22:38:44 UTC (rev 3544)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/context/conversation/ConversationIdSetByContainerTest.java	2009-08-18 05:20:25 UTC (rev 3545)
@@ -14,7 +14,7 @@
  * 
  */
 @Artifact
- at SpecVersion("20090625")
+ at SpecVersion(spec="jsr299", version="20090625")
 public class ConversationIdSetByContainerTest extends AbstractJSR299Test
 {
 

Modified: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/context/conversation/ConversationTimeoutTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/context/conversation/ConversationTimeoutTest.java	2009-08-17 22:38:44 UTC (rev 3544)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/context/conversation/ConversationTimeoutTest.java	2009-08-18 05:20:25 UTC (rev 3545)
@@ -13,7 +13,7 @@
  * @author Dan Allen
  */
 @Artifact
- at SpecVersion("20090625")
+ at SpecVersion(spec="jsr299", version="20090625")
 public class ConversationTimeoutTest extends AbstractJSR299Test
 {
    @Test

Modified: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/context/conversation/client/ClientConversationContextTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/context/conversation/client/ClientConversationContextTest.java	2009-08-17 22:38:44 UTC (rev 3544)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/context/conversation/client/ClientConversationContextTest.java	2009-08-18 05:20:25 UTC (rev 3545)
@@ -33,7 +33,7 @@
   @Resource(destination="/WEB-INF/faces-config.xml", source="faces-config.xml"),
   @Resource(destination="rain.jspx", source="rain.jsf")
 })
- at SpecVersion("20090625")
+ at SpecVersion(spec="jsr299", version="20090625")
 public class ClientConversationContextTest extends AbstractConversationTest
 {
    

Modified: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/context/conversation/client/InvalidatingSessionDestroysConversationTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/context/conversation/client/InvalidatingSessionDestroysConversationTest.java	2009-08-17 22:38:44 UTC (rev 3544)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/context/conversation/client/InvalidatingSessionDestroysConversationTest.java	2009-08-18 05:20:25 UTC (rev 3545)
@@ -24,7 +24,7 @@
   @Resource(destination="clouds.jspx", source="clouds.jsf"),
   @Resource(destination="cloud.jspx", source="cloud.jsf")
 })
- at SpecVersion("20090625")
+ at SpecVersion(spec="jsr299", version="20090625")
 public class InvalidatingSessionDestroysConversationTest extends AbstractConversationTest
 {
    

Modified: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/context/conversation/client/LongRunningConversationPropagatedByFacesContextTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/context/conversation/client/LongRunningConversationPropagatedByFacesContextTest.java	2009-08-17 22:38:44 UTC (rev 3544)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/context/conversation/client/LongRunningConversationPropagatedByFacesContextTest.java	2009-08-18 05:20:25 UTC (rev 3545)
@@ -29,7 +29,7 @@
   @Resource(destination="thunder.jspx", source="thunder.jsf"),
   @Resource(destination="lightening.jspx", source="lightening.jsf")
 })
- at SpecVersion("20090625")
+ at SpecVersion(spec="jsr299", version="20090625")
 public class LongRunningConversationPropagatedByFacesContextTest extends AbstractConversationTest
 {
    

Modified: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/context/conversation/client/ManualCidPropagationTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/context/conversation/client/ManualCidPropagationTest.java	2009-08-17 22:38:44 UTC (rev 3544)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/context/conversation/client/ManualCidPropagationTest.java	2009-08-18 05:20:25 UTC (rev 3545)
@@ -29,7 +29,7 @@
   @Resource(destination="clouds.jspx", source="clouds.jsf"),
   @Resource(destination="/WEB-INF/faces-config.xml", source="faces-config.xml")
 })
- at SpecVersion("20090625")
+ at SpecVersion(spec="jsr299", version="20090625")
 public class ManualCidPropagationTest extends AbstractConversationTest
 {
    

Modified: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/context/dependent/DependentContextTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/context/dependent/DependentContextTest.java	2009-08-17 22:38:44 UTC (rev 3544)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/context/dependent/DependentContextTest.java	2009-08-18 05:20:25 UTC (rev 3545)
@@ -20,7 +20,7 @@
 
 @Artifact
 @BeansXml("beans.xml")
- at SpecVersion("20090625")
+ at SpecVersion(spec="jsr299", version="20090625")
 public class DependentContextTest extends AbstractJSR299Test
 {
    

Modified: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/context/dependent/ejb/DependentContextEjbTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/context/dependent/ejb/DependentContextEjbTest.java	2009-08-17 22:38:44 UTC (rev 3544)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/context/dependent/ejb/DependentContextEjbTest.java	2009-08-18 05:20:25 UTC (rev 3545)
@@ -32,7 +32,7 @@
 @IntegrationTest
 @Packaging(PackagingType.EAR)
 @Artifact
- at SpecVersion("20090625")
+ at SpecVersion(spec="jsr299", version="20090625")
 public class DependentContextEjbTest extends AbstractJSR299Test
 {
 

Modified: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/context/passivating/PassivatingContextTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/context/passivating/PassivatingContextTest.java	2009-08-17 22:38:44 UTC (rev 3544)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/context/passivating/PassivatingContextTest.java	2009-08-18 05:20:25 UTC (rev 3545)
@@ -27,7 +27,7 @@
 @Artifact
 @BeansXml("beans.xml")
 @Packaging(PackagingType.EAR)
- at SpecVersion("20090625")
+ at SpecVersion(spec="jsr299", version="20090625")
 public class PassivatingContextTest extends AbstractJSR299Test
 {
    

Modified: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/context/passivating/broken/decoratorWithNonPassivatingBeanConstructor/DecoratorWithNonPassivatingBeanConstructorTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/context/passivating/broken/decoratorWithNonPassivatingBeanConstructor/DecoratorWithNonPassivatingBeanConstructorTest.java	2009-08-17 22:38:44 UTC (rev 3544)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/context/passivating/broken/decoratorWithNonPassivatingBeanConstructor/DecoratorWithNonPassivatingBeanConstructorTest.java	2009-08-18 05:20:25 UTC (rev 3545)
@@ -11,7 +11,7 @@
 
 @Artifact
 @ExpectedDeploymentException(DeploymentError.class)
- at SpecVersion("20090625")
+ at SpecVersion(spec="jsr299", version="20090625")
 @BeansXml("beans.xml")
 public class DecoratorWithNonPassivatingBeanConstructorTest extends AbstractJSR299Test
 {

Modified: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/context/passivating/broken/decoratorWithNonPassivatingInitializerMethod/DecoratorWithNonPassivatingInitializerMethodTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/context/passivating/broken/decoratorWithNonPassivatingInitializerMethod/DecoratorWithNonPassivatingInitializerMethodTest.java	2009-08-17 22:38:44 UTC (rev 3544)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/context/passivating/broken/decoratorWithNonPassivatingInitializerMethod/DecoratorWithNonPassivatingInitializerMethodTest.java	2009-08-18 05:20:25 UTC (rev 3545)
@@ -11,7 +11,7 @@
 
 @Artifact
 @ExpectedDeploymentException(DeploymentError.class)
- at SpecVersion("20090625")
+ at SpecVersion(spec="jsr299", version="20090625")
 @BeansXml("beans.xml")
 public class DecoratorWithNonPassivatingInitializerMethodTest extends AbstractJSR299Test
 {

Modified: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/context/passivating/broken/decoratorWithNonPassivatingInjectedField/DecoratorWithNonPassivatingInjectedFieldTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/context/passivating/broken/decoratorWithNonPassivatingInjectedField/DecoratorWithNonPassivatingInjectedFieldTest.java	2009-08-17 22:38:44 UTC (rev 3544)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/context/passivating/broken/decoratorWithNonPassivatingInjectedField/DecoratorWithNonPassivatingInjectedFieldTest.java	2009-08-18 05:20:25 UTC (rev 3545)
@@ -11,7 +11,7 @@
 
 @Artifact
 @ExpectedDeploymentException(DeploymentError.class)
- at SpecVersion("20090625")
+ at SpecVersion(spec="jsr299", version="20090625")
 @BeansXml("beans.xml")
 public class DecoratorWithNonPassivatingInjectedFieldTest extends AbstractJSR299Test
 {

Modified: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/context/passivating/broken/dependentScopedProducerFieldReturnsNonSerializableObjectForInjectionIntoStatefulSessionBean/EnterpriseBeanWithIllegalDependencyTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/context/passivating/broken/dependentScopedProducerFieldReturnsNonSerializableObjectForInjectionIntoStatefulSessionBean/EnterpriseBeanWithIllegalDependencyTest.java	2009-08-17 22:38:44 UTC (rev 3544)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/context/passivating/broken/dependentScopedProducerFieldReturnsNonSerializableObjectForInjectionIntoStatefulSessionBean/EnterpriseBeanWithIllegalDependencyTest.java	2009-08-18 05:20:25 UTC (rev 3545)
@@ -16,7 +16,7 @@
 @IntegrationTest
 @Packaging(PackagingType.EAR)
 @ExpectedDeploymentException(IllegalProductException.class)
- at SpecVersion("20090625")
+ at SpecVersion(spec="jsr299", version="20090625")
 public class EnterpriseBeanWithIllegalDependencyTest extends AbstractJSR299Test
 {
    @Test(groups = { "contexts", "passivation", "integration"})

Modified: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/context/passivating/broken/dependentScopedProducerMethodReturnsNonSerializableObjectForInjectionIntoStatefulSessionBean/EnterpriseBeanWithIllegalDependencyTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/context/passivating/broken/dependentScopedProducerMethodReturnsNonSerializableObjectForInjectionIntoStatefulSessionBean/EnterpriseBeanWithIllegalDependencyTest.java	2009-08-17 22:38:44 UTC (rev 3544)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/context/passivating/broken/dependentScopedProducerMethodReturnsNonSerializableObjectForInjectionIntoStatefulSessionBean/EnterpriseBeanWithIllegalDependencyTest.java	2009-08-18 05:20:25 UTC (rev 3545)
@@ -16,7 +16,7 @@
 @IntegrationTest
 @Packaging(PackagingType.EAR)
 @ExpectedDeploymentException(IllegalProductException.class)
- at SpecVersion("20090625")
+ at SpecVersion(spec="jsr299", version="20090625")
 public class EnterpriseBeanWithIllegalDependencyTest extends AbstractJSR299Test
 {
    @Test(groups = { "contexts", "passivation", "integration"})

Modified: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/context/passivating/broken/enterpriseBeanWithNonPassivatingBeanConstructorParameterInInterceptor/EnterpriseBeanWithNonPassivatingBeanConstructorParameterInInterceptorTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/context/passivating/broken/enterpriseBeanWithNonPassivatingBeanConstructorParameterInInterceptor/EnterpriseBeanWithNonPassivatingBeanConstructorParameterInInterceptorTest.java	2009-08-17 22:38:44 UTC (rev 3544)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/context/passivating/broken/enterpriseBeanWithNonPassivatingBeanConstructorParameterInInterceptor/EnterpriseBeanWithNonPassivatingBeanConstructorParameterInInterceptorTest.java	2009-08-18 05:20:25 UTC (rev 3545)
@@ -13,7 +13,7 @@
 @Artifact
 @Packaging(PackagingType.EAR)
 @ExpectedDeploymentException(DeploymentError.class)
- at SpecVersion("20090625")
+ at SpecVersion(spec="jsr299", version="20090625")
 public class EnterpriseBeanWithNonPassivatingBeanConstructorParameterInInterceptorTest extends AbstractJSR299Test
 {   
    @Test(groups = { "contexts", "passivation", "ri-broken" })

Modified: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/context/passivating/broken/enterpriseBeanWithNonPassivatingConstructorFieldInDecorator/EnterpriseBeanWithNonPassivatingFieldInDecoratorTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/context/passivating/broken/enterpriseBeanWithNonPassivatingConstructorFieldInDecorator/EnterpriseBeanWithNonPassivatingFieldInDecoratorTest.java	2009-08-17 22:38:44 UTC (rev 3544)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/context/passivating/broken/enterpriseBeanWithNonPassivatingConstructorFieldInDecorator/EnterpriseBeanWithNonPassivatingFieldInDecoratorTest.java	2009-08-18 05:20:25 UTC (rev 3545)
@@ -14,7 +14,7 @@
 @Artifact
 @Packaging(PackagingType.EAR)
 @ExpectedDeploymentException(DeploymentError.class)
- at SpecVersion("20090625")
+ at SpecVersion(spec="jsr299", version="20090625")
 @BeansXml("beans.xml")
 public class EnterpriseBeanWithNonPassivatingFieldInDecoratorTest extends AbstractJSR299Test
 {   

Modified: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/context/passivating/broken/enterpriseBeanWithNonPassivatingDecorator/EnterpriseBeanWithNonPassivatingDecoratorTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/context/passivating/broken/enterpriseBeanWithNonPassivatingDecorator/EnterpriseBeanWithNonPassivatingDecoratorTest.java	2009-08-17 22:38:44 UTC (rev 3544)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/context/passivating/broken/enterpriseBeanWithNonPassivatingDecorator/EnterpriseBeanWithNonPassivatingDecoratorTest.java	2009-08-18 05:20:25 UTC (rev 3545)
@@ -14,7 +14,7 @@
 @Artifact
 @Packaging(PackagingType.EAR)
 @ExpectedDeploymentException(DeploymentError.class)
- at SpecVersion("20090625")
+ at SpecVersion(spec="jsr299", version="20090625")
 @BeansXml("beans.xml")
 public class EnterpriseBeanWithNonPassivatingDecoratorTest extends AbstractJSR299Test
 {

Modified: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/context/passivating/broken/enterpriseBeanWithNonPassivatingInitializerInDecorator/EnterpriseBeanWithNonPassivatingInitializerInDecoratorTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/context/passivating/broken/enterpriseBeanWithNonPassivatingInitializerInDecorator/EnterpriseBeanWithNonPassivatingInitializerInDecoratorTest.java	2009-08-17 22:38:44 UTC (rev 3544)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/context/passivating/broken/enterpriseBeanWithNonPassivatingInitializerInDecorator/EnterpriseBeanWithNonPassivatingInitializerInDecoratorTest.java	2009-08-18 05:20:25 UTC (rev 3545)
@@ -14,7 +14,7 @@
 @Artifact
 @Packaging(PackagingType.EAR)
 @ExpectedDeploymentException(DeploymentError.class)
- at SpecVersion("20090625")
+ at SpecVersion(spec="jsr299", version="20090625")
 @BeansXml("beans.xml")
 public class EnterpriseBeanWithNonPassivatingInitializerInDecoratorTest extends AbstractJSR299Test
 {   

Modified: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/context/passivating/broken/enterpriseBeanWithNonPassivatingInitializerParameterInInterceptor/EnterpriseBeanWithNonPassivatingInitializerParameterInInterceptorTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/context/passivating/broken/enterpriseBeanWithNonPassivatingInitializerParameterInInterceptor/EnterpriseBeanWithNonPassivatingInitializerParameterInInterceptorTest.java	2009-08-17 22:38:44 UTC (rev 3544)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/context/passivating/broken/enterpriseBeanWithNonPassivatingInitializerParameterInInterceptor/EnterpriseBeanWithNonPassivatingInitializerParameterInInterceptorTest.java	2009-08-18 05:20:25 UTC (rev 3545)
@@ -13,7 +13,7 @@
 @Artifact
 @Packaging(PackagingType.EAR)
 @ExpectedDeploymentException(DeploymentError.class)
- at SpecVersion("20090625")
+ at SpecVersion(spec="jsr299", version="20090625")
 public class EnterpriseBeanWithNonPassivatingInitializerParameterInInterceptorTest extends AbstractJSR299Test
 {   
    @Test(groups = { "contexts", "passivation", "ri-broken" })

Modified: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/context/passivating/broken/enterpriseBeanWithNonPassivatingInjectedFieldInDecorator/EnterpriseBeanWithNonPassivatingInjectedFieldInDecoratorTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/context/passivating/broken/enterpriseBeanWithNonPassivatingInjectedFieldInDecorator/EnterpriseBeanWithNonPassivatingInjectedFieldInDecoratorTest.java	2009-08-17 22:38:44 UTC (rev 3544)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/context/passivating/broken/enterpriseBeanWithNonPassivatingInjectedFieldInDecorator/EnterpriseBeanWithNonPassivatingInjectedFieldInDecoratorTest.java	2009-08-18 05:20:25 UTC (rev 3545)
@@ -14,7 +14,7 @@
 @Artifact
 @Packaging(PackagingType.EAR)
 @ExpectedDeploymentException(DeploymentError.class)
- at SpecVersion("20090625")
+ at SpecVersion(spec="jsr299", version="20090625")
 @BeansXml("beans.xml")
 public class EnterpriseBeanWithNonPassivatingInjectedFieldInDecoratorTest extends AbstractJSR299Test
 {   

Modified: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/context/passivating/broken/enterpriseBeanWithNonPassivatingInjectedFieldInInterceptor/EnterpriseBeanWithNonPassivatingInjectedFieldInInterceptorTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/context/passivating/broken/enterpriseBeanWithNonPassivatingInjectedFieldInInterceptor/EnterpriseBeanWithNonPassivatingInjectedFieldInInterceptorTest.java	2009-08-17 22:38:44 UTC (rev 3544)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/context/passivating/broken/enterpriseBeanWithNonPassivatingInjectedFieldInInterceptor/EnterpriseBeanWithNonPassivatingInjectedFieldInInterceptorTest.java	2009-08-18 05:20:25 UTC (rev 3545)
@@ -13,7 +13,7 @@
 @Artifact
 @Packaging(PackagingType.EAR)
 @ExpectedDeploymentException(DeploymentError.class)
- at SpecVersion("20090625")
+ at SpecVersion(spec="jsr299", version="20090625")
 public class EnterpriseBeanWithNonPassivatingInjectedFieldInInterceptorTest extends AbstractJSR299Test
 {   
    @Test(groups = { "contexts", "passivation", "ri-broken"})

Modified: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/context/passivating/broken/enterpriseBeanWithNonSerializableIntializerMethod/EnterpriseBeanWithNonSerializableIntializerMethodTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/context/passivating/broken/enterpriseBeanWithNonSerializableIntializerMethod/EnterpriseBeanWithNonSerializableIntializerMethodTest.java	2009-08-17 22:38:44 UTC (rev 3544)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/context/passivating/broken/enterpriseBeanWithNonSerializableIntializerMethod/EnterpriseBeanWithNonSerializableIntializerMethodTest.java	2009-08-18 05:20:25 UTC (rev 3545)
@@ -13,7 +13,7 @@
 @Artifact
 @Packaging(PackagingType.EAR)
 @ExpectedDeploymentException(DeploymentError.class)
- at SpecVersion("20090625")
+ at SpecVersion(spec="jsr299", version="20090625")
 public class EnterpriseBeanWithNonSerializableIntializerMethodTest extends AbstractJSR299Test
 {   
    @Test(groups = { "contexts", "passivation"})

Modified: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/context/passivating/broken/finalProducerFieldNotPassivationCapable/NonPassivationCapableProducerFieldTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/context/passivating/broken/finalProducerFieldNotPassivationCapable/NonPassivationCapableProducerFieldTest.java	2009-08-17 22:38:44 UTC (rev 3544)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/context/passivating/broken/finalProducerFieldNotPassivationCapable/NonPassivationCapableProducerFieldTest.java	2009-08-18 05:20:25 UTC (rev 3545)
@@ -17,7 +17,7 @@
  */
 @Artifact
 @Packaging(PackagingType.EAR)
- at SpecVersion("20090625")
+ at SpecVersion(spec="jsr299", version="20090625")
 @ExpectedDeploymentException(DeploymentError.class)
 public class NonPassivationCapableProducerFieldTest extends AbstractJSR299Test
 {

Modified: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/context/passivating/broken/interceptorWithNonPassivatingBeanConstructorParameter/PassivationCapableBeanWithNonPassivatingInterceptorTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/context/passivating/broken/interceptorWithNonPassivatingBeanConstructorParameter/PassivationCapableBeanWithNonPassivatingInterceptorTest.java	2009-08-17 22:38:44 UTC (rev 3544)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/context/passivating/broken/interceptorWithNonPassivatingBeanConstructorParameter/PassivationCapableBeanWithNonPassivatingInterceptorTest.java	2009-08-18 05:20:25 UTC (rev 3545)
@@ -10,7 +10,7 @@
 
 @Artifact
 @ExpectedDeploymentException(DeploymentError.class)
- at SpecVersion("20090625")
+ at SpecVersion(spec="jsr299", version="20090625")
 public class PassivationCapableBeanWithNonPassivatingInterceptorTest extends AbstractJSR299Test
 {
    @Test(groups = { "contexts", "passivation", "ri-broken" })

Modified: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/context/passivating/broken/interceptorWithNonPassivatingInitializerMethodParameter/PassivationCapableBeanWithNonPassivatingInterceptorTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/context/passivating/broken/interceptorWithNonPassivatingInitializerMethodParameter/PassivationCapableBeanWithNonPassivatingInterceptorTest.java	2009-08-17 22:38:44 UTC (rev 3544)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/context/passivating/broken/interceptorWithNonPassivatingInitializerMethodParameter/PassivationCapableBeanWithNonPassivatingInterceptorTest.java	2009-08-18 05:20:25 UTC (rev 3545)
@@ -10,7 +10,7 @@
 
 @Artifact
 @ExpectedDeploymentException(DeploymentError.class)
- at SpecVersion("20090625")
+ at SpecVersion(spec="jsr299", version="20090625")
 public class PassivationCapableBeanWithNonPassivatingInterceptorTest extends AbstractJSR299Test
 {
    @Test(groups = { "contexts", "passivation", "ri-broken" })

Modified: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/context/passivating/broken/managedBeanWithNonSerializableInterceptorClass/ManagedBeanWithNonSerializableInterceptorClassTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/context/passivating/broken/managedBeanWithNonSerializableInterceptorClass/ManagedBeanWithNonSerializableInterceptorClassTest.java	2009-08-17 22:38:44 UTC (rev 3544)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/context/passivating/broken/managedBeanWithNonSerializableInterceptorClass/ManagedBeanWithNonSerializableInterceptorClassTest.java	2009-08-18 05:20:25 UTC (rev 3545)
@@ -10,7 +10,7 @@
 
 @Artifact
 @ExpectedDeploymentException(DeploymentError.class)
- at SpecVersion("20090625")
+ at SpecVersion(spec="jsr299", version="20090625")
 public class ManagedBeanWithNonSerializableInterceptorClassTest extends AbstractJSR299Test
 {
    @Test(groups = { "contexts", "passivation", "ri-broken"})

Modified: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/context/passivating/broken/nonPassivationCapableManagedBeanHasPassivatingScope/NonPassivationManagedBeanHasPassivatingScopeTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/context/passivating/broken/nonPassivationCapableManagedBeanHasPassivatingScope/NonPassivationManagedBeanHasPassivatingScopeTest.java	2009-08-17 22:38:44 UTC (rev 3544)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/context/passivating/broken/nonPassivationCapableManagedBeanHasPassivatingScope/NonPassivationManagedBeanHasPassivatingScopeTest.java	2009-08-18 05:20:25 UTC (rev 3545)
@@ -17,7 +17,7 @@
  */
 @Artifact
 @ExpectedDeploymentException(DefinitionError.class)
- at SpecVersion("20090625")
+ at SpecVersion(spec="jsr299", version="20090625")
 public class NonPassivationManagedBeanHasPassivatingScopeTest extends AbstractJSR299Test
 {
    @Test(groups = { "contexts", "passivation" })

Modified: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/context/passivating/broken/nonPassivationCapableProducerField/NonPassivationCapableProducerFieldTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/context/passivating/broken/nonPassivationCapableProducerField/NonPassivationCapableProducerFieldTest.java	2009-08-17 22:38:44 UTC (rev 3544)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/context/passivating/broken/nonPassivationCapableProducerField/NonPassivationCapableProducerFieldTest.java	2009-08-18 05:20:25 UTC (rev 3545)
@@ -17,7 +17,7 @@
  */
 @Artifact
 @Packaging(PackagingType.EAR)
- at SpecVersion("20090625")
+ at SpecVersion(spec="jsr299", version="20090625")
 @ExpectedDeploymentException(DeploymentError.class)
 public class NonPassivationCapableProducerFieldTest extends AbstractJSR299Test
 {

Modified: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/context/passivating/broken/nonPassivationCapableProducerMethod/NonPassivationCapableProducerMethodTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/context/passivating/broken/nonPassivationCapableProducerMethod/NonPassivationCapableProducerMethodTest.java	2009-08-17 22:38:44 UTC (rev 3544)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/context/passivating/broken/nonPassivationCapableProducerMethod/NonPassivationCapableProducerMethodTest.java	2009-08-18 05:20:25 UTC (rev 3545)
@@ -17,7 +17,7 @@
  */
 @Artifact
 @Packaging(PackagingType.EAR)
- at SpecVersion("20090625")
+ at SpecVersion(spec="jsr299", version="20090625")
 @ExpectedDeploymentException(DeploymentError.class)
 public class NonPassivationCapableProducerMethodTest extends AbstractJSR299Test
 {

Modified: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/context/passivating/broken/passivatingManagedBeanWithNonPassivatingBeanConstructor/PassivatingManagedBeanWithNonPassivatingBeanConstructorTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/context/passivating/broken/passivatingManagedBeanWithNonPassivatingBeanConstructor/PassivatingManagedBeanWithNonPassivatingBeanConstructorTest.java	2009-08-17 22:38:44 UTC (rev 3544)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/context/passivating/broken/passivatingManagedBeanWithNonPassivatingBeanConstructor/PassivatingManagedBeanWithNonPassivatingBeanConstructorTest.java	2009-08-18 05:20:25 UTC (rev 3545)
@@ -10,7 +10,7 @@
 
 @Artifact
 @ExpectedDeploymentException(DeploymentError.class)
- at SpecVersion("20090625")
+ at SpecVersion(spec="jsr299", version="20090625")
 public class PassivatingManagedBeanWithNonPassivatingBeanConstructorTest extends AbstractJSR299Test
 {
    @Test(groups = { "contexts", "passivation" })

Modified: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/context/passivating/broken/passivatingManagedBeanWithNonPassivatingInitializerMethod/PassivatingManagedBeanWithNonPassivatingInitializerMethodTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/context/passivating/broken/passivatingManagedBeanWithNonPassivatingInitializerMethod/PassivatingManagedBeanWithNonPassivatingInitializerMethodTest.java	2009-08-17 22:38:44 UTC (rev 3544)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/context/passivating/broken/passivatingManagedBeanWithNonPassivatingInitializerMethod/PassivatingManagedBeanWithNonPassivatingInitializerMethodTest.java	2009-08-18 05:20:25 UTC (rev 3545)
@@ -10,7 +10,7 @@
 
 @Artifact
 @ExpectedDeploymentException(DeploymentError.class)
- at SpecVersion("20090625")
+ at SpecVersion(spec="jsr299", version="20090625")
 public class PassivatingManagedBeanWithNonPassivatingInitializerMethodTest extends AbstractJSR299Test
 {
    @Test(groups = { "contexts", "passivation" })

Modified: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/context/passivating/broken/passivatingManagedBeanWithNonPassivatingInjcetedField/PassivatingManagedBeanWithNonPassivatingInjcetedFieldTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/context/passivating/broken/passivatingManagedBeanWithNonPassivatingInjcetedField/PassivatingManagedBeanWithNonPassivatingInjcetedFieldTest.java	2009-08-17 22:38:44 UTC (rev 3544)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/context/passivating/broken/passivatingManagedBeanWithNonPassivatingInjcetedField/PassivatingManagedBeanWithNonPassivatingInjcetedFieldTest.java	2009-08-18 05:20:25 UTC (rev 3545)
@@ -10,7 +10,7 @@
 
 @Artifact
 @ExpectedDeploymentException(DeploymentError.class)
- at SpecVersion("20090625")
+ at SpecVersion(spec="jsr299", version="20090625")
 public class PassivatingManagedBeanWithNonPassivatingInjcetedFieldTest extends AbstractJSR299Test
 {
    @Test(groups = { "contexts", "passivation" })

Modified: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/context/passivating/broken/passivatingProducerMethodWithNonPassivatingParameter/PassivatingProducerMethodWithNonPassivatingParameterTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/context/passivating/broken/passivatingProducerMethodWithNonPassivatingParameter/PassivatingProducerMethodWithNonPassivatingParameterTest.java	2009-08-17 22:38:44 UTC (rev 3544)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/context/passivating/broken/passivatingProducerMethodWithNonPassivatingParameter/PassivatingProducerMethodWithNonPassivatingParameterTest.java	2009-08-18 05:20:25 UTC (rev 3545)
@@ -10,7 +10,7 @@
 
 @Artifact
 @ExpectedDeploymentException(DeploymentError.class)
- at SpecVersion("20090625")
+ at SpecVersion(spec="jsr299", version="20090625")
 public class PassivatingProducerMethodWithNonPassivatingParameterTest extends AbstractJSR299Test
 {
    @Test(groups = { "contexts", "passivation" })

Modified: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/context/passivating/broken/unserializableSimpleInjectedIntoPassivatingEnterpriseBean/UnserializableSimpleInjectedIntoPassivatingEnterpriseBeanTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/context/passivating/broken/unserializableSimpleInjectedIntoPassivatingEnterpriseBean/UnserializableSimpleInjectedIntoPassivatingEnterpriseBeanTest.java	2009-08-17 22:38:44 UTC (rev 3544)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/context/passivating/broken/unserializableSimpleInjectedIntoPassivatingEnterpriseBean/UnserializableSimpleInjectedIntoPassivatingEnterpriseBeanTest.java	2009-08-18 05:20:25 UTC (rev 3545)
@@ -13,7 +13,7 @@
 @Artifact
 @Packaging(PackagingType.EAR)
 @ExpectedDeploymentException(DeploymentError.class)
- at SpecVersion("20090625")
+ at SpecVersion(spec="jsr299", version="20090625")
 public class UnserializableSimpleInjectedIntoPassivatingEnterpriseBeanTest extends AbstractJSR299Test
 {
    

Modified: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/context/request/RequestContextTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/context/request/RequestContextTest.java	2009-08-17 22:38:44 UTC (rev 3544)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/context/request/RequestContextTest.java	2009-08-18 05:20:25 UTC (rev 3545)
@@ -19,7 +19,7 @@
   @Resource(destination=WarArtifactDescriptor.WEB_XML_DESTINATION, source="web.xml"),
   @Resource(destination="SimplePage.html", source="SimplePage.html")
 })
- at SpecVersion("20090625")
+ at SpecVersion(spec="jsr299", version="20090625")
 public class RequestContextTest extends AbstractJSR299Test
 {
 

Modified: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/context/request/ejb/EJBRequestContextTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/context/request/ejb/EJBRequestContextTest.java	2009-08-17 22:38:44 UTC (rev 3544)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/context/request/ejb/EJBRequestContextTest.java	2009-08-18 05:20:25 UTC (rev 3545)
@@ -17,7 +17,7 @@
 @Artifact
 @IntegrationTest
 @Packaging(PackagingType.EAR)
- at SpecVersion("20090625")
+ at SpecVersion(spec="jsr299", version="20090625")
 public class EJBRequestContextTest extends AbstractJSR299Test
 {
    /**

Modified: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/context/session/SessionContextTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/context/session/SessionContextTest.java	2009-08-17 22:38:44 UTC (rev 3544)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/context/session/SessionContextTest.java	2009-08-18 05:20:25 UTC (rev 3545)
@@ -19,7 +19,7 @@
   @Resource(destination=WarArtifactDescriptor.WEB_XML_DESTINATION, source="web.xml"),
   @Resource(destination="SimplePage.html", source="SimplePage.html")
 })
- at SpecVersion("20090625")
+ at SpecVersion(spec="jsr299", version="20090625")
 public class SessionContextTest extends AbstractJSR299Test
 {
    @Test(groups = { "contexts", "servlet", "integration" })

Modified: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/definition/DecoratorDefinitionTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/definition/DecoratorDefinitionTest.java	2009-08-17 22:38:44 UTC (rev 3544)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/definition/DecoratorDefinitionTest.java	2009-08-18 05:20:25 UTC (rev 3545)
@@ -40,7 +40,7 @@
  */
 @Artifact
 @BeansXml("beans.xml")
- at SpecVersion("20090625")
+ at SpecVersion(spec="jsr299", version="20090625")
 public class DecoratorDefinitionTest extends AbstractJSR299Test
 {
    @Test

Modified: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/definition/broken/decoratorListedTwiceInBeansXml/DecoratorListedTwiceInBeansXmlTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/definition/broken/decoratorListedTwiceInBeansXml/DecoratorListedTwiceInBeansXmlTest.java	2009-08-17 22:38:44 UTC (rev 3544)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/definition/broken/decoratorListedTwiceInBeansXml/DecoratorListedTwiceInBeansXmlTest.java	2009-08-18 05:20:25 UTC (rev 3545)
@@ -16,7 +16,7 @@
 @Artifact
 @ExpectedDeploymentException(DeploymentError.class)
 @BeansXml("beans.xml")
- at SpecVersion("20090625")
+ at SpecVersion(spec="jsr299", version="20090625")
 public class DecoratorListedTwiceInBeansXmlTest extends AbstractJSR299Test
 {
    @Test

Modified: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/definition/broken/enabledDecoratorIsNotDecorator/EnabledDecoratorNotADecoratorTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/definition/broken/enabledDecoratorIsNotDecorator/EnabledDecoratorNotADecoratorTest.java	2009-08-17 22:38:44 UTC (rev 3544)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/definition/broken/enabledDecoratorIsNotDecorator/EnabledDecoratorNotADecoratorTest.java	2009-08-18 05:20:25 UTC (rev 3545)
@@ -31,7 +31,7 @@
 @Artifact
 @ExpectedDeploymentException(DeploymentError.class)
 @BeansXml("beans.xml")
- at SpecVersion("20090625")
+ at SpecVersion(spec="jsr299", version="20090625")
 public class EnabledDecoratorNotADecoratorTest extends AbstractJSR299Test
 {
 

Modified: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/definition/broken/finalBeanClass/FinalBeanClassTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/definition/broken/finalBeanClass/FinalBeanClassTest.java	2009-08-17 22:38:44 UTC (rev 3544)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/definition/broken/finalBeanClass/FinalBeanClassTest.java	2009-08-18 05:20:25 UTC (rev 3545)
@@ -32,7 +32,7 @@
 @Artifact
 @ExpectedDeploymentException(DefinitionError.class)
 @BeansXml("beans.xml")
- at SpecVersion("20090625")
+ at SpecVersion(spec="jsr299", version="20090625")
 public class FinalBeanClassTest extends AbstractJSR299Test
 {
 

Modified: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/definition/broken/finalBeanMethod/FinalBeanMethodTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/definition/broken/finalBeanMethod/FinalBeanMethodTest.java	2009-08-17 22:38:44 UTC (rev 3544)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/definition/broken/finalBeanMethod/FinalBeanMethodTest.java	2009-08-18 05:20:25 UTC (rev 3545)
@@ -32,7 +32,7 @@
 @Artifact
 @ExpectedDeploymentException(DefinitionError.class)
 @BeansXml("beans.xml")
- at SpecVersion("20090625")
+ at SpecVersion(spec="jsr299", version="20090625")
 public class FinalBeanMethodTest extends AbstractJSR299Test
 {
 

Modified: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/definition/broken/multipleDelegateInjectionPoints/MultipleDelegateInjectionPointsTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/definition/broken/multipleDelegateInjectionPoints/MultipleDelegateInjectionPointsTest.java	2009-08-17 22:38:44 UTC (rev 3544)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/definition/broken/multipleDelegateInjectionPoints/MultipleDelegateInjectionPointsTest.java	2009-08-18 05:20:25 UTC (rev 3545)
@@ -32,7 +32,7 @@
 @Artifact
 @ExpectedDeploymentException(DefinitionError.class)
 @BeansXml("beans.xml")
- at SpecVersion("20090625")
+ at SpecVersion(spec="jsr299", version="20090625")
 public class MultipleDelegateInjectionPointsTest extends AbstractJSR299Test
 {
 

Modified: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/definition/broken/noDelegateInjectionPoints/NoDelegateInjectionPointsTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/definition/broken/noDelegateInjectionPoints/NoDelegateInjectionPointsTest.java	2009-08-17 22:38:44 UTC (rev 3544)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/definition/broken/noDelegateInjectionPoints/NoDelegateInjectionPointsTest.java	2009-08-18 05:20:25 UTC (rev 3545)
@@ -32,7 +32,7 @@
 @Artifact
 @ExpectedDeploymentException(DefinitionError.class)
 @BeansXml("beans.xml")
- at SpecVersion("20090625")
+ at SpecVersion(spec="jsr299", version="20090625")
 public class NoDelegateInjectionPointsTest extends AbstractJSR299Test
 {
 

Modified: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/definition/broken/nonDecoratorWithDecorates/NonDecoratorWithDecoratesTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/definition/broken/nonDecoratorWithDecorates/NonDecoratorWithDecoratesTest.java	2009-08-17 22:38:44 UTC (rev 3544)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/definition/broken/nonDecoratorWithDecorates/NonDecoratorWithDecoratesTest.java	2009-08-18 05:20:25 UTC (rev 3545)
@@ -14,7 +14,7 @@
  */
 @Artifact
 @ExpectedDeploymentException(DefinitionError.class)
- at SpecVersion("20090625")
+ at SpecVersion(spec="jsr299", version="20090625")
 public class NonDecoratorWithDecoratesTest extends AbstractJSR299Test
 {
    @Test

Modified: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/definition/broken/nonExistantClassInBeansXml/NonExistantDecoratorClassInBeansXmlTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/definition/broken/nonExistantClassInBeansXml/NonExistantDecoratorClassInBeansXmlTest.java	2009-08-17 22:38:44 UTC (rev 3544)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/definition/broken/nonExistantClassInBeansXml/NonExistantDecoratorClassInBeansXmlTest.java	2009-08-18 05:20:25 UTC (rev 3545)
@@ -12,7 +12,7 @@
 @Artifact
 @ExpectedDeploymentException(DeploymentError.class)
 @BeansXml("beans.xml")
- at SpecVersion("20090625")
+ at SpecVersion(spec="jsr299", version="20090625")
 public class NonExistantDecoratorClassInBeansXmlTest extends AbstractJSR299Test
 {
    @Test

Modified: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/definition/broken/notAllDecoratedTypesImplemented/NotAllDecoratedTypesImplementedTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/definition/broken/notAllDecoratedTypesImplemented/NotAllDecoratedTypesImplementedTest.java	2009-08-17 22:38:44 UTC (rev 3544)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/definition/broken/notAllDecoratedTypesImplemented/NotAllDecoratedTypesImplementedTest.java	2009-08-18 05:20:25 UTC (rev 3545)
@@ -32,7 +32,7 @@
 @Artifact
 @ExpectedDeploymentException(DefinitionError.class)
 @BeansXml("beans.xml")
- at SpecVersion("20090625")
+ at SpecVersion(spec="jsr299", version="20090625")
 public class NotAllDecoratedTypesImplementedTest extends AbstractJSR299Test
 {
 

Modified: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/definition/inject/broken/delegateProducerMethod/DelegateInjectionPointTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/definition/inject/broken/delegateProducerMethod/DelegateInjectionPointTest.java	2009-08-17 22:38:44 UTC (rev 3544)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/definition/inject/broken/delegateProducerMethod/DelegateInjectionPointTest.java	2009-08-18 05:20:25 UTC (rev 3545)
@@ -32,7 +32,7 @@
  */
 @Artifact
 @BeansXml("beans.xml")
- at SpecVersion("20090625")
+ at SpecVersion(spec="jsr299", version="20090625")
 @ExpectedDeploymentException(DefinitionError.class)
 public class DelegateInjectionPointTest extends AbstractJSR299Test
 {

Modified: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/definition/inject/delegateConstructor/DelegateInjectionPointTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/definition/inject/delegateConstructor/DelegateInjectionPointTest.java	2009-08-17 22:38:44 UTC (rev 3544)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/definition/inject/delegateConstructor/DelegateInjectionPointTest.java	2009-08-18 05:20:25 UTC (rev 3545)
@@ -30,7 +30,7 @@
  */
 @Artifact
 @BeansXml("beans.xml")
- at SpecVersion("20090625")
+ at SpecVersion(spec="jsr299", version="20090625")
 public class DelegateInjectionPointTest extends AbstractJSR299Test
 {
 

Modified: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/definition/inject/delegateField/DelegateFieldInjectionPointTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/definition/inject/delegateField/DelegateFieldInjectionPointTest.java	2009-08-17 22:38:44 UTC (rev 3544)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/definition/inject/delegateField/DelegateFieldInjectionPointTest.java	2009-08-18 05:20:25 UTC (rev 3545)
@@ -30,7 +30,7 @@
  */
 @Artifact
 @BeansXml("beans.xml")
- at SpecVersion("20090625")
+ at SpecVersion(spec="jsr299", version="20090625")
 public class DelegateFieldInjectionPointTest extends AbstractJSR299Test
 {
 

Modified: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/definition/inject/delegateInitializerMethod/DelegateInjectionPointTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/definition/inject/delegateInitializerMethod/DelegateInjectionPointTest.java	2009-08-17 22:38:44 UTC (rev 3544)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/definition/inject/delegateInitializerMethod/DelegateInjectionPointTest.java	2009-08-18 05:20:25 UTC (rev 3545)
@@ -30,7 +30,7 @@
  */
 @Artifact
 @BeansXml("beans.xml")
- at SpecVersion("20090625")
+ at SpecVersion(spec="jsr299", version="20090625")
 public class DelegateInjectionPointTest extends AbstractJSR299Test
 {
 

Modified: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/invocation/DecoratorInvocationTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/invocation/DecoratorInvocationTest.java	2009-08-17 22:38:44 UTC (rev 3544)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/invocation/DecoratorInvocationTest.java	2009-08-18 05:20:25 UTC (rev 3545)
@@ -30,7 +30,7 @@
  */
 @Artifact
 @BeansXml("beans.xml")
- at SpecVersion("20090625")
+ at SpecVersion(spec="jsr299", version="20090625")
 public class DecoratorInvocationTest extends AbstractJSR299Test
 {
 

Modified: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/invocation/EJBDecoratorInvocationTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/invocation/EJBDecoratorInvocationTest.java	2009-08-17 22:38:44 UTC (rev 3544)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/invocation/EJBDecoratorInvocationTest.java	2009-08-18 05:20:25 UTC (rev 3545)
@@ -31,7 +31,7 @@
  */
 @Artifact
 @BeansXml("beans.xml")
- at SpecVersion("20090625")
+ at SpecVersion(spec="jsr299", version="20090625")
 @IntegrationTest
 public class EJBDecoratorInvocationTest extends AbstractJSR299Test
 {

Modified: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/invocation/observer/DecoratorInvocationTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/invocation/observer/DecoratorInvocationTest.java	2009-08-17 22:38:44 UTC (rev 3544)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/invocation/observer/DecoratorInvocationTest.java	2009-08-18 05:20:25 UTC (rev 3545)
@@ -30,7 +30,7 @@
  */
 @Artifact
 @BeansXml("beans.xml")
- at SpecVersion("20090625")
+ at SpecVersion(spec="jsr299", version="20090625")
 public class DecoratorInvocationTest extends AbstractJSR299Test
 {
 

Modified: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/invocation/producer/method/DecoratorInvocationTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/invocation/producer/method/DecoratorInvocationTest.java	2009-08-17 22:38:44 UTC (rev 3544)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/decorators/invocation/producer/method/DecoratorInvocationTest.java	2009-08-18 05:20:25 UTC (rev 3545)
@@ -33,7 +33,7 @@
  */
 @Artifact
 @BeansXml("beans.xml")
- at SpecVersion("20090625")
+ at SpecVersion(spec="jsr299", version="20090625")
 public class DecoratorInvocationTest extends AbstractJSR299Test
 {
 

Modified: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/definition/bean/BeanDefinitionTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/definition/bean/BeanDefinitionTest.java	2009-08-17 22:38:44 UTC (rev 3544)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/definition/bean/BeanDefinitionTest.java	2009-08-18 05:20:25 UTC (rev 3545)
@@ -19,7 +19,7 @@
  * @author Pete Muir
  */
 @Artifact
- at SpecVersion("20090625")
+ at SpecVersion(spec="jsr299", version="20090625")
 public class BeanDefinitionTest extends AbstractJSR299Test
 {
    

Modified: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/definition/bean/custom/CustomBeanImplementationTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/definition/bean/custom/CustomBeanImplementationTest.java	2009-08-17 22:38:44 UTC (rev 3544)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/definition/bean/custom/CustomBeanImplementationTest.java	2009-08-18 05:20:25 UTC (rev 3545)
@@ -24,7 +24,7 @@
 import org.testng.annotations.Test;
 
 @Artifact
- at SpecVersion("20090625")
+ at SpecVersion(spec="jsr299", version="20090625")
 // TODO declare injection point on Cat and verify remaining assertions
 public class CustomBeanImplementationTest extends AbstractJSR299Test
 {

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-08-17 22:38:44 UTC (rev 3544)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/definition/binding/BindingDefinitionTest.java	2009-08-18 05:20:25 UTC (rev 3545)
@@ -18,7 +18,7 @@
 import org.testng.annotations.Test;
 
 @Artifact
- at SpecVersion("20090625")
+ at SpecVersion(spec="jsr299", version="20090625")
 public class BindingDefinitionTest extends AbstractJSR299Test
 {
    @Test

Modified: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/definition/binding/enterprise/EnterpriseBindingDefinitionTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/definition/binding/enterprise/EnterpriseBindingDefinitionTest.java	2009-08-17 22:38:44 UTC (rev 3544)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/definition/binding/enterprise/EnterpriseBindingDefinitionTest.java	2009-08-18 05:20:25 UTC (rev 3545)
@@ -24,7 +24,7 @@
 @Artifact
 @IntegrationTest
 @Packaging(PackagingType.EAR)
- at SpecVersion("20090625")
+ at SpecVersion(spec="jsr299", version="20090625")
 public class EnterpriseBindingDefinitionTest extends AbstractJSR299Test
 {
    @Test

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-08-17 22:38:44 UTC (rev 3544)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/definition/name/NameDefinitionTest.java	2009-08-18 05:20:25 UTC (rev 3545)
@@ -10,7 +10,7 @@
 import org.testng.annotations.Test;
 
 @Artifact
- at SpecVersion("20090625")
+ at SpecVersion(spec="jsr299", version="20090625")
 public class NameDefinitionTest extends AbstractJSR299Test
 {
    

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-08-17 22:38:44 UTC (rev 3544)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/definition/scope/ScopeDefinitionTest.java	2009-08-18 05:20:25 UTC (rev 3545)
@@ -19,7 +19,7 @@
 import org.testng.annotations.Test;
 
 @Artifact
- at SpecVersion("20090625")
+ at SpecVersion(spec="jsr299", version="20090625")
 public class ScopeDefinitionTest extends AbstractJSR299Test
 {
    

Modified: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/definition/scope/broken/tooManyScopes/TooManyScopesTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/definition/scope/broken/tooManyScopes/TooManyScopesTest.java	2009-08-17 22:38:44 UTC (rev 3544)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/definition/scope/broken/tooManyScopes/TooManyScopesTest.java	2009-08-18 05:20:25 UTC (rev 3545)
@@ -11,7 +11,7 @@
 
 @Artifact
 @ExpectedDeploymentException(DefinitionError.class)
- at SpecVersion("20090625")
+ at SpecVersion(spec="jsr299", version="20090625")
 public class TooManyScopesTest extends AbstractJSR299Test
 {
 

Modified: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/definition/scope/enterprise/EnterpriseScopeDefinitionTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/definition/scope/enterprise/EnterpriseScopeDefinitionTest.java	2009-08-17 22:38:44 UTC (rev 3544)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/definition/scope/enterprise/EnterpriseScopeDefinitionTest.java	2009-08-18 05:20:25 UTC (rev 3545)
@@ -12,7 +12,7 @@
 
 @Artifact
 @Packaging(PackagingType.EAR)
- at SpecVersion("20090625")
+ at SpecVersion(spec="jsr299", version="20090625")
 public class EnterpriseScopeDefinitionTest extends AbstractJSR299Test
 {
    @Test 

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-08-17 22:38:44 UTC (rev 3544)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/definition/stereotype/StereotypeDefinitionTest.java	2009-08-18 05:20:25 UTC (rev 3545)
@@ -19,7 +19,7 @@
 
 @Artifact
 @BeansXml("beans.xml")
- at SpecVersion("20090625")
+ at SpecVersion(spec="jsr299", version="20090625")
 public class StereotypeDefinitionTest extends AbstractJSR299Test
 {
    private static final Annotation TAME_LITERAL = new AnnotationLiteral<Tame>() {};

Modified: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/definition/stereotype/broken/nonEmptyNamed/NonEmptyNamedTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/definition/stereotype/broken/nonEmptyNamed/NonEmptyNamedTest.java	2009-08-17 22:38:44 UTC (rev 3544)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/definition/stereotype/broken/nonEmptyNamed/NonEmptyNamedTest.java	2009-08-18 05:20:25 UTC (rev 3545)
@@ -12,7 +12,7 @@
 
 @Artifact
 @ExpectedDeploymentException(DefinitionError.class)
- at SpecVersion("20090625")
+ at SpecVersion(spec="jsr299", version="20090625")
 public class NonEmptyNamedTest extends AbstractJSR299Test
 {
    @Test

Modified: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/definition/stereotype/broken/scopeConflict/IncompatibleStereotypesTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/definition/stereotype/broken/scopeConflict/IncompatibleStereotypesTest.java	2009-08-17 22:38:44 UTC (rev 3544)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/definition/stereotype/broken/scopeConflict/IncompatibleStereotypesTest.java	2009-08-18 05:20:25 UTC (rev 3545)
@@ -11,7 +11,7 @@
 
 @Artifact
 @ExpectedDeploymentException(DefinitionError.class)
- at SpecVersion("20090625")
+ at SpecVersion(spec="jsr299", version="20090625")
 public class IncompatibleStereotypesTest extends AbstractJSR299Test
 {
    @Test

Modified: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/definition/stereotype/broken/tooManyScopes/TooManyScopeTypesTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/definition/stereotype/broken/tooManyScopes/TooManyScopeTypesTest.java	2009-08-17 22:38:44 UTC (rev 3544)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/definition/stereotype/broken/tooManyScopes/TooManyScopeTypesTest.java	2009-08-18 05:20:25 UTC (rev 3545)
@@ -11,7 +11,7 @@
 
 @Artifact
 @ExpectedDeploymentException(DefinitionError.class)
- at SpecVersion("20090625")
+ at SpecVersion(spec="jsr299", version="20090625")
 public class TooManyScopeTypesTest extends AbstractJSR299Test
 {
    

Modified: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/definition/stereotype/broken/withBindingType/StereoTypeWithBindingTypesTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/definition/stereotype/broken/withBindingType/StereoTypeWithBindingTypesTest.java	2009-08-17 22:38:44 UTC (rev 3544)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/definition/stereotype/broken/withBindingType/StereoTypeWithBindingTypesTest.java	2009-08-18 05:20:25 UTC (rev 3545)
@@ -11,7 +11,7 @@
 
 @Artifact
 @ExpectedDeploymentException(DefinitionError.class)
- at SpecVersion("20090625")
+ at SpecVersion(spec="jsr299", version="20090625")
 public class StereoTypeWithBindingTypesTest extends AbstractJSR299Test
 {
    

Modified: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/definition/stereotype/defaultNamed/DefaultNamedTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/definition/stereotype/defaultNamed/DefaultNamedTest.java	2009-08-17 22:38:44 UTC (rev 3544)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/definition/stereotype/defaultNamed/DefaultNamedTest.java	2009-08-18 05:20:25 UTC (rev 3545)
@@ -8,7 +8,7 @@
 import org.testng.annotations.Test;
 
 @Artifact
- at SpecVersion("20090625")
+ at SpecVersion(spec="jsr299", version="20090625")
 public class DefaultNamedTest extends AbstractJSR299Test
 {
 

Modified: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/definition/stereotype/enterprise/EnterpriseStereotypeDefinitionTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/definition/stereotype/enterprise/EnterpriseStereotypeDefinitionTest.java	2009-08-17 22:38:44 UTC (rev 3544)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/definition/stereotype/enterprise/EnterpriseStereotypeDefinitionTest.java	2009-08-18 05:20:25 UTC (rev 3545)
@@ -15,7 +15,7 @@
 @IntegrationTest
 @Artifact
 @Packaging(PackagingType.EAR)
- at SpecVersion("20090625")
+ at SpecVersion(spec="jsr299", version="20090625")
 public class EnterpriseStereotypeDefinitionTest extends AbstractJSR299Test
 {
    @Test

Modified: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/definition/stereotype/inheritance/StereotypeInheritenceTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/definition/stereotype/inheritance/StereotypeInheritenceTest.java	2009-08-17 22:38:44 UTC (rev 3544)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/definition/stereotype/inheritance/StereotypeInheritenceTest.java	2009-08-18 05:20:25 UTC (rev 3545)
@@ -35,7 +35,7 @@
  */
 @Artifact
 @BeansXml("beans.xml")
- at SpecVersion("20090625")
+ at SpecVersion(spec="jsr299", version="20090625")
 public class StereotypeInheritenceTest extends AbstractJSR299Test
 {
    

Modified: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/deployment/lifecycle/DeploymentTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/deployment/lifecycle/DeploymentTest.java	2009-08-17 22:38:44 UTC (rev 3544)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/deployment/lifecycle/DeploymentTest.java	2009-08-18 05:20:25 UTC (rev 3545)
@@ -33,7 +33,7 @@
 @Artifact
 // TODO Add extension stuff
 @Test
- at SpecVersion("20090625")
+ at SpecVersion(spec="jsr299", version="20090625")
 @BeansXml("beans.xml")
 public class DeploymentTest extends AbstractJSR299Test
 {

Modified: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/deployment/lifecycle/ExtensionsTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/deployment/lifecycle/ExtensionsTest.java	2009-08-17 22:38:44 UTC (rev 3544)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/deployment/lifecycle/ExtensionsTest.java	2009-08-18 05:20:25 UTC (rev 3545)
@@ -36,7 +36,7 @@
    @Resource(source="javax.enterprise.inject.spi.Extension", destination="WEB-INF/classes/META-INF/services/javax.enterprise.inject.spi.Extension")
 })
 @IntegrationTest
- at SpecVersion("20090625")
+ at SpecVersion(spec="jsr299", version="20090625")
 public class ExtensionsTest extends AbstractJSR299Test
 {
    

Modified: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/deployment/lifecycle/broken/addDefinitionError/AddDefinitionErrorTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/deployment/lifecycle/broken/addDefinitionError/AddDefinitionErrorTest.java	2009-08-17 22:38:44 UTC (rev 3544)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/deployment/lifecycle/broken/addDefinitionError/AddDefinitionErrorTest.java	2009-08-18 05:20:25 UTC (rev 3545)
@@ -25,7 +25,7 @@
 // Must be an integration test as it needs a resource copied to a folder
 @IntegrationTest
 @ExpectedDeploymentException(DefinitionError.class)
- at SpecVersion("20090625")
+ at SpecVersion(spec="jsr299", version="20090625")
 public class AddDefinitionErrorTest extends AbstractJSR299Test
 {
    @Test(groups="jboss-as-broken")

Modified: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/deployment/lifecycle/broken/addDeploymentProblem/AddDeploymentProblemTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/deployment/lifecycle/broken/addDeploymentProblem/AddDeploymentProblemTest.java	2009-08-17 22:38:44 UTC (rev 3544)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/deployment/lifecycle/broken/addDeploymentProblem/AddDeploymentProblemTest.java	2009-08-18 05:20:25 UTC (rev 3545)
@@ -35,7 +35,7 @@
  */
 @Artifact
 @ExpectedDeploymentException(DeploymentError.class)
- at SpecVersion("20090625")
+ at SpecVersion(spec="jsr299", version="20090625")
 public class AddDeploymentProblemTest extends AbstractJSR299Test
 {
    @Test(groups={"rewrite", "jboss-as-broken"})

Modified: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/deployment/lifecycle/broken/beanDiscoveryMethodThrowsException/BeforeBeanDiscoveryThrowsExceptionTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/deployment/lifecycle/broken/beanDiscoveryMethodThrowsException/BeforeBeanDiscoveryThrowsExceptionTest.java	2009-08-17 22:38:44 UTC (rev 3544)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/deployment/lifecycle/broken/beanDiscoveryMethodThrowsException/BeforeBeanDiscoveryThrowsExceptionTest.java	2009-08-18 05:20:25 UTC (rev 3545)
@@ -36,7 +36,7 @@
 })
 @IntegrationTest
 @ExpectedDeploymentException(DefinitionError.class)
- at SpecVersion("20090625")
+ at SpecVersion(spec="jsr299", version="20090625")
 public class BeforeBeanDiscoveryThrowsExceptionTest extends AbstractJSR299Test
 {
    

Modified: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/deployment/lifecycle/broken/exceptionInAfterBeanDiscoveryObserver/AfterBeanDiscoveryObserverExecutionFailureTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/deployment/lifecycle/broken/exceptionInAfterBeanDiscoveryObserver/AfterBeanDiscoveryObserverExecutionFailureTest.java	2009-08-17 22:38:44 UTC (rev 3544)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/deployment/lifecycle/broken/exceptionInAfterBeanDiscoveryObserver/AfterBeanDiscoveryObserverExecutionFailureTest.java	2009-08-18 05:20:25 UTC (rev 3545)
@@ -17,7 +17,7 @@
  */
 @Artifact
 @ExpectedDeploymentException(DefinitionError.class)
- at SpecVersion("20090625")
+ at SpecVersion(spec="jsr299", version="20090625")
 public class AfterBeanDiscoveryObserverExecutionFailureTest extends AbstractJSR299Test
 {
    @Test(groups={"jboss-as-broken", "rewrite"})

Modified: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/deployment/lifecycle/broken/exceptionInAfterBeanValidationObserver/AfterDeploymentValidationObserverExecutionFailureTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/deployment/lifecycle/broken/exceptionInAfterBeanValidationObserver/AfterDeploymentValidationObserverExecutionFailureTest.java	2009-08-17 22:38:44 UTC (rev 3544)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/deployment/lifecycle/broken/exceptionInAfterBeanValidationObserver/AfterDeploymentValidationObserverExecutionFailureTest.java	2009-08-18 05:20:25 UTC (rev 3545)
@@ -34,7 +34,7 @@
  */
 @Artifact
 @ExpectedDeploymentException(DeploymentError.class)
- at SpecVersion("20090625")
+ at SpecVersion(spec="jsr299", version="20090625")
 public class AfterDeploymentValidationObserverExecutionFailureTest extends AbstractJSR299Test
 {
    @Test(groups={"jboss-as-broken", "rewrite"})

Modified: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/deployment/lifecycle/broken/failsDuringBeanDiscovery/DeploymentFailureTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/deployment/lifecycle/broken/failsDuringBeanDiscovery/DeploymentFailureTest.java	2009-08-17 22:38:44 UTC (rev 3544)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/deployment/lifecycle/broken/failsDuringBeanDiscovery/DeploymentFailureTest.java	2009-08-18 05:20:25 UTC (rev 3545)
@@ -14,7 +14,7 @@
 @Artifact
 @Packaging(PackagingType.EAR)
 @ExpectedDeploymentException(DefinitionError.class)
- at SpecVersion("20090625")
+ at SpecVersion(spec="jsr299", version="20090625")
 public class DeploymentFailureTest extends AbstractJSR299Test
 {
    

Modified: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/deployment/lifecycle/broken/failsDuringValidation/AfterBeanDiscoveryFailureTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/deployment/lifecycle/broken/failsDuringValidation/AfterBeanDiscoveryFailureTest.java	2009-08-17 22:38:44 UTC (rev 3544)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/deployment/lifecycle/broken/failsDuringValidation/AfterBeanDiscoveryFailureTest.java	2009-08-18 05:20:25 UTC (rev 3545)
@@ -36,7 +36,7 @@
  */
 @Artifact
 @ExpectedDeploymentException(DeploymentError.class)
- at SpecVersion("20090625")
+ at SpecVersion(spec="jsr299", version="20090625")
 public class AfterBeanDiscoveryFailureTest extends AbstractJSR299Test
 {
    

Modified: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/deployment/lifecycle/broken/normalScope/AddingNormalScopeTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/deployment/lifecycle/broken/normalScope/AddingNormalScopeTest.java	2009-08-17 22:38:44 UTC (rev 3544)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/deployment/lifecycle/broken/normalScope/AddingNormalScopeTest.java	2009-08-18 05:20:25 UTC (rev 3545)
@@ -37,7 +37,7 @@
 })
 @IntegrationTest
 @ExpectedDeploymentException(DeploymentError.class)
- at SpecVersion("20090625")
+ at SpecVersion(spec="jsr299", version="20090625")
 public class AddingNormalScopeTest extends AbstractJSR299Test
 {
    

Modified: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/deployment/lifecycle/broken/passivatingScope/AddingPassivatingScopeTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/deployment/lifecycle/broken/passivatingScope/AddingPassivatingScopeTest.java	2009-08-17 22:38:44 UTC (rev 3544)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/deployment/lifecycle/broken/passivatingScope/AddingPassivatingScopeTest.java	2009-08-18 05:20:25 UTC (rev 3545)
@@ -36,7 +36,7 @@
 })
 @IntegrationTest 
 @ExpectedDeploymentException(DeploymentError.class)
- at SpecVersion("20090625")
+ at SpecVersion(spec="jsr299", version="20090625")
 public class AddingPassivatingScopeTest extends AbstractJSR299Test
 {
    

Modified: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/deployment/lifecycle/broken/useBeforeValidationFails/UseBeforeValidationTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/deployment/lifecycle/broken/useBeforeValidationFails/UseBeforeValidationTest.java	2009-08-17 22:38:44 UTC (rev 3544)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/deployment/lifecycle/broken/useBeforeValidationFails/UseBeforeValidationTest.java	2009-08-18 05:20:25 UTC (rev 3545)
@@ -32,7 +32,7 @@
  *
  */
 @Artifact
- at SpecVersion("20090625")
+ at SpecVersion(spec="jsr299", version="20090625")
 public class UseBeforeValidationTest extends AbstractJSR299Test
 {
    @Test(groups = {"ri-broken", "rewrite"})

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-08-17 22:38:44 UTC (rev 3544)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/event/EventTest.java	2009-08-18 05:20:25 UTC (rev 3545)
@@ -22,7 +22,7 @@
  */
 @Artifact
 @BeansXml("beans.xml")
- at SpecVersion("20090625")
+ at SpecVersion(spec="jsr299", version="20090625")
 public class EventTest extends AbstractJSR299Test
 {
    @Test(groups = { "events" })

Modified: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/event/bindingTypes/EventBindingTypesTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/event/bindingTypes/EventBindingTypesTest.java	2009-08-17 22:38:44 UTC (rev 3544)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/event/bindingTypes/EventBindingTypesTest.java	2009-08-18 05:20:25 UTC (rev 3545)
@@ -16,7 +16,7 @@
  * @author Dan Allen
  */
 @Artifact
- at SpecVersion("20090625")
+ at SpecVersion(spec="jsr299", version="20090625")
 public class EventBindingTypesTest extends AbstractJSR299Test
 {
    @Test(groups = { "events" })

Modified: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/event/broken/observer/beanNotManaged/ObserverMethodOnIncorrectBeanTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/event/broken/observer/beanNotManaged/ObserverMethodOnIncorrectBeanTest.java	2009-08-17 22:38:44 UTC (rev 3544)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/event/broken/observer/beanNotManaged/ObserverMethodOnIncorrectBeanTest.java	2009-08-18 05:20:25 UTC (rev 3545)
@@ -29,7 +29,7 @@
  * @author David Allen
  */
 @Artifact
- at SpecVersion("20090625")
+ at SpecVersion(spec="jsr299", version="20090625")
 public class ObserverMethodOnIncorrectBeanTest extends AbstractJSR299Test
 {
    @Test(groups = { "events" })

Modified: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/event/broken/observer/dependentIsConditionalObserver/DependentIsConditionalObserverTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/event/broken/observer/dependentIsConditionalObserver/DependentIsConditionalObserverTest.java	2009-08-17 22:38:44 UTC (rev 3544)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/event/broken/observer/dependentIsConditionalObserver/DependentIsConditionalObserverTest.java	2009-08-18 05:20:25 UTC (rev 3545)
@@ -10,7 +10,7 @@
 
 @Artifact
 @ExpectedDeploymentException(DefinitionError.class)
- at SpecVersion("20090625")
+ at SpecVersion(spec="jsr299", version="20090625")
 public class DependentIsConditionalObserverTest extends AbstractJSR299Test
 {
    // WBRI-315

Modified: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/event/broken/observer/isDisposer/ObserverMethodAnnotatedDisposesTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/event/broken/observer/isDisposer/ObserverMethodAnnotatedDisposesTest.java	2009-08-17 22:38:44 UTC (rev 3544)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/event/broken/observer/isDisposer/ObserverMethodAnnotatedDisposesTest.java	2009-08-18 05:20:25 UTC (rev 3545)
@@ -34,7 +34,7 @@
  */
 @Artifact
 @ExpectedDeploymentException(DefinitionError.class)
- at SpecVersion("20090625")
+ at SpecVersion(spec="jsr299", version="20090625")
 public class ObserverMethodAnnotatedDisposesTest extends AbstractJSR299Test
 {
    @Test(groups = { "events" })

Modified: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/event/broken/observer/isInitializer/ObserverMethodAnnotatedInitialzerTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/event/broken/observer/isInitializer/ObserverMethodAnnotatedInitialzerTest.java	2009-08-17 22:38:44 UTC (rev 3544)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/event/broken/observer/isInitializer/ObserverMethodAnnotatedInitialzerTest.java	2009-08-18 05:20:25 UTC (rev 3545)
@@ -34,7 +34,7 @@
  */
 @Artifact
 @ExpectedDeploymentException(DefinitionError.class)
- at SpecVersion("20090625")
+ at SpecVersion(spec="jsr299", version="20090625")
 public class ObserverMethodAnnotatedInitialzerTest extends AbstractJSR299Test
 {
    @Test(groups = { "events" })

Modified: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/event/broken/observer/isProducer/ObserverMethodAnnotatedProducesTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/event/broken/observer/isProducer/ObserverMethodAnnotatedProducesTest.java	2009-08-17 22:38:44 UTC (rev 3544)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/event/broken/observer/isProducer/ObserverMethodAnnotatedProducesTest.java	2009-08-18 05:20:25 UTC (rev 3545)
@@ -32,7 +32,7 @@
  */
 @Artifact
 @ExpectedDeploymentException(DefinitionError.class)
- at SpecVersion("20090625")
+ at SpecVersion(spec="jsr299", version="20090625")
 public class ObserverMethodAnnotatedProducesTest extends AbstractJSR299Test
 {
    @Test(groups = { "events" })

Modified: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/event/broken/observer/notBusinessMethod/EJBObserverMethodNotBusinessMethodTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/event/broken/observer/notBusinessMethod/EJBObserverMethodNotBusinessMethodTest.java	2009-08-17 22:38:44 UTC (rev 3544)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/event/broken/observer/notBusinessMethod/EJBObserverMethodNotBusinessMethodTest.java	2009-08-18 05:20:25 UTC (rev 3545)
@@ -36,7 +36,7 @@
 @Artifact
 @Packaging(PackagingType.EAR)
 @ExpectedDeploymentException(DefinitionError.class)
- at SpecVersion("20090625")
+ at SpecVersion(spec="jsr299", version="20090625")
 public class EJBObserverMethodNotBusinessMethodTest extends AbstractJSR299Test
 {
    @Test(groups = { "events" })

Modified: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/event/broken/observer/tooManyParameters/ObserverMethodWithTwoEventParametersTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/event/broken/observer/tooManyParameters/ObserverMethodWithTwoEventParametersTest.java	2009-08-17 22:38:44 UTC (rev 3544)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/event/broken/observer/tooManyParameters/ObserverMethodWithTwoEventParametersTest.java	2009-08-18 05:20:25 UTC (rev 3545)
@@ -11,7 +11,7 @@
 
 @Artifact
 @ExpectedDeploymentException(DefinitionError.class)
- at SpecVersion("20090625")
+ at SpecVersion(spec="jsr299", version="20090625")
 public class ObserverMethodWithTwoEventParametersTest extends AbstractJSR299Test
 {
    @Test(groups = { "events" })

Modified: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/event/eventTypes/EventTypesTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/event/eventTypes/EventTypesTest.java	2009-08-17 22:38:44 UTC (rev 3544)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/event/eventTypes/EventTypesTest.java	2009-08-18 05:20:25 UTC (rev 3545)
@@ -14,7 +14,7 @@
  * @author Dan Allen
  */
 @Artifact
- at SpecVersion("20090625")
+ at SpecVersion(spec="jsr299", version="20090625")
 public class EventTypesTest extends AbstractJSR299Test
 {
    @Test(groups = "event")

Modified: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/event/fires/FireEventTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/event/fires/FireEventTest.java	2009-08-17 22:38:44 UTC (rev 3544)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/event/fires/FireEventTest.java	2009-08-18 05:20:25 UTC (rev 3545)
@@ -29,7 +29,7 @@
  * @author Dan Allen
  */
 @Artifact
- at SpecVersion("20090625")
+ at SpecVersion(spec="jsr299", version="20090625")
 public class FireEventTest extends AbstractJSR299Test
 {
    private static final String BEAN_MANAGER_FIRE_EVENT_METHOD_NAME = "fireEvent";

Modified: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/event/fires/nonbinding/NonBindingTypePassedToFireTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/event/fires/nonbinding/NonBindingTypePassedToFireTest.java	2009-08-17 22:38:44 UTC (rev 3544)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/event/fires/nonbinding/NonBindingTypePassedToFireTest.java	2009-08-18 05:20:25 UTC (rev 3545)
@@ -7,7 +7,7 @@
 import org.testng.annotations.Test;
 
 @Artifact
- at SpecVersion("20090625")
+ at SpecVersion(spec="jsr299", version="20090625")
 public class NonBindingTypePassedToFireTest extends AbstractJSR299Test
 {
    @Test(groups = { "events" }, expectedExceptions = { IllegalArgumentException.class })

Modified: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/event/implicit/ImplicitEventTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/event/implicit/ImplicitEventTest.java	2009-08-17 22:38:44 UTC (rev 3544)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/event/implicit/ImplicitEventTest.java	2009-08-18 05:20:25 UTC (rev 3545)
@@ -22,7 +22,7 @@
  * @author Dan Allen
  */
 @Artifact
- at SpecVersion("20090625")
+ at SpecVersion(spec="jsr299", version="20090625")
 public class ImplicitEventTest extends AbstractJSR299Test
 {
    private static final TypeLiteral<Event<StudentRegisteredEvent>> STUDENT_REGISTERED_EVENT_LITERAL = new TypeLiteral<Event<StudentRegisteredEvent>>() {};

Modified: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/event/observer/ObserverTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/event/observer/ObserverTest.java	2009-08-17 22:38:44 UTC (rev 3544)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/event/observer/ObserverTest.java	2009-08-18 05:20:25 UTC (rev 3545)
@@ -15,7 +15,7 @@
 import org.testng.annotations.Test;
 
 @Artifact
- at SpecVersion("20090625")
+ at SpecVersion(spec="jsr299", version="20090625")
 public class ObserverTest extends AbstractJSR299Test
 {
    @Test(groups = { "events" })

Modified: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/event/observer/abortProcessing/ObserverExceptionAbortsProcessingTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/event/observer/abortProcessing/ObserverExceptionAbortsProcessingTest.java	2009-08-17 22:38:44 UTC (rev 3544)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/event/observer/abortProcessing/ObserverExceptionAbortsProcessingTest.java	2009-08-18 05:20:25 UTC (rev 3545)
@@ -9,7 +9,7 @@
 import org.testng.annotations.Test;
 
 @Artifact
- at SpecVersion("20090625")
+ at SpecVersion(spec="jsr299", version="20090625")
 public class ObserverExceptionAbortsProcessingTest extends AbstractJSR299Test
 {
    public static class AnEventType

Modified: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/event/observer/checkedException/CheckedExceptionWrappedTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/event/observer/checkedException/CheckedExceptionWrappedTest.java	2009-08-17 22:38:44 UTC (rev 3544)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/event/observer/checkedException/CheckedExceptionWrappedTest.java	2009-08-18 05:20:25 UTC (rev 3545)
@@ -31,7 +31,7 @@
  * @author David Allen
  */
 @Artifact
- at SpecVersion("20090625")
+ at SpecVersion(spec="jsr299", version="20090625")
 public class CheckedExceptionWrappedTest extends AbstractJSR299Test
 {
    @Test(groups = { "events" }, expectedExceptions = { ObserverException.class })

Modified: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/event/observer/conditional/ConditionalObserverTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/event/observer/conditional/ConditionalObserverTest.java	2009-08-17 22:38:44 UTC (rev 3544)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/event/observer/conditional/ConditionalObserverTest.java	2009-08-18 05:20:25 UTC (rev 3545)
@@ -13,7 +13,7 @@
 import org.testng.annotations.Test;
 
 @Artifact
- at SpecVersion("20090625")
+ at SpecVersion(spec="jsr299", version="20090625")
 public class ConditionalObserverTest extends AbstractJSR299Test
 {
    @Test(groups = { "events" })

Modified: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/event/observer/enterprise/EnterpriseEventInheritenceTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/event/observer/enterprise/EnterpriseEventInheritenceTest.java	2009-08-17 22:38:44 UTC (rev 3544)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/event/observer/enterprise/EnterpriseEventInheritenceTest.java	2009-08-18 05:20:25 UTC (rev 3545)
@@ -21,7 +21,7 @@
 @Artifact
 @Packaging(PackagingType.EAR)
 @IntegrationTest
- at SpecVersion("20090625")
+ at SpecVersion(spec="jsr299", version="20090625")
 public class EnterpriseEventInheritenceTest extends AbstractJSR299Test
 {
    @Test(groups = { "events", "inheritance" })

Modified: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/event/observer/resolve/ResolveEventObserversTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/event/observer/resolve/ResolveEventObserversTest.java	2009-08-17 22:38:44 UTC (rev 3544)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/event/observer/resolve/ResolveEventObserversTest.java	2009-08-18 05:20:25 UTC (rev 3545)
@@ -16,7 +16,7 @@
 import org.testng.annotations.Test;
 
 @Artifact
- at SpecVersion("20090625")
+ at SpecVersion(spec="jsr299", version="20090625")
 public class ResolveEventObserversTest extends AbstractJSR299Test
 {
    private static final String BEAN_MANAGER_RESOLVE_OBSERVERS_METHOD_NAME = "resolveObserverMethods";

Modified: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/event/observer/resolve/enterprise/ResolveEnterpriseEventObserverTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/event/observer/resolve/enterprise/ResolveEnterpriseEventObserverTest.java	2009-08-17 22:38:44 UTC (rev 3544)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/event/observer/resolve/enterprise/ResolveEnterpriseEventObserverTest.java	2009-08-18 05:20:25 UTC (rev 3545)
@@ -7,7 +7,7 @@
 import org.testng.annotations.Test;
 
 @Artifact
- at SpecVersion("20090625")
+ at SpecVersion(spec="jsr299", version="20090625")
 public class ResolveEnterpriseEventObserverTest extends AbstractJSR299Test
 {
    @Test(groups = { "events", "ejb" })

Modified: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/event/observer/runtimeException/ObserverExceptionRethrownTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/event/observer/runtimeException/ObserverExceptionRethrownTest.java	2009-08-17 22:38:44 UTC (rev 3544)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/event/observer/runtimeException/ObserverExceptionRethrownTest.java	2009-08-18 05:20:25 UTC (rev 3545)
@@ -30,7 +30,7 @@
  * @author David Allen
  */
 @Artifact
- at SpecVersion("20090625")
+ at SpecVersion(spec="jsr299", version="20090625")
 public class ObserverExceptionRethrownTest extends AbstractJSR299Test
 {
    @Test(groups = { "events" }, expectedExceptions = { TeaCupPomeranian.OversizedException.class })

Modified: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/event/observer/transactional/TransactionalObserversTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/event/observer/transactional/TransactionalObserversTest.java	2009-08-17 22:38:44 UTC (rev 3544)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/event/observer/transactional/TransactionalObserversTest.java	2009-08-18 05:20:25 UTC (rev 3545)
@@ -41,7 +41,7 @@
 @Artifact
 @Packaging(PackagingType.EAR)
 @IntegrationTest
- at SpecVersion("20090625")
+ at SpecVersion(spec="jsr299", version="20090625")
 public class TransactionalObserversTest extends AbstractJSR299Test
 {
 

Modified: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/event/observer/wildcardAndTypeVariable/ObserverMethodWithParametertizedTypeTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/event/observer/wildcardAndTypeVariable/ObserverMethodWithParametertizedTypeTest.java	2009-08-17 22:38:44 UTC (rev 3544)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/event/observer/wildcardAndTypeVariable/ObserverMethodWithParametertizedTypeTest.java	2009-08-18 05:20:25 UTC (rev 3545)
@@ -35,7 +35,7 @@
  * @author David Allen
  */
 @Artifact
- at SpecVersion("20090625")
+ at SpecVersion(spec="jsr299", version="20090625")
 public class ObserverMethodWithParametertizedTypeTest extends AbstractJSR299Test
 {
    @Test(groups = { "events"})

Modified: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/event/resolve/binding/DuplicateBindingTypesWhenResolvingTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/event/resolve/binding/DuplicateBindingTypesWhenResolvingTest.java	2009-08-17 22:38:44 UTC (rev 3544)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/event/resolve/binding/DuplicateBindingTypesWhenResolvingTest.java	2009-08-18 05:20:25 UTC (rev 3545)
@@ -9,7 +9,7 @@
 import org.testng.annotations.Test;
 
 @Artifact
- at SpecVersion("20090625")
+ at SpecVersion(spec="jsr299", version="20090625")
 public class DuplicateBindingTypesWhenResolvingTest extends AbstractJSR299Test
 {
    public static class AnEventType

Modified: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/event/resolve/binding/ResolvingChecksBindingTypeMembersTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/event/resolve/binding/ResolvingChecksBindingTypeMembersTest.java	2009-08-17 22:38:44 UTC (rev 3544)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/event/resolve/binding/ResolvingChecksBindingTypeMembersTest.java	2009-08-18 05:20:25 UTC (rev 3545)
@@ -10,7 +10,7 @@
 import org.testng.annotations.Test;
 
 @Artifact
- at SpecVersion("20090625")
+ at SpecVersion(spec="jsr299", version="20090625")
 public class ResolvingChecksBindingTypeMembersTest extends AbstractJSR299Test
 {
    public static class AnEventType

Modified: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/event/resolve/nonbinding/NonBindingTypesWhenResolvingTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/event/resolve/nonbinding/NonBindingTypesWhenResolvingTest.java	2009-08-17 22:38:44 UTC (rev 3544)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/event/resolve/nonbinding/NonBindingTypesWhenResolvingTest.java	2009-08-18 05:20:25 UTC (rev 3545)
@@ -12,7 +12,7 @@
 import org.testng.annotations.Test;
 
 @Artifact
- at SpecVersion("20090625")
+ at SpecVersion(spec="jsr299", version="20090625")
 public class NonBindingTypesWhenResolvingTest extends AbstractJSR299Test
 {
    public static class AnEventType

Modified: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/event/resolve/typeWithParameters/CheckTypeParametersWhenResolvingObserversTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/event/resolve/typeWithParameters/CheckTypeParametersWhenResolvingObserversTest.java	2009-08-17 22:38:44 UTC (rev 3544)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/event/resolve/typeWithParameters/CheckTypeParametersWhenResolvingObserversTest.java	2009-08-18 05:20:25 UTC (rev 3545)
@@ -12,7 +12,7 @@
 import org.testng.annotations.Test;
 
 @Artifact
- at SpecVersion("20090625")
+ at SpecVersion(spec="jsr299", version="20090625")
 public class CheckTypeParametersWhenResolvingObserversTest extends AbstractJSR299Test
 {
    public static class CharacterList extends ArrayList<Character>

Modified: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/event/resolve/typeWithParameters/ChecksEventTypeWhenResolvingTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/event/resolve/typeWithParameters/ChecksEventTypeWhenResolvingTest.java	2009-08-17 22:38:44 UTC (rev 3544)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/event/resolve/typeWithParameters/ChecksEventTypeWhenResolvingTest.java	2009-08-18 05:20:25 UTC (rev 3545)
@@ -9,7 +9,7 @@
 import org.testng.annotations.Test;
 
 @Artifact
- at SpecVersion("20090625")
+ at SpecVersion(spec="jsr299", version="20090625")
 public class ChecksEventTypeWhenResolvingTest extends AbstractJSR299Test
 {
    public static class AnEventType

Modified: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/event/select/SelectEventTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/event/select/SelectEventTest.java	2009-08-17 22:38:44 UTC (rev 3544)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/event/select/SelectEventTest.java	2009-08-18 05:20:25 UTC (rev 3545)
@@ -15,7 +15,7 @@
  * @author Dan Allen
  */
 @Artifact
- at SpecVersion("20090625")
+ at SpecVersion(spec="jsr299", version="20090625")
 public class SelectEventTest extends AbstractJSR299Test
 {
    @Test(groups = "events")

Modified: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/extensions/annotated/AlternativeMetaDataTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/extensions/annotated/AlternativeMetaDataTest.java	2009-08-17 22:38:44 UTC (rev 3544)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/extensions/annotated/AlternativeMetaDataTest.java	2009-08-18 05:20:25 UTC (rev 3545)
@@ -37,7 +37,7 @@
  *
  */
 @Artifact
- at SpecVersion("20090625")
+ at SpecVersion(spec="jsr299", version="20090625")
 public class AlternativeMetaDataTest extends AbstractJSR299Test
 {
    @Test

Modified: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/extensions/bean/bytype/BeanByTypeTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/extensions/bean/bytype/BeanByTypeTest.java	2009-08-17 22:38:44 UTC (rev 3544)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/extensions/bean/bytype/BeanByTypeTest.java	2009-08-18 05:20:25 UTC (rev 3545)
@@ -39,7 +39,7 @@
  *
  */
 @Artifact
- at SpecVersion("20090625")
+ at SpecVersion(spec="jsr299", version="20090625")
 public class BeanByTypeTest extends AbstractJSR299Test
 {
    @Test

Modified: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/extensions/beanManager/BeanManagerTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/extensions/beanManager/BeanManagerTest.java	2009-08-17 22:38:44 UTC (rev 3544)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/extensions/beanManager/BeanManagerTest.java	2009-08-18 05:20:25 UTC (rev 3545)
@@ -63,7 +63,7 @@
  *
  */
 @Artifact
- at SpecVersion("20090625")
+ at SpecVersion(spec="jsr299", version="20090625")
 public class BeanManagerTest extends AbstractJSR299Test
 {
    @Test(groups = "ri-broken")

Modified: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/extensions/producer/ProducerTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/extensions/producer/ProducerTest.java	2009-08-17 22:38:44 UTC (rev 3544)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/extensions/producer/ProducerTest.java	2009-08-18 05:20:25 UTC (rev 3545)
@@ -29,7 +29,7 @@
 })
 // Must be an integration test as it needs a resource copied to a folder
 @IntegrationTest
- at SpecVersion("20090625")
+ at SpecVersion(spec="jsr299", version="20090625")
 // TODO All tests fall under WBRI-345 for now, please create new issues for any failing tests after WBRI-345 is done
 public class ProducerTest extends AbstractJSR299Test
 {

Modified: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/extensions/producer/broken/injectionTargetError/InjectionTargetDefinitionErrorTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/extensions/producer/broken/injectionTargetError/InjectionTargetDefinitionErrorTest.java	2009-08-17 22:38:44 UTC (rev 3544)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/extensions/producer/broken/injectionTargetError/InjectionTargetDefinitionErrorTest.java	2009-08-18 05:20:25 UTC (rev 3545)
@@ -25,7 +25,7 @@
 // Must be an integration test as it needs a resource copied to a folder
 @IntegrationTest
 @ExpectedDeploymentException(DefinitionError.class)
- at SpecVersion("20090625")
+ at SpecVersion(spec="jsr299", version="20090625")
 public class InjectionTargetDefinitionErrorTest extends AbstractJSR299Test
 {
 

Modified: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/builtin/BuiltInBeansTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/builtin/BuiltInBeansTest.java	2009-08-17 22:38:44 UTC (rev 3544)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/builtin/BuiltInBeansTest.java	2009-08-18 05:20:25 UTC (rev 3545)
@@ -27,7 +27,7 @@
 @Artifact
 @Packaging(PackagingType.EAR)
 @IntegrationTest
- at SpecVersion("20090625")
+ at SpecVersion(spec="jsr299", version="20090625")
 public class BuiltInBeansTest extends AbstractJSR299Test
 {
 

Modified: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/disposal/method/definition/DisposalMethodDefinitionTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/disposal/method/definition/DisposalMethodDefinitionTest.java	2009-08-17 22:38:44 UTC (rev 3544)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/disposal/method/definition/DisposalMethodDefinitionTest.java	2009-08-18 05:20:25 UTC (rev 3545)
@@ -16,7 +16,7 @@
 
 @Artifact
 @BeansXml("beans.xml")
- at SpecVersion("20090625")
+ at SpecVersion(spec="jsr299", version="20090625")
 public class DisposalMethodDefinitionTest extends AbstractJSR299Test
 {
    private static final Annotation DEADLIEST_LITERAL = new AnnotationLiteral<Deadliest>() {};

Modified: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/disposal/method/definition/broken/initializerUnallowed/InitializerUnallowedDefinitionTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/disposal/method/definition/broken/initializerUnallowed/InitializerUnallowedDefinitionTest.java	2009-08-17 22:38:44 UTC (rev 3544)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/disposal/method/definition/broken/initializerUnallowed/InitializerUnallowedDefinitionTest.java	2009-08-18 05:20:25 UTC (rev 3545)
@@ -13,7 +13,7 @@
 @Artifact
 @ExpectedDeploymentException(DefinitionError.class)
 @BeansXml("beans.xml")
- at SpecVersion("20090625")
+ at SpecVersion(spec="jsr299", version="20090625")
 public class InitializerUnallowedDefinitionTest extends AbstractJSR299Test
 {
    @Test

Modified: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/disposal/method/definition/broken/methodOnSessionBean/DisposalMethodOnSessionBean.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/disposal/method/definition/broken/methodOnSessionBean/DisposalMethodOnSessionBean.java	2009-08-17 22:38:44 UTC (rev 3544)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/disposal/method/definition/broken/methodOnSessionBean/DisposalMethodOnSessionBean.java	2009-08-18 05:20:25 UTC (rev 3545)
@@ -16,7 +16,7 @@
 @ExpectedDeploymentException(DefinitionError.class)
 @IntegrationTest
 @Packaging(PackagingType.EAR)
- at SpecVersion("20090625")
+ at SpecVersion(spec="jsr299", version="20090625")
 public class DisposalMethodOnSessionBean extends AbstractJSR299Test
 {
    @Test

Modified: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/disposal/method/definition/broken/multiParams/MultipleDisposeParametersDefinitionTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/disposal/method/definition/broken/multiParams/MultipleDisposeParametersDefinitionTest.java	2009-08-17 22:38:44 UTC (rev 3544)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/disposal/method/definition/broken/multiParams/MultipleDisposeParametersDefinitionTest.java	2009-08-18 05:20:25 UTC (rev 3545)
@@ -14,7 +14,7 @@
 @Artifact
 @ExpectedDeploymentException(DefinitionError.class)
 @BeansXml("beans.xml")
- at SpecVersion("20090625")
+ at SpecVersion(spec="jsr299", version="20090625")
 public class MultipleDisposeParametersDefinitionTest extends AbstractJSR299Test
 {
    @Test

Modified: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/disposal/method/definition/broken/observesUnallowed/ObserverParameterUnallowedDefinitionTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/disposal/method/definition/broken/observesUnallowed/ObserverParameterUnallowedDefinitionTest.java	2009-08-17 22:38:44 UTC (rev 3544)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/disposal/method/definition/broken/observesUnallowed/ObserverParameterUnallowedDefinitionTest.java	2009-08-18 05:20:25 UTC (rev 3545)
@@ -12,7 +12,7 @@
 @Artifact
 @ExpectedDeploymentException(DefinitionError.class)
 @BeansXml("beans.xml")
- at SpecVersion("20090625")
+ at SpecVersion(spec="jsr299", version="20090625")
 public class ObserverParameterUnallowedDefinitionTest extends AbstractJSR299Test
 {
    @Test

Modified: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/disposal/method/definition/broken/producesUnallowed/ProducesUnallowedDefinitionTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/disposal/method/definition/broken/producesUnallowed/ProducesUnallowedDefinitionTest.java	2009-08-17 22:38:44 UTC (rev 3544)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/disposal/method/definition/broken/producesUnallowed/ProducesUnallowedDefinitionTest.java	2009-08-18 05:20:25 UTC (rev 3545)
@@ -11,7 +11,7 @@
 
 @Artifact
 @ExpectedDeploymentException(DefinitionError.class)
- at SpecVersion("20090625")
+ at SpecVersion(spec="jsr299", version="20090625")
 public class ProducesUnallowedDefinitionTest extends AbstractJSR299Test
 {
    @Test

Modified: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/disposal/method/definition/broken/unresolvedMethod/UnresolvedDisposalMethodDefinitionTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/disposal/method/definition/broken/unresolvedMethod/UnresolvedDisposalMethodDefinitionTest.java	2009-08-17 22:38:44 UTC (rev 3544)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/disposal/method/definition/broken/unresolvedMethod/UnresolvedDisposalMethodDefinitionTest.java	2009-08-18 05:20:25 UTC (rev 3545)
@@ -12,7 +12,7 @@
 @Artifact
 @ExpectedDeploymentException(DefinitionError.class)
 @BeansXml("beans.xml")
- at SpecVersion("20090625")
+ at SpecVersion(spec="jsr299", version="20090625")
 public class UnresolvedDisposalMethodDefinitionTest extends AbstractJSR299Test
 {
    @Test

Modified: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/enterprise/broken/singletonWithConversationScope/SingletonWithConversationScopeTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/enterprise/broken/singletonWithConversationScope/SingletonWithConversationScopeTest.java	2009-08-17 22:38:44 UTC (rev 3544)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/enterprise/broken/singletonWithConversationScope/SingletonWithConversationScopeTest.java	2009-08-18 05:20:25 UTC (rev 3545)
@@ -14,7 +14,7 @@
 @ExpectedDeploymentException(DefinitionError.class)
 @Artifact
 @Packaging(PackagingType.EAR)
- at SpecVersion("20090625")
+ at SpecVersion(spec="jsr299", version="20090625")
 public class SingletonWithConversationScopeTest extends AbstractJSR299Test
 {
    @Test(groups = { "enterpriseBeans" })

Modified: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/enterprise/broken/singletonWithRequestScope/SingletonWithRequestScopeTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/enterprise/broken/singletonWithRequestScope/SingletonWithRequestScopeTest.java	2009-08-17 22:38:44 UTC (rev 3544)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/enterprise/broken/singletonWithRequestScope/SingletonWithRequestScopeTest.java	2009-08-18 05:20:25 UTC (rev 3545)
@@ -14,7 +14,7 @@
 @Artifact
 @ExpectedDeploymentException(DefinitionError.class)
 @Packaging(PackagingType.EAR)
- at SpecVersion("20090625")
+ at SpecVersion(spec="jsr299", version="20090625")
 public class SingletonWithRequestScopeTest extends AbstractJSR299Test
 {
    @Test(groups = { "jboss-as-broken" })

Modified: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/enterprise/broken/singletonWithSessionScope/SingletonWithSessionScopeTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/enterprise/broken/singletonWithSessionScope/SingletonWithSessionScopeTest.java	2009-08-17 22:38:44 UTC (rev 3544)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/enterprise/broken/singletonWithSessionScope/SingletonWithSessionScopeTest.java	2009-08-18 05:20:25 UTC (rev 3545)
@@ -14,7 +14,7 @@
 @Artifact
 @ExpectedDeploymentException(DefinitionError.class)
 @Packaging(PackagingType.EAR)
- at SpecVersion("20090625")
+ at SpecVersion(spec="jsr299", version="20090625")
 public class SingletonWithSessionScopeTest extends AbstractJSR299Test
 {
    @Test(groups = { "jboss-as-broken" })

Modified: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/enterprise/broken/statelessWithApplicationScope/StatelessWithApplicationScopeTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/enterprise/broken/statelessWithApplicationScope/StatelessWithApplicationScopeTest.java	2009-08-17 22:38:44 UTC (rev 3544)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/enterprise/broken/statelessWithApplicationScope/StatelessWithApplicationScopeTest.java	2009-08-18 05:20:25 UTC (rev 3545)
@@ -14,7 +14,7 @@
 @Artifact
 @ExpectedDeploymentException(DefinitionError.class)
 @Packaging(PackagingType.EAR)
- at SpecVersion("20090625")
+ at SpecVersion(spec="jsr299", version="20090625")
 public class StatelessWithApplicationScopeTest extends AbstractJSR299Test
 {   
    @Test(groups = { "enterpriseBeans" })

Modified: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/enterprise/broken/statelessWithConversationScope/StatelessWithConversationScopeTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/enterprise/broken/statelessWithConversationScope/StatelessWithConversationScopeTest.java	2009-08-17 22:38:44 UTC (rev 3544)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/enterprise/broken/statelessWithConversationScope/StatelessWithConversationScopeTest.java	2009-08-18 05:20:25 UTC (rev 3545)
@@ -14,7 +14,7 @@
 @Artifact
 @ExpectedDeploymentException(DefinitionError.class)
 @Packaging(PackagingType.EAR)
- at SpecVersion("20090625")
+ at SpecVersion(spec="jsr299", version="20090625")
 public class StatelessWithConversationScopeTest extends AbstractJSR299Test
 {
    @Test(groups = { "enterpriseBeans" })

Modified: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/enterprise/broken/statelessWithRequestScope/StatelessWithRequestScopeTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/enterprise/broken/statelessWithRequestScope/StatelessWithRequestScopeTest.java	2009-08-17 22:38:44 UTC (rev 3544)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/enterprise/broken/statelessWithRequestScope/StatelessWithRequestScopeTest.java	2009-08-18 05:20:25 UTC (rev 3545)
@@ -14,7 +14,7 @@
 @Artifact
 @ExpectedDeploymentException(DefinitionError.class)
 @Packaging(PackagingType.EAR)
- at SpecVersion("20090625")
+ at SpecVersion(spec="jsr299", version="20090625")
 public class StatelessWithRequestScopeTest extends AbstractJSR299Test
 {   
    @Test(groups = { "enterpriseBeans" })

Modified: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/enterprise/broken/statelessWithSessionScope/StatelessWithSessionScopeTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/enterprise/broken/statelessWithSessionScope/StatelessWithSessionScopeTest.java	2009-08-17 22:38:44 UTC (rev 3544)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/enterprise/broken/statelessWithSessionScope/StatelessWithSessionScopeTest.java	2009-08-18 05:20:25 UTC (rev 3545)
@@ -14,7 +14,7 @@
 @Artifact
 @ExpectedDeploymentException(DefinitionError.class)
 @Packaging(PackagingType.EAR)
- at SpecVersion("20090625")
+ at SpecVersion(spec="jsr299", version="20090625")
 public class StatelessWithSessionScopeTest extends AbstractJSR299Test
 {
    @Test(groups = { "enterpriseBeans" })

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-08-17 22:38:44 UTC (rev 3544)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/enterprise/definition/EnterpriseBeanDefinitionTest.java	2009-08-18 05:20:25 UTC (rev 3545)
@@ -24,7 +24,7 @@
 @Artifact
 @Packaging(PackagingType.EAR)
 @BeansXml("beans.xml")
- at SpecVersion("20090625")
+ at SpecVersion(spec="jsr299", version="20090625")
 public class EnterpriseBeanDefinitionTest extends AbstractJSR299Test
 {
    @Test(groups = { "enterpriseBeans" })

Modified: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/enterprise/definition/EnterpriseBeanViaXmlTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/enterprise/definition/EnterpriseBeanViaXmlTest.java	2009-08-17 22:38:44 UTC (rev 3544)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/enterprise/definition/EnterpriseBeanViaXmlTest.java	2009-08-18 05:20:25 UTC (rev 3545)
@@ -39,7 +39,7 @@
 @Packaging(PackagingType.EAR)
 @IntegrationTest
 @EjbJarXml("ejb-jar.xml")
- at SpecVersion("20090625")
+ at SpecVersion(spec="jsr299", version="20090625")
 public class EnterpriseBeanViaXmlTest extends AbstractJSR299Test
 {
 

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-08-17 22:38:44 UTC (rev 3544)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/enterprise/lifecycle/EnterpriseBeanLifecycleTest.java	2009-08-18 05:20:25 UTC (rev 3545)
@@ -36,7 +36,7 @@
 @Artifact
 @Packaging(PackagingType.EAR)
 @IntegrationTest
- at SpecVersion("20090625")
+ at SpecVersion(spec="jsr299", version="20090625")
 public class EnterpriseBeanLifecycleTest extends AbstractJSR299Test
 {
 

Modified: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/enterprise/newBean/NewEnterpriseBeanICTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/enterprise/newBean/NewEnterpriseBeanICTest.java	2009-08-17 22:38:44 UTC (rev 3544)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/enterprise/newBean/NewEnterpriseBeanICTest.java	2009-08-18 05:20:25 UTC (rev 3545)
@@ -18,7 +18,7 @@
 @Artifact
 @Packaging(PackagingType.EAR)
 @IntegrationTest
- at SpecVersion("20090625")
+ at SpecVersion(spec="jsr299", version="20090625")
 public class NewEnterpriseBeanICTest extends AbstractJSR299Test
 {
    

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-08-17 22:38:44 UTC (rev 3544)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/enterprise/newBean/NewEnterpriseBeanTest.java	2009-08-18 05:20:25 UTC (rev 3545)
@@ -22,7 +22,7 @@
 
 @Artifact
 @Packaging(PackagingType.EAR)
- at SpecVersion("20090625")
+ at SpecVersion(spec="jsr299", version="20090625")
 public class NewEnterpriseBeanTest extends AbstractJSR299Test
 {
    private Bean<WrappedEnterpriseBeanLocal> newEnterpriseBean;

Modified: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/enterprise/remove/EnterpriseBeanRemoveMethodTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/enterprise/remove/EnterpriseBeanRemoveMethodTest.java	2009-08-17 22:38:44 UTC (rev 3544)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/enterprise/remove/EnterpriseBeanRemoveMethodTest.java	2009-08-18 05:20:25 UTC (rev 3545)
@@ -20,7 +20,7 @@
 @Artifact
 @Packaging(EAR)
 @IntegrationTest
- at SpecVersion("20090625")
+ at SpecVersion(spec="jsr299", version="20090625")
 public class EnterpriseBeanRemoveMethodTest extends AbstractJSR299Test
 {
    

Modified: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/initializer/EjbInitializerMethodTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/initializer/EjbInitializerMethodTest.java	2009-08-17 22:38:44 UTC (rev 3544)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/initializer/EjbInitializerMethodTest.java	2009-08-18 05:20:25 UTC (rev 3545)
@@ -13,7 +13,7 @@
 @Artifact
 @Packaging(PackagingType.EAR)
 @IntegrationTest
- at SpecVersion("20090625")
+ at SpecVersion(spec="jsr299", version="20090625")
 public class EjbInitializerMethodTest extends AbstractJSR299Test
 {
    @Test(groups = { "initializerMethod", "ejb3" })

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-08-17 22:38:44 UTC (rev 3544)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/initializer/InitializerMethodTest.java	2009-08-18 05:20:25 UTC (rev 3545)
@@ -11,7 +11,7 @@
 
 @Artifact
 @Packaging(PackagingType.EAR)
- at SpecVersion("20090625")
+ at SpecVersion(spec="jsr299", version="20090625")
 public class InitializerMethodTest extends AbstractJSR299Test
 {
 

Modified: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/initializer/broken/methodAnnotatedProduces/InitializerMethodAnnotatedProducesTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/initializer/broken/methodAnnotatedProduces/InitializerMethodAnnotatedProducesTest.java	2009-08-17 22:38:44 UTC (rev 3544)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/initializer/broken/methodAnnotatedProduces/InitializerMethodAnnotatedProducesTest.java	2009-08-18 05:20:25 UTC (rev 3545)
@@ -12,7 +12,7 @@
 
 @Artifact
 @ExpectedDeploymentException(DefinitionError.class)
- at SpecVersion("20090625")
+ at SpecVersion(spec="jsr299", version="20090625")
 public class InitializerMethodAnnotatedProducesTest extends AbstractJSR299Test
 {
    

Modified: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/initializer/broken/parameterAnnotatedDisposes/ParameterAnnotatedDisposesTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/initializer/broken/parameterAnnotatedDisposes/ParameterAnnotatedDisposesTest.java	2009-08-17 22:38:44 UTC (rev 3544)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/initializer/broken/parameterAnnotatedDisposes/ParameterAnnotatedDisposesTest.java	2009-08-18 05:20:25 UTC (rev 3545)
@@ -11,7 +11,7 @@
 
 @Artifact
 @ExpectedDeploymentException(DefinitionError.class)
- at SpecVersion("20090625")
+ at SpecVersion(spec="jsr299", version="20090625")
 public class ParameterAnnotatedDisposesTest extends AbstractJSR299Test
 {
    

Modified: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/initializer/broken/parameterAnnotatedObserves/ParameterAnnotatedObservesTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/initializer/broken/parameterAnnotatedObserves/ParameterAnnotatedObservesTest.java	2009-08-17 22:38:44 UTC (rev 3544)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/initializer/broken/parameterAnnotatedObserves/ParameterAnnotatedObservesTest.java	2009-08-18 05:20:25 UTC (rev 3545)
@@ -10,7 +10,7 @@
 
 @Artifact
 @ExpectedDeploymentException(DefinitionError.class)
- at SpecVersion("20090625")
+ at SpecVersion(spec="jsr299", version="20090625")
 public class ParameterAnnotatedObservesTest extends AbstractJSR299Test
 {
    @Test(groups = "initializerMethod")

Modified: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/initializer/staticInitializer/StaticInitializerTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/initializer/staticInitializer/StaticInitializerTest.java	2009-08-17 22:38:44 UTC (rev 3544)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/initializer/staticInitializer/StaticInitializerTest.java	2009-08-18 05:20:25 UTC (rev 3545)
@@ -11,7 +11,7 @@
 
 @Artifact
 @ExpectedDeploymentException(DefinitionError.class)
- at SpecVersion("20090625")
+ at SpecVersion(spec="jsr299", version="20090625")
 public class StaticInitializerTest extends AbstractJSR299Test
 {
 

Modified: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/producer/field/definition/ProducerFieldDefinitionTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/producer/field/definition/ProducerFieldDefinitionTest.java	2009-08-17 22:38:44 UTC (rev 3544)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/producer/field/definition/ProducerFieldDefinitionTest.java	2009-08-18 05:20:25 UTC (rev 3545)
@@ -18,7 +18,7 @@
 
 @Artifact
 @BeansXml("beans.xml")
- at SpecVersion("20090625")
+ at SpecVersion(spec="jsr299", version="20090625")
 public class ProducerFieldDefinitionTest extends AbstractJSR299Test
 {   
    private static final Annotation TAME_LITERAL = new AnnotationLiteral<Tame>() {};

Modified: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/producer/field/definition/broken/parameterizedReturnTypeWithWildcard/ParameterizedReturnTypeWithWildcardTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/producer/field/definition/broken/parameterizedReturnTypeWithWildcard/ParameterizedReturnTypeWithWildcardTest.java	2009-08-17 22:38:44 UTC (rev 3544)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/producer/field/definition/broken/parameterizedReturnTypeWithWildcard/ParameterizedReturnTypeWithWildcardTest.java	2009-08-18 05:20:25 UTC (rev 3545)
@@ -11,7 +11,7 @@
 
 @Artifact
 @ExpectedDeploymentException(DefinitionError.class)
- at SpecVersion("20090625")
+ at SpecVersion(spec="jsr299", version="20090625")
 public class ParameterizedReturnTypeWithWildcardTest extends AbstractJSR299Test
 {
    @Test(groups = "producerField")

Modified: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/producer/field/definition/enterprise/EnterpriseProducerFieldDefinitionTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/producer/field/definition/enterprise/EnterpriseProducerFieldDefinitionTest.java	2009-08-17 22:38:44 UTC (rev 3544)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/producer/field/definition/enterprise/EnterpriseProducerFieldDefinitionTest.java	2009-08-18 05:20:25 UTC (rev 3545)
@@ -17,7 +17,7 @@
 @IntegrationTest
 @Packaging(PackagingType.EAR)
 @BeansXml("beans.xml")
- at SpecVersion("20090625")
+ at SpecVersion(spec="jsr299", version="20090625")
 public class EnterpriseProducerFieldDefinitionTest extends AbstractJSR299Test
 {
    

Modified: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/producer/field/lifecycle/ProducerFieldLifecycleTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/producer/field/lifecycle/ProducerFieldLifecycleTest.java	2009-08-17 22:38:44 UTC (rev 3544)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/producer/field/lifecycle/ProducerFieldLifecycleTest.java	2009-08-18 05:20:25 UTC (rev 3545)
@@ -12,7 +12,7 @@
 
 @Artifact
 @BeansXml("beans.xml")
- at SpecVersion("20090625")
+ at SpecVersion(spec="jsr299", version="20090625")
 public class ProducerFieldLifecycleTest extends AbstractJSR299Test
 {
 

Modified: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/producer/method/broken/enterprise/nonbusiness/ProducerMethodNotBusinessMethodTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/producer/method/broken/enterprise/nonbusiness/ProducerMethodNotBusinessMethodTest.java	2009-08-17 22:38:44 UTC (rev 3544)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/producer/method/broken/enterprise/nonbusiness/ProducerMethodNotBusinessMethodTest.java	2009-08-18 05:20:25 UTC (rev 3545)
@@ -15,7 +15,7 @@
 @Artifact
 @Packaging(PackagingType.EAR)
 @ExpectedDeploymentException(DefinitionError.class)
- at SpecVersion("20090625")
+ at SpecVersion(spec="jsr299", version="20090625")
 public class ProducerMethodNotBusinessMethodTest extends AbstractJSR299Test
 {
    @Test

Modified: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/producer/method/broken/parameterAnnotatedDisposes/ParameterAnnotatedDisposesTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/producer/method/broken/parameterAnnotatedDisposes/ParameterAnnotatedDisposesTest.java	2009-08-17 22:38:44 UTC (rev 3544)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/producer/method/broken/parameterAnnotatedDisposes/ParameterAnnotatedDisposesTest.java	2009-08-18 05:20:25 UTC (rev 3545)
@@ -11,7 +11,7 @@
 
 @Artifact
 @ExpectedDeploymentException(DefinitionError.class)
- at SpecVersion("20090625")
+ at SpecVersion(spec="jsr299", version="20090625")
 public class ParameterAnnotatedDisposesTest extends AbstractJSR299Test
 {
    

Modified: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/producer/method/broken/parameterAnnotatedObserves/ParameterAnnotatedObservesTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/producer/method/broken/parameterAnnotatedObserves/ParameterAnnotatedObservesTest.java	2009-08-17 22:38:44 UTC (rev 3544)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/producer/method/broken/parameterAnnotatedObserves/ParameterAnnotatedObservesTest.java	2009-08-18 05:20:25 UTC (rev 3545)
@@ -11,7 +11,7 @@
 
 @Artifact
 @ExpectedDeploymentException(DefinitionError.class)
- at SpecVersion("20090625")
+ at SpecVersion(spec="jsr299", version="20090625")
 public class ParameterAnnotatedObservesTest extends AbstractJSR299Test
 {
    

Modified: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/producer/method/broken/parameterizedTypeWithTypeParameter2/ParameterizedTypeWithTypeParameterTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/producer/method/broken/parameterizedTypeWithTypeParameter2/ParameterizedTypeWithTypeParameterTest.java	2009-08-17 22:38:44 UTC (rev 3544)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/producer/method/broken/parameterizedTypeWithTypeParameter2/ParameterizedTypeWithTypeParameterTest.java	2009-08-18 05:20:25 UTC (rev 3545)
@@ -12,7 +12,7 @@
 
 @Artifact
 @ExpectedDeploymentException(DefinitionError.class)
- at SpecVersion("20090625")
+ at SpecVersion(spec="jsr299", version="20090625")
 public class ParameterizedTypeWithTypeParameterTest extends AbstractJSR299Test
 {   
    @Test

Modified: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/producer/method/broken/parameterizedTypeWithWildcard/ParameterizedTypeWithWildcardTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/producer/method/broken/parameterizedTypeWithWildcard/ParameterizedTypeWithWildcardTest.java	2009-08-17 22:38:44 UTC (rev 3544)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/producer/method/broken/parameterizedTypeWithWildcard/ParameterizedTypeWithWildcardTest.java	2009-08-18 05:20:25 UTC (rev 3545)
@@ -12,7 +12,7 @@
 
 @Artifact
 @ExpectedDeploymentException(DefinitionError.class)
- at SpecVersion("20090625")
+ at SpecVersion(spec="jsr299", version="20090625")
 public class ParameterizedTypeWithWildcardTest extends AbstractJSR299Test
 {
   

Modified: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/producer/method/definition/ProducerMethodDefinitionTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/producer/method/definition/ProducerMethodDefinitionTest.java	2009-08-17 22:38:44 UTC (rev 3544)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/producer/method/definition/ProducerMethodDefinitionTest.java	2009-08-18 05:20:25 UTC (rev 3545)
@@ -21,7 +21,7 @@
 
 @Artifact
 @BeansXml("beans.xml")
- at SpecVersion("20090625")
+ at SpecVersion(spec="jsr299", version="20090625")
 public class ProducerMethodDefinitionTest extends AbstractJSR299Test
 {
    

Modified: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/producer/method/definition/enterprise/EnterpriseProducerMethodDefinitionTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/producer/method/definition/enterprise/EnterpriseProducerMethodDefinitionTest.java	2009-08-17 22:38:44 UTC (rev 3544)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/producer/method/definition/enterprise/EnterpriseProducerMethodDefinitionTest.java	2009-08-18 05:20:25 UTC (rev 3545)
@@ -19,7 +19,7 @@
 @Artifact
 @BeansXml("beans.xml")
 @Packaging(PackagingType.EAR)
- at SpecVersion("20090625")
+ at SpecVersion(spec="jsr299", version="20090625")
 public class EnterpriseProducerMethodDefinitionTest extends AbstractJSR299Test
 {
    @Test

Modified: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/producer/method/lifecycle/ProducerMethodLifecycleTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/producer/method/lifecycle/ProducerMethodLifecycleTest.java	2009-08-17 22:38:44 UTC (rev 3544)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/producer/method/lifecycle/ProducerMethodLifecycleTest.java	2009-08-18 05:20:25 UTC (rev 3545)
@@ -21,7 +21,7 @@
  */
 @Artifact
 @BeansXml("beans.xml")
- at SpecVersion("20090625")
+ at SpecVersion(spec="jsr299", version="20090625")
 public class ProducerMethodLifecycleTest extends AbstractJSR299Test
 {
    private AnnotationLiteral<Pet> PET_LITERAL = new AnnotationLiteral<Pet>() {};

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-08-17 22:38:44 UTC (rev 3544)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/simple/definition/SimpleBeanDefinitionTest.java	2009-08-18 05:20:25 UTC (rev 3545)
@@ -10,7 +10,7 @@
 import org.testng.annotations.Test;
 
 @Artifact
- at SpecVersion("20090625")
+ at SpecVersion(spec="jsr299", version="20090625")
 public class SimpleBeanDefinitionTest extends AbstractJSR299Test
 {
 

Modified: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/simple/definition/constructorHasDisposesParameter/ConstructorHasDisposesParameterTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/simple/definition/constructorHasDisposesParameter/ConstructorHasDisposesParameterTest.java	2009-08-17 22:38:44 UTC (rev 3544)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/simple/definition/constructorHasDisposesParameter/ConstructorHasDisposesParameterTest.java	2009-08-18 05:20:25 UTC (rev 3545)
@@ -11,7 +11,7 @@
 
 @Artifact
 @ExpectedDeploymentException(DefinitionError.class)
- at SpecVersion("20090625")
+ at SpecVersion(spec="jsr299", version="20090625")
 public class ConstructorHasDisposesParameterTest extends AbstractJSR299Test
 {
    @Test(groups = { "disposalMethod" })

Modified: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/simple/definition/constructorHasObservesParameter/ConstructorHasObservesParameterTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/simple/definition/constructorHasObservesParameter/ConstructorHasObservesParameterTest.java	2009-08-17 22:38:44 UTC (rev 3544)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/simple/definition/constructorHasObservesParameter/ConstructorHasObservesParameterTest.java	2009-08-18 05:20:25 UTC (rev 3545)
@@ -11,7 +11,7 @@
 
 @Artifact
 @ExpectedDeploymentException(DefinitionError.class)
- at SpecVersion("20090625")
+ at SpecVersion(spec="jsr299", version="20090625")
 public class ConstructorHasObservesParameterTest extends AbstractJSR299Test
 {
    @Test(groups = { "observerMethod" })

Modified: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/simple/definition/dependentWithPublicField/DependentWithPublicFieldTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/simple/definition/dependentWithPublicField/DependentWithPublicFieldTest.java	2009-08-17 22:38:44 UTC (rev 3544)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/simple/definition/dependentWithPublicField/DependentWithPublicFieldTest.java	2009-08-18 05:20:25 UTC (rev 3545)
@@ -11,7 +11,7 @@
 
 @Artifact
 @ExpectedDeploymentException(DefinitionError.class)
- at SpecVersion("20090625")
+ at SpecVersion(spec="jsr299", version="20090625")
 public class DependentWithPublicFieldTest extends AbstractJSR299Test
 {
    @Test

Modified: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/simple/definition/tooManyInitializerAnnotatedConstructors/TooManyInitializerAnnotatedConstructorsTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/simple/definition/tooManyInitializerAnnotatedConstructors/TooManyInitializerAnnotatedConstructorsTest.java	2009-08-17 22:38:44 UTC (rev 3544)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/simple/definition/tooManyInitializerAnnotatedConstructors/TooManyInitializerAnnotatedConstructorsTest.java	2009-08-18 05:20:25 UTC (rev 3545)
@@ -11,7 +11,7 @@
 
 @Artifact
 @ExpectedDeploymentException(DefinitionError.class)
- at SpecVersion("20090625")
+ at SpecVersion(spec="jsr299", version="20090625")
 public class TooManyInitializerAnnotatedConstructorsTest extends AbstractJSR299Test
 {
 

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-08-17 22:38:44 UTC (rev 3544)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/simple/lifecycle/SimpleBeanLifecycleTest.java	2009-08-18 05:20:25 UTC (rev 3545)
@@ -23,7 +23,7 @@
 
 @Artifact
 @BeansXml("beans.xml")
- at SpecVersion("20090625")
+ at SpecVersion(spec="jsr299", version="20090625")
 public class SimpleBeanLifecycleTest extends AbstractJSR299Test
 {
    private static final Annotation TAME_LITERAL = new AnnotationLiteral<Tame>()

Modified: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/simple/lifecycle/unproxyable/UnproxyableManagedBeanTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/simple/lifecycle/unproxyable/UnproxyableManagedBeanTest.java	2009-08-17 22:38:44 UTC (rev 3544)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/simple/lifecycle/unproxyable/UnproxyableManagedBeanTest.java	2009-08-18 05:20:25 UTC (rev 3545)
@@ -11,7 +11,7 @@
 
 @Artifact
 @ExpectedDeploymentException(UnproxyableResolutionException.class)
- at SpecVersion("20090625")
+ at SpecVersion(spec="jsr299", version="20090625")
 public class UnproxyableManagedBeanTest extends AbstractJSR299Test
 {
    @Test(groups = { "contexts" })

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-08-17 22:38:44 UTC (rev 3544)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/simple/newSimpleBean/NewSimpleBeanTest.java	2009-08-18 05:20:25 UTC (rev 3545)
@@ -20,7 +20,7 @@
 import org.testng.annotations.Test;
 
 @Artifact
- at SpecVersion("20090625")
+ at SpecVersion(spec="jsr299", version="20090625")
 public class NewSimpleBeanTest extends AbstractJSR299Test
 {
 

Modified: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/simple/resource/ejb/EjbInjectionTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/simple/resource/ejb/EjbInjectionTest.java	2009-08-17 22:38:44 UTC (rev 3544)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/simple/resource/ejb/EjbInjectionTest.java	2009-08-18 05:20:25 UTC (rev 3545)
@@ -40,7 +40,7 @@
 @Packaging(PackagingType.EAR)
 @IntegrationTest
 @BeansXml("beans.xml")
- at SpecVersion("20090625")
+ at SpecVersion(spec="jsr299", version="20090625")
 public class EjbInjectionTest extends AbstractJSR299Test
 {
    @Test(groups = { "beanLifecycle", "commonAnnotations", "integration" })

Modified: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/simple/resource/env/EnvInjectionTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/simple/resource/env/EnvInjectionTest.java	2009-08-17 22:38:44 UTC (rev 3544)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/simple/resource/env/EnvInjectionTest.java	2009-08-18 05:20:25 UTC (rev 3545)
@@ -42,7 +42,7 @@
 @IntegrationTest
 @Resource(source="web.xml", destination="/WEB-INF/web.xml")
 @BeansXml("beans.xml")
- at SpecVersion("20090625")
+ at SpecVersion(spec="jsr299", version="20090625")
 public class EnvInjectionTest extends AbstractJSR299Test
 {
    @Test(groups = { "beanLifecycle", "commonAnnotations", "integration" })

Modified: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/simple/resource/persistenceContext/PersistenceContextInjectionTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/simple/resource/persistenceContext/PersistenceContextInjectionTest.java	2009-08-17 22:38:44 UTC (rev 3544)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/simple/resource/persistenceContext/PersistenceContextInjectionTest.java	2009-08-18 05:20:25 UTC (rev 3545)
@@ -29,7 +29,7 @@
 @Resource(source = "persistence.xml", destination = "WEB-INF/classes/META-INF/persistence.xml")
 //@PersistenceXml("persistence.xml")
 @BeansXml("beans.xml")
- at SpecVersion("20090625")
+ at SpecVersion(spec="jsr299", version="20090625")
 public class PersistenceContextInjectionTest extends AbstractJSR299Test
 {
    @Test(groups = { "beanLifecycle", "commonAnnotations", "integration" })

Modified: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/simple/resource/resource/InjectionOfResourceTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/simple/resource/resource/InjectionOfResourceTest.java	2009-08-17 22:38:44 UTC (rev 3544)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/simple/resource/resource/InjectionOfResourceTest.java	2009-08-18 05:20:25 UTC (rev 3545)
@@ -20,7 +20,7 @@
 @Packaging(PackagingType.WAR)
 @IntegrationTest
 @BeansXml("beans.xml")
- at SpecVersion("20090625")
+ at SpecVersion(spec="jsr299", version="20090625")
 public class InjectionOfResourceTest extends AbstractJSR299Test
 {
    @Test(groups = { "beanLifecycle", "commonAnnotations", "integration" })

Modified: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/inheritance/specialization/enterprise/EnterpriseBeanSpecializationIntegrationTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/inheritance/specialization/enterprise/EnterpriseBeanSpecializationIntegrationTest.java	2009-08-17 22:38:44 UTC (rev 3544)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/inheritance/specialization/enterprise/EnterpriseBeanSpecializationIntegrationTest.java	2009-08-18 05:20:25 UTC (rev 3545)
@@ -20,7 +20,7 @@
 @IntegrationTest
 @Packaging(PackagingType.EAR)
 @BeansXml("beans.xml")
- at SpecVersion("20090625")
+ at SpecVersion(spec="jsr299", version="20090625")
 public class EnterpriseBeanSpecializationIntegrationTest extends AbstractJSR299Test
 {
    

Modified: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/inheritance/specialization/enterprise/EnterpriseBeanSpecializationTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/inheritance/specialization/enterprise/EnterpriseBeanSpecializationTest.java	2009-08-17 22:38:44 UTC (rev 3544)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/inheritance/specialization/enterprise/EnterpriseBeanSpecializationTest.java	2009-08-18 05:20:25 UTC (rev 3545)
@@ -19,7 +19,7 @@
 @Artifact
 @Packaging(PackagingType.EAR)
 @BeansXml("beans.xml")
- at SpecVersion("20090625")
+ at SpecVersion(spec="jsr299", version="20090625")
 public class EnterpriseBeanSpecializationTest extends AbstractJSR299Test
 {
    

Modified: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/inheritance/specialization/enterprise/broken/directlyExtendsNothing/DirectlyExtendsNothingTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/inheritance/specialization/enterprise/broken/directlyExtendsNothing/DirectlyExtendsNothingTest.java	2009-08-17 22:38:44 UTC (rev 3544)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/inheritance/specialization/enterprise/broken/directlyExtendsNothing/DirectlyExtendsNothingTest.java	2009-08-18 05:20:25 UTC (rev 3545)
@@ -14,7 +14,7 @@
 @Artifact
 @ExpectedDeploymentException(DefinitionError.class)
 @Packaging(PackagingType.EAR)
- at SpecVersion("20090625")
+ at SpecVersion(spec="jsr299", version="20090625")
 public class DirectlyExtendsNothingTest extends AbstractJSR299Test
 {
    

Modified: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/inheritance/specialization/enterprise/broken/directlyExtendsSimpleBean/DirectlyExtendsSimpleBeanTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/inheritance/specialization/enterprise/broken/directlyExtendsSimpleBean/DirectlyExtendsSimpleBeanTest.java	2009-08-17 22:38:44 UTC (rev 3544)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/inheritance/specialization/enterprise/broken/directlyExtendsSimpleBean/DirectlyExtendsSimpleBeanTest.java	2009-08-18 05:20:25 UTC (rev 3545)
@@ -14,7 +14,7 @@
 @Artifact
 @Packaging(PackagingType.EAR)
 @ExpectedDeploymentException(DefinitionError.class)
- at SpecVersion("20090625")
+ at SpecVersion(spec="jsr299", version="20090625")
 public class DirectlyExtendsSimpleBeanTest extends AbstractJSR299Test
 {
    

Modified: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/inheritance/specialization/enterprise/broken/implementInterfaceAndExtendsNothing/ImplementsInterfaceAndExtendsNothingTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/inheritance/specialization/enterprise/broken/implementInterfaceAndExtendsNothing/ImplementsInterfaceAndExtendsNothingTest.java	2009-08-17 22:38:44 UTC (rev 3544)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/inheritance/specialization/enterprise/broken/implementInterfaceAndExtendsNothing/ImplementsInterfaceAndExtendsNothingTest.java	2009-08-18 05:20:25 UTC (rev 3545)
@@ -14,7 +14,7 @@
 @ExpectedDeploymentException(DefinitionError.class)
 @Artifact
 @Packaging(PackagingType.EAR)
- at SpecVersion("20090625")
+ at SpecVersion(spec="jsr299", version="20090625")
 public class ImplementsInterfaceAndExtendsNothingTest extends AbstractJSR299Test
 {
    

Modified: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/inheritance/specialization/enterprise/broken/sameName/SameNameTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/inheritance/specialization/enterprise/broken/sameName/SameNameTest.java	2009-08-17 22:38:44 UTC (rev 3544)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/inheritance/specialization/enterprise/broken/sameName/SameNameTest.java	2009-08-18 05:20:25 UTC (rev 3545)
@@ -16,7 +16,7 @@
 @ExpectedDeploymentException(DefinitionError.class)
 @Packaging(PackagingType.EAR)
 @BeansXml("beans.xml")
- at SpecVersion("20090625")
+ at SpecVersion(spec="jsr299", version="20090625")
 public class SameNameTest extends AbstractJSR299Test
 {
    @Test

Modified: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/inheritance/specialization/enterprise/broken/twoBeansSpecializeTheSameBean/TwoBeansSpecializeTheSameBeanTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/inheritance/specialization/enterprise/broken/twoBeansSpecializeTheSameBean/TwoBeansSpecializeTheSameBeanTest.java	2009-08-17 22:38:44 UTC (rev 3544)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/inheritance/specialization/enterprise/broken/twoBeansSpecializeTheSameBean/TwoBeansSpecializeTheSameBeanTest.java	2009-08-18 05:20:25 UTC (rev 3545)
@@ -16,7 +16,7 @@
 @Packaging(PackagingType.EAR)
 @BeansXml("beans.xml")
 @ExpectedDeploymentException(DeploymentError.class)
- at SpecVersion("20090625")
+ at SpecVersion(spec="jsr299", version="20090625")
 public class TwoBeansSpecializeTheSameBeanTest extends AbstractJSR299Test
 {
    /**

Modified: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/inheritance/specialization/producer/method/ProducerMethodSpecializationTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/inheritance/specialization/producer/method/ProducerMethodSpecializationTest.java	2009-08-17 22:38:44 UTC (rev 3544)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/inheritance/specialization/producer/method/ProducerMethodSpecializationTest.java	2009-08-18 05:20:25 UTC (rev 3545)
@@ -15,7 +15,7 @@
 
 @Artifact
 @BeansXml("beans.xml")
- at SpecVersion("20090625")
+ at SpecVersion(spec="jsr299", version="20090625")
 public class ProducerMethodSpecializationTest extends AbstractJSR299Test
 {
    

Modified: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/inheritance/specialization/producer/method/broken/indirectOverride/IndirectOverrideTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/inheritance/specialization/producer/method/broken/indirectOverride/IndirectOverrideTest.java	2009-08-17 22:38:44 UTC (rev 3544)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/inheritance/specialization/producer/method/broken/indirectOverride/IndirectOverrideTest.java	2009-08-18 05:20:25 UTC (rev 3545)
@@ -11,7 +11,7 @@
 
 @Artifact
 @ExpectedDeploymentException(DefinitionError.class)
- at SpecVersion("20090625")
+ at SpecVersion(spec="jsr299", version="20090625")
 public class IndirectOverrideTest extends AbstractJSR299Test
 {
    

Modified: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/inheritance/specialization/producer/method/broken/specializesStaticMethod/SpecializesStaticMethodTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/inheritance/specialization/producer/method/broken/specializesStaticMethod/SpecializesStaticMethodTest.java	2009-08-17 22:38:44 UTC (rev 3544)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/inheritance/specialization/producer/method/broken/specializesStaticMethod/SpecializesStaticMethodTest.java	2009-08-18 05:20:25 UTC (rev 3545)
@@ -11,7 +11,7 @@
 
 @Artifact
 @ExpectedDeploymentException(DefinitionError.class)
- at SpecVersion("20090625")
+ at SpecVersion(spec="jsr299", version="20090625")
 public class SpecializesStaticMethodTest extends AbstractJSR299Test
 {
    

Modified: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/inheritance/specialization/producer/method/broken/specializingAndSpecializedBeanHaveName/SpecializingAndSpecializedBeanHaveNameTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/inheritance/specialization/producer/method/broken/specializingAndSpecializedBeanHaveName/SpecializingAndSpecializedBeanHaveNameTest.java	2009-08-17 22:38:44 UTC (rev 3544)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/inheritance/specialization/producer/method/broken/specializingAndSpecializedBeanHaveName/SpecializingAndSpecializedBeanHaveNameTest.java	2009-08-18 05:20:25 UTC (rev 3545)
@@ -11,7 +11,7 @@
 
 @Artifact
 @ExpectedDeploymentException(DefinitionError.class)
- at SpecVersion("20090625")
+ at SpecVersion(spec="jsr299", version="20090625")
 public class SpecializingAndSpecializedBeanHaveNameTest extends AbstractJSR299Test
 {
    @Test

Modified: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/inheritance/specialization/producer/method/broken/twoBeansSpecializeTheSameBean/TwoBeansSpecializeTheSameBeanTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/inheritance/specialization/producer/method/broken/twoBeansSpecializeTheSameBean/TwoBeansSpecializeTheSameBeanTest.java	2009-08-17 22:38:44 UTC (rev 3544)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/inheritance/specialization/producer/method/broken/twoBeansSpecializeTheSameBean/TwoBeansSpecializeTheSameBeanTest.java	2009-08-18 05:20:25 UTC (rev 3545)
@@ -11,7 +11,7 @@
 
 @Artifact
 @ExpectedDeploymentException(DeploymentError.class)
- at SpecVersion("20090625")
+ at SpecVersion(spec="jsr299", version="20090625")
 public class TwoBeansSpecializeTheSameBeanTest extends AbstractJSR299Test
 {
 

Modified: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/inheritance/specialization/simple/SimpleBeanSpecializationTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/inheritance/specialization/simple/SimpleBeanSpecializationTest.java	2009-08-17 22:38:44 UTC (rev 3544)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/inheritance/specialization/simple/SimpleBeanSpecializationTest.java	2009-08-18 05:20:25 UTC (rev 3545)
@@ -16,7 +16,7 @@
 
 @Artifact
 @BeansXml("beans.xml")
- at SpecVersion("20090625")
+ at SpecVersion(spec="jsr299", version="20090625")
 public class SimpleBeanSpecializationTest extends AbstractJSR299Test
 {
 

Modified: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/inheritance/specialization/simple/broken/extendejb/SpecializingBeanExtendsEnterpriseBeanTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/inheritance/specialization/simple/broken/extendejb/SpecializingBeanExtendsEnterpriseBeanTest.java	2009-08-17 22:38:44 UTC (rev 3544)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/inheritance/specialization/simple/broken/extendejb/SpecializingBeanExtendsEnterpriseBeanTest.java	2009-08-18 05:20:25 UTC (rev 3545)
@@ -14,7 +14,7 @@
 @Artifact
 @Packaging(PackagingType.EAR)
 @ExpectedDeploymentException(DefinitionError.class)
- at SpecVersion("20090625")
+ at SpecVersion(spec="jsr299", version="20090625")
 public class SpecializingBeanExtendsEnterpriseBeanTest extends AbstractJSR299Test
 {
    @Test(groups = { "specialization" })

Modified: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/inheritance/specialization/simple/broken/names/SpecializingAndSpecializedBeanHasNameTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/inheritance/specialization/simple/broken/names/SpecializingAndSpecializedBeanHasNameTest.java	2009-08-17 22:38:44 UTC (rev 3544)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/inheritance/specialization/simple/broken/names/SpecializingAndSpecializedBeanHasNameTest.java	2009-08-18 05:20:25 UTC (rev 3545)
@@ -11,7 +11,7 @@
 
 @Artifact
 @ExpectedDeploymentException(DefinitionError.class)
- at SpecVersion("20090625")
+ at SpecVersion(spec="jsr299", version="20090625")
 public class SpecializingAndSpecializedBeanHasNameTest extends AbstractJSR299Test
 {
    @Test

Modified: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/inheritance/specialization/simple/broken/noextend1/SpecializingBeanImplementsInterfaceOnly.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/inheritance/specialization/simple/broken/noextend1/SpecializingBeanImplementsInterfaceOnly.java	2009-08-17 22:38:44 UTC (rev 3544)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/inheritance/specialization/simple/broken/noextend1/SpecializingBeanImplementsInterfaceOnly.java	2009-08-18 05:20:25 UTC (rev 3545)
@@ -11,7 +11,7 @@
 
 @Artifact
 @ExpectedDeploymentException(DefinitionError.class)
- at SpecVersion("20090625")
+ at SpecVersion(spec="jsr299", version="20090625")
 public class SpecializingBeanImplementsInterfaceOnly extends AbstractJSR299Test
 {
    @Test(groups = { "specialization" })

Modified: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/inheritance/specialization/simple/broken/noextend2/SpecializingBeanExtendsNothingTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/inheritance/specialization/simple/broken/noextend2/SpecializingBeanExtendsNothingTest.java	2009-08-17 22:38:44 UTC (rev 3544)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/inheritance/specialization/simple/broken/noextend2/SpecializingBeanExtendsNothingTest.java	2009-08-18 05:20:25 UTC (rev 3545)
@@ -11,7 +11,7 @@
 
 @Artifact
 @ExpectedDeploymentException(DefinitionError.class)
- at SpecVersion("20090625")
+ at SpecVersion(spec="jsr299", version="20090625")
 public class SpecializingBeanExtendsNothingTest extends AbstractJSR299Test
 {
    @Test(groups = { "specialization" })

Modified: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/inheritance/specialization/simple/broken/noextend3/SpecializingClassExtendsNonSimpleBeanTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/inheritance/specialization/simple/broken/noextend3/SpecializingClassExtendsNonSimpleBeanTest.java	2009-08-17 22:38:44 UTC (rev 3544)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/inheritance/specialization/simple/broken/noextend3/SpecializingClassExtendsNonSimpleBeanTest.java	2009-08-18 05:20:25 UTC (rev 3545)
@@ -11,7 +11,7 @@
 
 @Artifact
 @ExpectedDeploymentException(DefinitionError.class)
- at SpecVersion("20090625")
+ at SpecVersion(spec="jsr299", version="20090625")
 public class SpecializingClassExtendsNonSimpleBeanTest extends AbstractJSR299Test
 {
    @Test(groups = { "specialization" })

Modified: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/inheritance/specialization/simple/broken/two/TwoSpecializingBeansForOneSpecializedTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/inheritance/specialization/simple/broken/two/TwoSpecializingBeansForOneSpecializedTest.java	2009-08-17 22:38:44 UTC (rev 3544)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/inheritance/specialization/simple/broken/two/TwoSpecializingBeansForOneSpecializedTest.java	2009-08-18 05:20:25 UTC (rev 3545)
@@ -11,7 +11,7 @@
 
 @Artifact
 @ExpectedDeploymentException(DeploymentError.class)
- at SpecVersion("20090625")
+ at SpecVersion(spec="jsr299", version="20090625")
 public class TwoSpecializingBeansForOneSpecializedTest extends AbstractJSR299Test
 {
    /**

Modified: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/interceptors/definition/InterceptorDefinitionTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/interceptors/definition/InterceptorDefinitionTest.java	2009-08-17 22:38:44 UTC (rev 3544)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/interceptors/definition/InterceptorDefinitionTest.java	2009-08-18 05:20:25 UTC (rev 3545)
@@ -42,7 +42,7 @@
  *
  */
 @Artifact
- at SpecVersion("20090625")
+ at SpecVersion(spec="jsr299", version="20090625")
 public class InterceptorDefinitionTest extends AbstractJSR299Test
 {
    @Test(groups = "ri-broken")

Modified: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/lookup/binding/members/annotation/BindingAnnotationWithMemberTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/lookup/binding/members/annotation/BindingAnnotationWithMemberTest.java	2009-08-17 22:38:44 UTC (rev 3544)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/lookup/binding/members/annotation/BindingAnnotationWithMemberTest.java	2009-08-18 05:20:25 UTC (rev 3545)
@@ -26,7 +26,7 @@
 
 @Artifact
 @ExpectedDeploymentException(DefinitionError.class)
- at SpecVersion("20090625")
+ at SpecVersion(spec="jsr299", version="20090625")
 public class BindingAnnotationWithMemberTest extends AbstractJSR299Test
 {
 

Modified: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/lookup/binding/members/array/BindingAnnotationWithMemberTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/lookup/binding/members/array/BindingAnnotationWithMemberTest.java	2009-08-17 22:38:44 UTC (rev 3544)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/lookup/binding/members/array/BindingAnnotationWithMemberTest.java	2009-08-18 05:20:25 UTC (rev 3545)
@@ -26,7 +26,7 @@
 
 @Artifact
 @ExpectedDeploymentException(DefinitionError.class)
- at SpecVersion("20090625")
+ at SpecVersion(spec="jsr299", version="20090625")
 public class BindingAnnotationWithMemberTest extends AbstractJSR299Test
 {
 

Modified: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/lookup/byname/ResolutionByNameTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/lookup/byname/ResolutionByNameTest.java	2009-08-17 22:38:44 UTC (rev 3544)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/lookup/byname/ResolutionByNameTest.java	2009-08-18 05:20:25 UTC (rev 3545)
@@ -30,7 +30,7 @@
 
 @Artifact
 @BeansXml("beans.xml")
- at SpecVersion("20090625")
+ at SpecVersion(spec="jsr299", version="20090625")
 public class ResolutionByNameTest extends AbstractJSR299Test
 {
 

Modified: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/lookup/byname/duplicateNameResolution/DuplicateNameResolutionTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/lookup/byname/duplicateNameResolution/DuplicateNameResolutionTest.java	2009-08-17 22:38:44 UTC (rev 3544)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/lookup/byname/duplicateNameResolution/DuplicateNameResolutionTest.java	2009-08-18 05:20:25 UTC (rev 3545)
@@ -27,7 +27,7 @@
 
 @Artifact
 @ExpectedDeploymentException(DeploymentError.class)
- at SpecVersion("20090625")
+ at SpecVersion(spec="jsr299", version="20090625")
 public class DuplicateNameResolutionTest extends AbstractJSR299Test
 {
 

Modified: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/lookup/byname/duplicatePrefixResolution/DuplicateNamePrefixResolutionTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/lookup/byname/duplicatePrefixResolution/DuplicateNamePrefixResolutionTest.java	2009-08-17 22:38:44 UTC (rev 3544)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/lookup/byname/duplicatePrefixResolution/DuplicateNamePrefixResolutionTest.java	2009-08-18 05:20:25 UTC (rev 3545)
@@ -27,7 +27,7 @@
 
 @Artifact
 @ExpectedDeploymentException(DeploymentError.class)
- at SpecVersion("20090625")
+ at SpecVersion(spec="jsr299", version="20090625")
 public class DuplicateNamePrefixResolutionTest extends AbstractJSR299Test
 {
 

Modified: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/lookup/circular/CircularDependencyTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/lookup/circular/CircularDependencyTest.java	2009-08-17 22:38:44 UTC (rev 3544)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/lookup/circular/CircularDependencyTest.java	2009-08-18 05:20:25 UTC (rev 3545)
@@ -23,7 +23,7 @@
 import org.testng.annotations.Test;
 
 @Artifact
- at SpecVersion("20090625")
+ at SpecVersion(spec="jsr299", version="20090625")
 public class CircularDependencyTest extends AbstractJSR299Test
 {
   

Modified: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/lookup/clientProxy/ClientProxyTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/lookup/clientProxy/ClientProxyTest.java	2009-08-17 22:38:44 UTC (rev 3544)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/lookup/clientProxy/ClientProxyTest.java	2009-08-18 05:20:25 UTC (rev 3545)
@@ -29,7 +29,7 @@
 import org.testng.annotations.Test;
 
 @Artifact
- at SpecVersion("20090625")
+ at SpecVersion(spec="jsr299", version="20090625")
 public class ClientProxyTest extends AbstractJSR299Test
 {
    @Test

Modified: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/lookup/clientProxy/unproxyable/array/ArrayTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/lookup/clientProxy/unproxyable/array/ArrayTest.java	2009-08-17 22:38:44 UTC (rev 3544)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/lookup/clientProxy/unproxyable/array/ArrayTest.java	2009-08-18 05:20:25 UTC (rev 3545)
@@ -29,7 +29,7 @@
  */
 @Artifact
 @ExpectedDeploymentException(DeploymentError.class)
- at SpecVersion("20090625")
+ at SpecVersion(spec="jsr299", version="20090625")
 public class ArrayTest extends AbstractJSR299Test
 {
    @Test

Modified: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/lookup/clientProxy/unproxyable/finalClass/FinalClassTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/lookup/clientProxy/unproxyable/finalClass/FinalClassTest.java	2009-08-17 22:38:44 UTC (rev 3544)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/lookup/clientProxy/unproxyable/finalClass/FinalClassTest.java	2009-08-18 05:20:25 UTC (rev 3545)
@@ -26,7 +26,7 @@
 
 @Artifact
 @ExpectedDeploymentException(DeploymentError.class)
- at SpecVersion("20090625")
+ at SpecVersion(spec="jsr299", version="20090625")
 public class FinalClassTest extends AbstractJSR299Test
 {
    @Test

Modified: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/lookup/clientProxy/unproxyable/finalMethod/FinalMethodTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/lookup/clientProxy/unproxyable/finalMethod/FinalMethodTest.java	2009-08-17 22:38:44 UTC (rev 3544)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/lookup/clientProxy/unproxyable/finalMethod/FinalMethodTest.java	2009-08-18 05:20:25 UTC (rev 3545)
@@ -26,7 +26,7 @@
 
 @Artifact
 @ExpectedDeploymentException(DeploymentError.class)
- at SpecVersion("20090625")
+ at SpecVersion(spec="jsr299", version="20090625")
 public class FinalMethodTest extends AbstractJSR299Test
 {
    @Test

Modified: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/lookup/clientProxy/unproxyable/primitive/UnproxyableTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/lookup/clientProxy/unproxyable/primitive/UnproxyableTest.java	2009-08-17 22:38:44 UTC (rev 3544)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/lookup/clientProxy/unproxyable/primitive/UnproxyableTest.java	2009-08-18 05:20:25 UTC (rev 3545)
@@ -26,7 +26,7 @@
 
 @Artifact
 @ExpectedDeploymentException(DeploymentError.class)
- at SpecVersion("20090625")
+ at SpecVersion(spec="jsr299", version="20090625")
 public class UnproxyableTest extends AbstractJSR299Test
 {
    @Test

Modified: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/lookup/clientProxy/unproxyable/privateConstructor/PrivateConstructorTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/lookup/clientProxy/unproxyable/privateConstructor/PrivateConstructorTest.java	2009-08-17 22:38:44 UTC (rev 3544)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/lookup/clientProxy/unproxyable/privateConstructor/PrivateConstructorTest.java	2009-08-18 05:20:25 UTC (rev 3545)
@@ -30,7 +30,7 @@
  */
 @Artifact
 @ExpectedDeploymentException(DeploymentError.class)
- at SpecVersion("20090625")
+ at SpecVersion(spec="jsr299", version="20090625")
 public class PrivateConstructorTest extends AbstractJSR299Test
 {
    @Test

Modified: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/lookup/dependency/resolution/broken/ambiguous/AmbiguousDependencyTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/lookup/dependency/resolution/broken/ambiguous/AmbiguousDependencyTest.java	2009-08-17 22:38:44 UTC (rev 3544)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/lookup/dependency/resolution/broken/ambiguous/AmbiguousDependencyTest.java	2009-08-18 05:20:25 UTC (rev 3545)
@@ -26,7 +26,7 @@
 
 @Artifact
 @ExpectedDeploymentException(DeploymentError.class)
- at SpecVersion("20090625")
+ at SpecVersion(spec="jsr299", version="20090625")
 public class AmbiguousDependencyTest extends AbstractJSR299Test
 {
 

Modified: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/lookup/dependency/resolution/broken/unsatisfied/UnsatisfiedDependencyTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/lookup/dependency/resolution/broken/unsatisfied/UnsatisfiedDependencyTest.java	2009-08-17 22:38:44 UTC (rev 3544)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/lookup/dependency/resolution/broken/unsatisfied/UnsatisfiedDependencyTest.java	2009-08-18 05:20:25 UTC (rev 3545)
@@ -26,7 +26,7 @@
 
 @Artifact
 @ExpectedDeploymentException(DeploymentError.class)
- at SpecVersion("20090625")
+ at SpecVersion(spec="jsr299", version="20090625")
 public class UnsatisfiedDependencyTest extends AbstractJSR299Test
 {
 

Modified: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/lookup/dynamic/DynamicLookupTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/lookup/dynamic/DynamicLookupTest.java	2009-08-17 22:38:44 UTC (rev 3544)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/lookup/dynamic/DynamicLookupTest.java	2009-08-18 05:20:25 UTC (rev 3545)
@@ -40,7 +40,7 @@
  * @author Jozef Hartinger
  */
 @Artifact
- at SpecVersion("20090625")
+ at SpecVersion(spec="jsr299", version="20090625")
 public class DynamicLookupTest extends AbstractJSR299Test
 {
    @Test

Modified: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/lookup/dynamic/builtin/BuiltinInstanceTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/lookup/dynamic/builtin/BuiltinInstanceTest.java	2009-08-17 22:38:44 UTC (rev 3544)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/lookup/dynamic/builtin/BuiltinInstanceTest.java	2009-08-18 05:20:25 UTC (rev 3545)
@@ -32,7 +32,7 @@
  * Tests for built-in Instance.
  */
 @Artifact
- at SpecVersion("20090625")
+ at SpecVersion(spec="jsr299", version="20090625")
 public class BuiltinInstanceTest extends AbstractJSR299Test {
 
 	@Test

Modified: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/lookup/el/ResolutionByNameTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/lookup/el/ResolutionByNameTest.java	2009-08-17 22:38:44 UTC (rev 3544)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/lookup/el/ResolutionByNameTest.java	2009-08-18 05:20:25 UTC (rev 3545)
@@ -28,7 +28,7 @@
 import org.testng.annotations.Test;
 
 @Artifact
- at SpecVersion("20090625")
+ at SpecVersion(spec="jsr299", version="20090625")
 public class ResolutionByNameTest extends AbstractJSR299Test
 {
    

Modified: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/lookup/el/integration/IntegrationWithUnifiedELTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/lookup/el/integration/IntegrationWithUnifiedELTest.java	2009-08-17 22:38:44 UTC (rev 3544)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/lookup/el/integration/IntegrationWithUnifiedELTest.java	2009-08-18 05:20:25 UTC (rev 3545)
@@ -35,7 +35,7 @@
    @Resource(destination = "WEB-INF/faces-config.xml", source = "faces-config.xml"), 
    @Resource(destination = "JSFTestPage.jsp", source = "JSFTestPage.jsp"),
    @Resource(destination = "JSPTestPage.jsp", source = "JSPTestPage.jsp")})
- at SpecVersion("20090625")
+ at SpecVersion(spec="jsr299", version="20090625")
 public class IntegrationWithUnifiedELTest extends AbstractJSR299Test
 {
    @Test(groups = {"el" } )

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-08-17 22:38:44 UTC (rev 3544)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/lookup/injection/InjectionTest.java	2009-08-18 05:20:25 UTC (rev 3545)
@@ -9,7 +9,7 @@
 
 @Artifact
 @BeansXml("beans.xml")
- at SpecVersion("20090625")
+ at SpecVersion(spec="jsr299", version="20090625")
 public class InjectionTest extends AbstractJSR299Test
 {
    @Test(groups = { "injection", "producerMethod" })

Modified: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/lookup/injection/any/AnyInjectionTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/lookup/injection/any/AnyInjectionTest.java	2009-08-17 22:38:44 UTC (rev 3544)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/lookup/injection/any/AnyInjectionTest.java	2009-08-18 05:20:25 UTC (rev 3545)
@@ -23,7 +23,7 @@
 import org.testng.annotations.Test;
 
 @Artifact
- at SpecVersion("20090625")
+ at SpecVersion(spec="jsr299", version="20090625")
 public class AnyInjectionTest extends AbstractJSR299Test
 {
    @Test

Modified: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/lookup/injection/enterprise/SessionBeanInjectionTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/lookup/injection/enterprise/SessionBeanInjectionTest.java	2009-08-17 22:38:44 UTC (rev 3544)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/lookup/injection/enterprise/SessionBeanInjectionTest.java	2009-08-18 05:20:25 UTC (rev 3545)
@@ -29,7 +29,7 @@
 @Artifact
 @IntegrationTest
 @Packaging(PackagingType.EAR)
- at SpecVersion("20090625")
+ at SpecVersion(spec="jsr299", version="20090625")
 public class SessionBeanInjectionTest extends AbstractJSR299Test
 {
 

Modified: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/lookup/injection/non/contextual/InjectionIntoNonContextualComponentTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/lookup/injection/non/contextual/InjectionIntoNonContextualComponentTest.java	2009-08-17 22:38:44 UTC (rev 3544)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/lookup/injection/non/contextual/InjectionIntoNonContextualComponentTest.java	2009-08-18 05:20:25 UTC (rev 3545)
@@ -38,7 +38,7 @@
    @Resource(destination = "WEB-INF/TestLibrary.tld", source = "TestLibrary.tld"), 
    @Resource(destination = "TagPage.jsp", source = "TagPage.jsp"),
    @Resource(destination = "ManagedBeanTestPage.jsp", source = "ManagedBeanTestPage.jsp")})
- at SpecVersion("20090625")
+ at SpecVersion(spec="jsr299", version="20090625")
 public class InjectionIntoNonContextualComponentTest extends AbstractJSR299Test
 {
    @Test(groups = "jboss-as-broken")

Modified: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/lookup/injection/non/contextual/ws/InjectionIntoWebServiceEndPointTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/lookup/injection/non/contextual/ws/InjectionIntoWebServiceEndPointTest.java	2009-08-17 22:38:44 UTC (rev 3544)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/lookup/injection/non/contextual/ws/InjectionIntoWebServiceEndPointTest.java	2009-08-18 05:20:25 UTC (rev 3545)
@@ -30,7 +30,7 @@
 @Artifact
 @IntegrationTest(runLocally = true)
 @Resource(destination = WarArtifactDescriptor.WEB_XML_DESTINATION, source = "web.xml")
- at SpecVersion("20090625")
+ at SpecVersion(spec="jsr299", version="20090625")
 public class InjectionIntoWebServiceEndPointTest extends AbstractJSR299Test
 {
    @WebServiceRef(wsdlLocation = "http://localhost:8080/org.jboss.jsr299.tck.tests.lookup.injection.non.contextual.ws.InjectionIntoWebServiceEndPointTest/TestWebService?wsdl")

Modified: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/lookup/injection/nullableBean/NullableBeanTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/lookup/injection/nullableBean/NullableBeanTest.java	2009-08-17 22:38:44 UTC (rev 3544)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/lookup/injection/nullableBean/NullableBeanTest.java	2009-08-18 05:20:25 UTC (rev 3545)
@@ -10,7 +10,7 @@
 
 @Artifact
 @ExpectedDeploymentException(DeploymentError.class)
- at SpecVersion("20090625")
+ at SpecVersion(spec="jsr299", version="20090625")
 public class NullableBeanTest extends AbstractJSR299Test
 {
    @Test(groups = { "injection", "producerMethod" })

Modified: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/lookup/injectionpoint/InjectableReferenceTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/lookup/injectionpoint/InjectableReferenceTest.java	2009-08-17 22:38:44 UTC (rev 3544)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/lookup/injectionpoint/InjectableReferenceTest.java	2009-08-18 05:20:25 UTC (rev 3545)
@@ -40,7 +40,7 @@
  */
 @Artifact
 @BeansXml("beans.xml")
- at SpecVersion("20090625")
+ at SpecVersion(spec="jsr299", version="20090625")
 public class InjectableReferenceTest extends AbstractJSR299Test
 {
    @SuppressWarnings("unchecked")

Modified: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/lookup/injectionpoint/InjectionPointTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/lookup/injectionpoint/InjectionPointTest.java	2009-08-17 22:38:44 UTC (rev 3544)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/lookup/injectionpoint/InjectionPointTest.java	2009-08-18 05:20:25 UTC (rev 3545)
@@ -46,7 +46,7 @@
  */
 @Artifact
 @BeansXml("beans.xml")
- at SpecVersion("20090625")
+ at SpecVersion(spec="jsr299", version="20090625")
 public class InjectionPointTest extends AbstractJSR299Test
 {
 

Modified: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/lookup/injectionpoint/broken/normal/scope/NormalScopedBeanWithInjectionPoint.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/lookup/injectionpoint/broken/normal/scope/NormalScopedBeanWithInjectionPoint.java	2009-08-17 22:38:44 UTC (rev 3544)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/lookup/injectionpoint/broken/normal/scope/NormalScopedBeanWithInjectionPoint.java	2009-08-18 05:20:25 UTC (rev 3545)
@@ -26,7 +26,7 @@
 
 @Artifact
 @ExpectedDeploymentException(DefinitionError.class)
- at SpecVersion("20090625")
+ at SpecVersion(spec="jsr299", version="20090625")
 public class NormalScopedBeanWithInjectionPoint extends AbstractJSR299Test
 {
 

Modified: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/lookup/injectionpoint/broken/reference/ambiguous/AmbiguousInjectableReferenceTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/lookup/injectionpoint/broken/reference/ambiguous/AmbiguousInjectableReferenceTest.java	2009-08-17 22:38:44 UTC (rev 3544)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/lookup/injectionpoint/broken/reference/ambiguous/AmbiguousInjectableReferenceTest.java	2009-08-18 05:20:25 UTC (rev 3545)
@@ -36,7 +36,7 @@
  *
  */
 @Artifact
- at SpecVersion("20090625")
+ at SpecVersion(spec="jsr299", version="20090625")
 public class AmbiguousInjectableReferenceTest extends AbstractJSR299Test
 {
    @SuppressWarnings("unchecked")

Modified: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/lookup/injectionpoint/broken/reference/unresolved/UnsatisfiedInjectableReferenceTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/lookup/injectionpoint/broken/reference/unresolved/UnsatisfiedInjectableReferenceTest.java	2009-08-17 22:38:44 UTC (rev 3544)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/lookup/injectionpoint/broken/reference/unresolved/UnsatisfiedInjectableReferenceTest.java	2009-08-18 05:20:25 UTC (rev 3545)
@@ -36,7 +36,7 @@
  *
  */
 @Artifact
- at SpecVersion("20090625")
+ at SpecVersion(spec="jsr299", version="20090625")
 public class UnsatisfiedInjectableReferenceTest extends AbstractJSR299Test
 {
    @SuppressWarnings("unchecked")

Modified: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/lookup/manager/ManagerTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/lookup/manager/ManagerTest.java	2009-08-17 22:38:44 UTC (rev 3544)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/lookup/manager/ManagerTest.java	2009-08-18 05:20:25 UTC (rev 3545)
@@ -16,7 +16,7 @@
 import org.testng.annotations.Test;
 
 @Artifact
- at SpecVersion("20090625")
+ at SpecVersion(spec="jsr299", version="20090625")
 public class ManagerTest extends AbstractJSR299Test
 {
    @Test(groups={"manager", "injection", "deployment"}) 

Modified: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/lookup/manager/jndi/ManagerTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/lookup/manager/jndi/ManagerTest.java	2009-08-17 22:38:44 UTC (rev 3544)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/lookup/manager/jndi/ManagerTest.java	2009-08-18 05:20:25 UTC (rev 3545)
@@ -11,7 +11,7 @@
 
 @Artifact
 @IntegrationTest
- at SpecVersion("20090625")
+ at SpecVersion(spec="jsr299", version="20090625")
 public class ManagerTest extends AbstractJSR299Test
 {
    @Test(groups = { "manager", "ejb3", "integration", "jboss-as-broken" })

Modified: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/lookup/typesafe/resolution/ResolutionByTypeTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/lookup/typesafe/resolution/ResolutionByTypeTest.java	2009-08-17 22:38:44 UTC (rev 3544)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/lookup/typesafe/resolution/ResolutionByTypeTest.java	2009-08-18 05:20:25 UTC (rev 3545)
@@ -36,7 +36,7 @@
 import org.testng.annotations.Test;
 
 @Artifact
- at SpecVersion("20090625")
+ at SpecVersion(spec="jsr299", version="20090625")
 public class ResolutionByTypeTest extends AbstractJSR299Test
 {
 

Modified: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/lookup/typesafe/resolution/broken/primitive/PrimitiveInjectionPointTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/lookup/typesafe/resolution/broken/primitive/PrimitiveInjectionPointTest.java	2009-08-17 22:38:44 UTC (rev 3544)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/lookup/typesafe/resolution/broken/primitive/PrimitiveInjectionPointTest.java	2009-08-18 05:20:25 UTC (rev 3545)
@@ -26,7 +26,7 @@
 
 @Artifact
 @ExpectedDeploymentException(DeploymentError.class)
- at SpecVersion("20090625")
+ at SpecVersion(spec="jsr299", version="20090625")
 public class PrimitiveInjectionPointTest extends AbstractJSR299Test
 {
    @Test(groups={"resolution", "producerMethod"})

Modified: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/lookup/typesafe/resolution/broken/type/variable/TypeVariableInjectionPointTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/lookup/typesafe/resolution/broken/type/variable/TypeVariableInjectionPointTest.java	2009-08-17 22:38:44 UTC (rev 3544)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/lookup/typesafe/resolution/broken/type/variable/TypeVariableInjectionPointTest.java	2009-08-18 05:20:25 UTC (rev 3545)
@@ -26,7 +26,7 @@
 
 @Artifact
 @ExpectedDeploymentException(DefinitionError.class)
- at SpecVersion("20090625")
+ at SpecVersion(spec="jsr299", version="20090625")
 public class TypeVariableInjectionPointTest extends AbstractJSR299Test
 {
    @Test(groups = { "resolution"})

Modified: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/lookup/typesafe/resolution/decorator/DecoratorNotResolvedTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/lookup/typesafe/resolution/decorator/DecoratorNotResolvedTest.java	2009-08-17 22:38:44 UTC (rev 3544)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/lookup/typesafe/resolution/decorator/DecoratorNotResolvedTest.java	2009-08-18 05:20:25 UTC (rev 3545)
@@ -31,7 +31,7 @@
 
 @Artifact
 @BeansXml("beans.xml")
- at SpecVersion("20090625")
+ at SpecVersion(spec="jsr299", version="20090625")
 public class DecoratorNotResolvedTest extends AbstractJSR299Test
 {
 

Modified: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/lookup/typesafe/resolution/interceptor/InterceptorNotResolvedTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/lookup/typesafe/resolution/interceptor/InterceptorNotResolvedTest.java	2009-08-17 22:38:44 UTC (rev 3544)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/lookup/typesafe/resolution/interceptor/InterceptorNotResolvedTest.java	2009-08-18 05:20:25 UTC (rev 3545)
@@ -31,7 +31,7 @@
 
 @Artifact
 @BeansXml("beans.xml")
- at SpecVersion("20090625")
+ at SpecVersion(spec="jsr299", version="20090625")
 public class InterceptorNotResolvedTest extends AbstractJSR299Test
 {
 

Modified: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/lookup/typesafe/resolution/parameterized/AssignabilityOfRawAndParameterizedTypesTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/lookup/typesafe/resolution/parameterized/AssignabilityOfRawAndParameterizedTypesTest.java	2009-08-17 22:38:44 UTC (rev 3544)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/lookup/typesafe/resolution/parameterized/AssignabilityOfRawAndParameterizedTypesTest.java	2009-08-18 05:20:25 UTC (rev 3545)
@@ -31,7 +31,7 @@
 import org.testng.annotations.Test;
 
 @Artifact
- at SpecVersion("20090625")
+ at SpecVersion(spec="jsr299", version="20090625")
 public class AssignabilityOfRawAndParameterizedTypesTest extends AbstractJSR299Test
 {
 

Modified: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/policy/PolicyAvailabilityTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/policy/PolicyAvailabilityTest.java	2009-08-17 22:38:44 UTC (rev 3544)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/policy/PolicyAvailabilityTest.java	2009-08-18 05:20:25 UTC (rev 3545)
@@ -33,7 +33,7 @@
 
 @Artifact
 @BeansXml("beans.xml")
- at SpecVersion("20090625")
+ at SpecVersion(spec="jsr299", version="20090625")
 public class PolicyAvailabilityTest extends AbstractJSR299Test
 {
 

Modified: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/policy/broken/incorrect/name/NoClassWithSpecifiedNameTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/policy/broken/incorrect/name/NoClassWithSpecifiedNameTest.java	2009-08-17 22:38:44 UTC (rev 3544)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/policy/broken/incorrect/name/NoClassWithSpecifiedNameTest.java	2009-08-18 05:20:25 UTC (rev 3545)
@@ -28,7 +28,7 @@
 @Artifact
 @BeansXml("beans.xml")
 @ExpectedDeploymentException(DeploymentError.class)
- at SpecVersion("20090625")
+ at SpecVersion(spec="jsr299", version="20090625")
 public class NoClassWithSpecifiedNameTest extends AbstractJSR299Test
 {
 

Modified: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/policy/broken/incorrect/name/stereotype/NoAnnotationWithSpecifiedNameTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/policy/broken/incorrect/name/stereotype/NoAnnotationWithSpecifiedNameTest.java	2009-08-17 22:38:44 UTC (rev 3544)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/policy/broken/incorrect/name/stereotype/NoAnnotationWithSpecifiedNameTest.java	2009-08-18 05:20:25 UTC (rev 3545)
@@ -28,7 +28,7 @@
 @Artifact
 @BeansXml("beans.xml")
 @ExpectedDeploymentException(DeploymentError.class)
- at SpecVersion("20090625")
+ at SpecVersion(spec="jsr299", version="20090625")
 public class NoAnnotationWithSpecifiedNameTest extends AbstractJSR299Test
 {
 

Modified: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/policy/broken/not/policy/ClassIsNotPolicyTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/policy/broken/not/policy/ClassIsNotPolicyTest.java	2009-08-17 22:38:44 UTC (rev 3544)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/policy/broken/not/policy/ClassIsNotPolicyTest.java	2009-08-18 05:20:25 UTC (rev 3545)
@@ -28,7 +28,7 @@
 @Artifact
 @BeansXml("beans.xml")
 @ExpectedDeploymentException(DeploymentError.class)
- at SpecVersion("20090625")
+ at SpecVersion(spec="jsr299", version="20090625")
 public class ClassIsNotPolicyTest extends AbstractJSR299Test
 {
 

Modified: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/policy/broken/not/policy/stereotype/ClassIsNotPolicyTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/policy/broken/not/policy/stereotype/ClassIsNotPolicyTest.java	2009-08-17 22:38:44 UTC (rev 3544)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/policy/broken/not/policy/stereotype/ClassIsNotPolicyTest.java	2009-08-18 05:20:25 UTC (rev 3545)
@@ -28,7 +28,7 @@
 @Artifact
 @BeansXml("beans.xml")
 @ExpectedDeploymentException(DeploymentError.class)
- at SpecVersion("20090625")
+ at SpecVersion(spec="jsr299", version="20090625")
 public class ClassIsNotPolicyTest extends AbstractJSR299Test
 {
 

Modified: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/policy/broken/same/type/twice/SameTypeListedTwiceTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/policy/broken/same/type/twice/SameTypeListedTwiceTest.java	2009-08-17 22:38:44 UTC (rev 3544)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/policy/broken/same/type/twice/SameTypeListedTwiceTest.java	2009-08-18 05:20:25 UTC (rev 3545)
@@ -28,7 +28,7 @@
 @Artifact
 @BeansXml("beans.xml")
 @ExpectedDeploymentException(DeploymentError.class)
- at SpecVersion("20090625")
+ at SpecVersion(spec="jsr299", version="20090625")
 public class SameTypeListedTwiceTest extends AbstractJSR299Test
 {
 

Modified: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/policy/enterprise/SessionBeanPolicyTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/policy/enterprise/SessionBeanPolicyTest.java	2009-08-17 22:38:44 UTC (rev 3544)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/policy/enterprise/SessionBeanPolicyTest.java	2009-08-18 05:20:25 UTC (rev 3545)
@@ -30,7 +30,7 @@
 @Packaging(PackagingType.EAR)
 @IntegrationTest
 @BeansXml("beans.xml")
- at SpecVersion("20090625")
+ at SpecVersion(spec="jsr299", version="20090625")
 public class SessionBeanPolicyTest extends AbstractJSR299Test
 {
 

Added: tck/trunk/impl/src/main/resources/tck-audit-jsr299.xml
===================================================================
--- tck/trunk/impl/src/main/resources/tck-audit-jsr299.xml	                        (rev 0)
+++ tck/trunk/impl/src/main/resources/tck-audit-jsr299.xml	2009-08-18 05:20:25 UTC (rev 3545)
@@ -0,0 +1,5292 @@
+<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 /Users/pmuir/workspace/jboss-test-audit/api/src/main/resources/tck-audit.xsd"
+    name="JSR-299: Java Contexts and Dependency Injection"
+    id="jsr299"
+    version="20090625">
+
+  <section id="2" title="Concepts">
+
+    <assertion id="a">
+      <text>A bean comprises of a (nonempty) set of bean types.</text>
+    </assertion>
+
+    <assertion id="b">
+      <text>A bean comprises of a (nonempty) set of bindings.</text>
+    </assertion>
+
+    <assertion id="c">
+      <text>A bean comprises of a scope.</text>
+    </assertion>
+
+    <assertion id="e">
+      <text>A bean comprises of an optional bean EL 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>
+  </section>
+
+  <section id="2.2" title="Bean types">
+
+    <assertion id="a">
+      <text>A bean may have multiple bean types.</text>
+    </assertion>
+
+    <assertion id="l">
+      <text>All beans have the bean type java.lang.Object</text>
+    </assertion>
+
+  </section>
+
+  <section id="2.2.1" title="Legal bean types">
+    <assertion id="a">
+      <text>A bean type may be an interface.</text>
+    </assertion>
+
+    <assertion id="b">
+      <text>A bean type may be a concrete class.</text>
+    </assertion>
+
+    <assertion id="c">
+      <text>A bean type may be an abstract class.</text>
+    </assertion>
+
+    <assertion id="d">
+      <text>A bean type may be declared final.</text>
+    </assertion>
+
+    <assertion id="e">
+      <text>A bean type may have final methods.</text>
+    </assertion>
+
+    <assertion id="f">
+      <text>A bean type may be a parameterized type with actual type parameters.</text>
+    </assertion>
+
+    <assertion id="g">
+      <text>A bean type may be a parameterized type with type variables.</text>
+    </assertion>
+
+    <assertion id="i">
+      <text>A bean type may be an array type.  Two array types are considered identical only if the element type is identical.</text>
+    </assertion>
+
+    <assertion id="j">
+      <text>A bean type may be a primitive type. Primitive types are considered to be identical to their corresponding wrapper types in java.lang.</text>
+    </assertion>
+
+    <assertion id="k">
+      <text>A bean type may be a raw type.</text>
+    </assertion>
+
+    <assertion id="la">
+      <text>A type variable is not a legal bean type</text>
+    </assertion>
+
+    <assertion id="lb">
+      <text>A parameterized type that contains a wildcard type parameter is not a legal bean type.</text>
+    </assertion>
+  </section>
+
+  <section id="2.2.2" title="Typecasting between bean types">
+    <assertion id="a">
+      <text>A client of a bean may typecast its contextual reference to a bean to any bean type of the bean which is a Java interface.  However, the client may not in general typecast its contextual reference to an arbitrary concrete bean type of the bean.</text>
+    </assertion>
+  </section>
+
+  <section id="2.3" title="Bindings">
+
+  </section>
+
+  <section id="2.3.1" title="Built-in binding types">
+
+    <assertion id="a0">
+      <text>Every bean has the built-in binding |@Any|, even if it does not explicitly declare this binding, except for beans with the built-in binding |@New| defined in Section 3.11, "Beans with the @New binding".</text>
+    </assertion>
+
+    <assertion id="aa">
+      <text>If a bean does not explicitly declare a binding, the bean has exactly one additional binding, of type |@Current|.</text>
+    </assertion>
+
+    <assertion id="b">
+      <text>The default binding is also assumed for any injection point that does not explicitly declare a binding.</text>
+    </assertion>
+  </section>
+
+  <section id="2.3.2" title="Defining new binding types">
+    <assertion id="aa" testable="false">
+      <text>A binding type is a Java annotation defined as |@Target({METHOD, FIELD, PARAMETER, TYPE})|~ and |@Retention(RUNTIME)|~.</text>
+    </assertion>
+
+    <assertion id="ab" testable="false">
+      <text>A binding type is a Java annotation defined as ~|@Target({METHOD, FIELD, PARAMETER, TYPE})| and ~|@Retention(RUNTIME)|.</text>
+      <note>Non-runtime retention annotations are discarded by the compiler</note>
+    </assertion>
+
+    <assertion id="ba">
+      <text>A binding type may be declared by specifying the |@javax.enterprise.inject.BindingType| meta-annotation.</text>
+    </assertion>
+
+    <assertion id="d" testable="false">
+      <text>A binding type may define annotation members.</text>
+      <note>This is true by default in the JLS</note>
+    </assertion>
+  </section>
+
+  <section id="2.3.3" title="Declaring the bindings of a bean">
+    <assertion id="a">
+      <text>A bean's bindings are declared by annotating the bean class with the binding types.</text>
+    </assertion>
+
+    <assertion id="b">
+      <text>A bean's bindings are declared by annotating the producer method with the binding types.</text>
+    </assertion>
+
+    <assertion id="c">
+      <text>A bean's bindings are declared by annotating the producer field with the binding types.</text>
+    </assertion>
+
+    <assertion id="d">
+      <text>Any bean may declare multiple binding types.</text>
+    </assertion>
+  </section>
+
+  <section id="2.3.4" title="Specifying bindings of an injected field">
+    <assertion id="a">
+      <text>Binding types may be applied to injected fields (see Section 3.8, "Injected fields") to determine the bean that is injected, according to the rules of typesafe resolution defined in Section 5.3, "Typesafe resolution".</text>
+    </assertion>
+
+    <assertion id="b">
+      <text>A bean may only be injected to an injection point if it has all the bindings of the injection point.</text>
+    </assertion>
+  </section>
+
+  <section id="2.3.5" title="Specifying bindings of a method or constructor parameter">
+    <assertion id="a">
+      <text>Binding types may be applied to parameters of producer methods (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="b">
+      <text>Binding types may be applied to parameters of initializer methods (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="c">
+      <text>Binding types may be applied to parameters of disposal methods (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="ca">
+      <text>Binding types may be applied to parameters of observer methods (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="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>
+  </section>
+
+  <section id="2.4" title="Scopes">
+    <assertion id="a">
+      <text>All beans have a scope.</text>
+    </assertion>
+
+    <assertion id="b" testable="false">
+      <text>A scope type is represented by an annotation type.</text>
+      <note>This is a statement of intent</note>
+    </assertion>
+
+    <assertion id="c">
+      <text>The set of scope types is extensible.</text>
+    </assertion>
+  </section>
+
+  <section id="2.4.1" title="Built-in scope types">
+    <assertion id="aa">
+      <text>There are five standard scope types defined by this specification, all defined in the package javax.enterprise.context. The |@RequestScoped|~, |@ApplicationScoped| and |@SessionScoped|~ annotations defined in Section 6.7, "Context management for built-in scopes" represent the standard scopes defined by the Java Servlets specification.</text>
+    </assertion>
+
+    <assertion id="ab">
+      <text>There are five standard scope types defined by this specification, all defined in the package javax.enterprise.context. The ~|@RequestScoped|, ~|@ApplicationScoped|~ and |@SessionScoped|~ annotations defined in Section 6.7, "Context management for built-in scopes" represent the standard scopes defined by the Java Servlets specification.</text>
+    </assertion>
+
+    <assertion id="ac">
+      <text>There are five standard scope types defined by this specification, all defined in the package javax.enterprise.context. The ~|@RequestScoped|, |@ApplicationScoped| and ~|@SessionScoped| annotations defined in Section 6.7, "Context management for built-in scopes" represent the standard scopes defined by the Java Servlets specification.</text>
+    </assertion>
+
+    <assertion id="ba">
+      <text>There are five standard scope types defined by this specification, all defined in the package javax.enterprise.context. The |@ConversationScoped| annotation represents the conversation scope defined in Section 6.7.4, "Conversation context lifecycle".</text>
+    </assertion>
+
+    <assertion id="ca">
+      <text>There are five standard scope types defined by this specification, all defined in the package javax.enterprise.context. The |@Dependent| pseudo-scope is for dependent objects, as defined in Section 6.4, "Dependent pseudo-scope"</text>
+    </assertion>
+  </section>
+
+  <section id="2.4.2" title="Defining new scope types">
+    <assertion id="aa">
+      <text>A scope type is a Java annotation defined as |@Target({TYPE, METHOD, FIELD})|~ and |@Retention(RUNTIME)|~.</text>
+    </assertion>
+
+    <assertion id="ab" testable="false">
+      <text>A scope type is a Java annotation defined as ~|@Target({TYPE, METHOD, FIELD})| and ~|@Retention(RUNTIME)|.</text>
+      <note>Non-runtime retention annotations are discarded by the compiler</note>
+    </assertion>
+
+    <assertion id="ba">
+      <text>All scope types must specify the |@javax.enterprise.context.ScopeType| meta-annotation.</text>
+    </assertion>
+
+  </section>
+
+  <section id="2.4.3" title="Declaring the bean scope">
+    <assertion id="a">
+      <text>The bean's scope is defined by annotating the bean class or producer method or field with a scope type.</text>
+    </assertion>
+
+    <assertion id="ba">
+      <text>A bean class or producer method or field may specify at most one scope type annotation. If a bean class or producer method or field specifies multiple scope type annotations, the container automatically detects the problem and treats it as a definition error, as defined in Section 12.4, "Problems detected automatically by the container".</text>
+    </assertion>
+
+    <assertion id="c">
+      <text>A scope type may be specified using a stereotype annotation, as defined in Section 2.7.2, "Declaring the stereotypes for a bean"</text>
+    </assertion>
+  </section>
+
+  <section id="2.4.4" title="Default scope">
+    <assertion id="aa">
+      <text>When no scope is explicitly declared by annotating the bean class or producer method or field the scope of a bean is defaulted.</text>
+    </assertion>
+
+    <assertion id="b">
+      <text>If the bean does not declare any stereotype with a declared default scope, the default scope for the bean is |@Dependent|.</text>
+    </assertion>
+
+    <assertion id="c">
+      <text>If all stereotypes declared by the bean that have some declared default scope have the same default scope, then that scope is the default scope for the bean.</text>
+    </assertion>
+
+    <assertion id="da">
+      <text>If there are two different stereotypes declared by the bean that declare different default scopes, then there is no default scope and the bean must explicitly declare a scope. If it does not explicitly declare a scope, the container automatically
+detects the problem and treats it as a definition error, as defined in Section 12.4, "Problems detected automatically by the container".</text>
+    </assertion>
+
+    <assertion id="e">
+      <text>If a bean explicitly declares a scope, any default scopes declared by stereotypes are ignored.</text>
+    </assertion>
+  </section>
+
+  <section id="2.5" title="Bean EL names">
+
+    <assertion id="a">
+      <text>A valid bean EL name is a period-separated list of valid EL identifiers</text>
+    </assertion>
+  </section>
+
+  <section id="2.5.1" title="Declaring the bean EL name">
+
+    <assertion id="a">
+      <text>To specify the EL name of a bean, the |@javax.enterprise.inject.Named| annotation is applied to the bean class.</text>
+    </assertion>
+
+    <assertion id="b">
+      <text>To specify the EL name of a bean, the |@javax.enterprise.inject.Named| annotation is applied to the producer method.</text>
+    </assertion>
+
+    <assertion id="c">
+      <text>To specify the EL name of a bean, the |@javax.enterprise.inject.Named| annotation is applied to the producer field.</text>
+    </assertion>
+
+    <assertion id="d">
+    <text>If the |@Named| annotation does not specify the value member, the default EL name is assumed.</text>
+    </assertion>
+  </section>
+
+  <section id="2.5.2" title="Default bean EL names">
+
+    <assertion id="a">
+      <text>A default EL name must be assigned by the container when a bean class declares a |@Named| annotation and no EL name is explicitly specified by the value member.</text>
+    </assertion>
+
+    <assertion id="b">
+      <text>A default EL name must be assigned by the container when a producer method of a bean declares a |@Named| annotation and EL no name is explicitly specified by the value member.</text>
+    </assertion>
+
+    <assertion id="c">
+      <text>A default EL name must be assigned by the container when a producer field of a bean declares a |@Named| annotation and no EL name is explicitly specified by the value member.</text>
+    </assertion>
+
+    <assertion id="e">
+      <text>A default EL 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 an EL name.</text>
+    </assertion>
+  </section>
+
+  <section id="2.5.3" title="Beans with no EL name">
+
+    <assertion id="a">
+      <text>If |@Named| is not declared by the bean, nor by its stereotypes, a bean has no EL name.</text>
+    </assertion>
+  </section>
+
+  <section id="2.6" title="Policies">
+    <assertion id="a">
+      <text>A policy is a bean that must be explicitly declared in the in the beans.xml file if it should be available for lookup, injection or EL resolution.</text>
+    </assertion>
+  </section>
+
+  <section id="2.6.1" title="Declaring a policy">
+    <assertion id="a">
+      <text>A policy may be declared by annotating the bean class with the |@Policy| annotation.</text>
+    </assertion>
+
+    <assertion id="b">
+      <text>A policy may be declared by annotating a bean with a stereotype that declares a |@Policy| annotation.</text>
+    </assertion>
+
+    <assertion id="c">
+      <text>A policy may be declared by annotating a producer method with a stereotype that declares a |@Policy| annotation.</text>
+    </assertion>
+
+    <assertion id="d">
+      <text>A policy may be declared by annotating a producer field with a stereotype that declares a |@Policy| annotation.</text>
+    </assertion>
+
+    <assertion id="e">
+      <text>If a bean is a policy, all producer methods and fields of the bean are also policies.</text>
+    </assertion>
+  </section>
+
+  <section id="2.7" title="Stereotypes">
+
+    <assertion id="a">
+      <text>A stereotype may specify that all beans with the stereotype have defaulted bean EL names.</text>
+    </assertion>
+
+    <assertion id="aa">
+      <text>A stereotype may specify that all beans with the stereotype are policies.</text>
+    </assertion>
+
+    <assertion id="b" testable="false">
+      <text>A bean may declare zero stereotypes.</text>
+      <note>Not testable through API</note>
+    </assertion>
+
+    <assertion id="c">
+      <text>A bean may declare one stereotype.</text>
+    </assertion>
+
+    <assertion id="d">
+      <text>A bean may declare multiple stereotypes.</text>
+    </assertion>
+
+  </section>
+
+  <section id="2.7.1" title="Defining new stereotypes">
+    <assertion id="aa" testable="false">
+      <text>A beans stereotype is a Java annotation defined as |@Target({TYPE, METHOD, FIELD})|~, |@Target(TYPE)|, |@Target(METHOD)|, |@Target(FIELD)| or |@Target({METHOD, FIELD})| and |@Retention(RUNTIME)|~.</text>
+    </assertion>
+
+    <assertion id="ab" testable="false">
+      <text>A beans stereotype is a Java annotation defined as ~|@Target({TYPE, METHOD, FIELD})|,~ |@Target(TYPE)|~, |@Target(METHOD)|, |@Target(FIELD)| or |@Target({METHOD, FIELD})| and |@Retention(RUNTIME)|~.</text>
+    </assertion>
+
+    <assertion id="ac" testable="false">
+      <text>A beans stereotype is a Java annotation defined as ~|@Target({TYPE, METHOD, FIELD})|, |@Target(TYPE)|, |@Target(METHOD)|, ~|@Target(FIELD)| ~or |@Target({METHOD, FIELD})| and |@Retention(RUNTIME)|~.</text>
+    </assertion>
+
+    <assertion id="ad" testable="false">
+      <text>A beans stereotype is a Java annotation defined as ~|@Target({TYPE, METHOD, FIELD})|, |@Target(TYPE)|, |@Target(METHOD)|, |@Target(FIELD)| or~ |@Target({METHOD, FIELD})|~ and |@Retention(RUNTIME)|~.</text>
+    </assertion>
+
+    <assertion id="ae" testable="false">
+      <text>A beans stereotype is a Java annotation defined as ~|@Target({TYPE, METHOD, FIELD})|, |@Target(TYPE)|, |@Target(METHOD)|, |@Target(FIELD)| or |@Target({METHOD, FIELD})| and~ |@Retention(RUNTIME)|.</text>
+      <note>Non-runtime retention annotations are discarded by the compiler</note>
+    </assertion>
+
+    <assertion id="b">
+      <text>A stereotype may be declared by specifying the |@javax.enterprise.inject.stereotype.Stereotype| meta-annotation.</text>
+    </assertion>
+
+    <assertion id="da">
+      <text>A stereotype may not declare any binding annotation. If a stereotype declares a binding annotation, the container automatically detects the problem and treats it as a definition error, as defined in Section 12.4, "Problems detected automatically by the container".</text>
+    </assertion>
+  </section>
+
+  <section id="2.7.1.1" title="Declaring the default scope for a stereotype">
+    <assertion id="aa">
+      <text>A stereotype may declare at most one scope. ~If a stereotype declares more than one scope, the container automatically detects the problem and treats it as a definition error, as defined in Section 12.4, "Problems detected automatically by the
+container".~</text>
+    </assertion>
+    
+    <assertion id="ab">
+      <text>A stereotype may declare at most one scope. _If a stereotype declares more than one scope, the container automatically detects the problem and treats it as a definition error, as defined in Section 12.4, "Problems detected automatically by the
+container"._</text>
+    </assertion>
+    
+  </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 bindings.</text>
+    </assertion>
+
+    <assertion id="c">
+      <text>A stereotype may declare multiple interceptor bindings.</text>
+    </assertion>
+  </section>
+
+  <section id="2.7.1.3" title="Declaring a @Named stereotype">
+    <assertion id="aaa">
+      <text>A stereotype may declare an empty |@Named| annotation, which specifies that every bean with the stereotype has a defaulted name when a name is not explicitly specified by the bean.</text>
+    </assertion>
+
+    <assertion id="aab">
+      <text>If a stereotype declares a non-empty |@Named| annotation, the container automatically detects the problem and treats it as a definition error, as defined in Section 12.4, "Problems detected automatically by the container".</text>
+    </assertion>
+  </section>
+
+  <section id="2.7.1.4" title="Declaring a @Policy stereotype">
+    <assertion id="a">
+      <text>A stereotype may declare a @Policy annotation, which specifies that every bean with the stereotype is a policy.</text>
+    </assertion>
+  </section>
+
+  <section id="2.7.1.5" title="Stereotypes with additional stereotypes">
+    <assertion id="a">
+      <text>A stereotype may declare other stereotypes.</text>
+    </assertion>
+
+    <assertion id="b">
+      <text>Stereotype declarations are transitive - a stereotype declared by a second stereotype is inherited by all beans and other stereotypes that declare the second stereotype.</text>
+    </assertion>
+
+    <assertion id="c" testable="false">
+      <text>Stereotypes declared |@Target(TYPE)| may not be applied to stereotypes declared |@Target({TYPE, METHOD, FIELD})|, |@Target(METHOD)|, |@Target(FIELD)|, |@Target({METHOD, FIELD})|.</text>
+      <note>No definition of what happens if you do this</note>
+    </assertion>
+
+  </section>
+
+  <section id="2.7.2" title="Declaring the stereotypes for a bean">
+    <assertion id="a">
+      <text>Stereotype annotations may be applied to a bean class.</text>
+    </assertion>
+
+    <assertion id="b">
+      <text>Stereotype annotations may be applied to a producer method.</text>
+    </assertion>
+
+    <assertion id="c">
+      <text>Stereotype annotations may be applied to a producer field.</text>
+    </assertion>
+
+    <assertion id="db">
+    <text>The default scope declared by the stereotype may be overridden by the bean.</text>
+    </assertion>
+
+    <assertion id="e">
+      <text>Multiple stereotypes may be applied to the same bean.</text>
+    </assertion>
+  </section>
+
+  <section id="2.7.3" title="Built-in stereotypes">
+    <assertion id="aa" testable="false">
+      <text>The built-in stereotype |@javax.enterprise.inject.stereotype.Model| is intended for use with beans that define the model layer of an MVC web application architecture such as JSF.</text>
+      <note>Tested by API signature test</note>
+    </assertion>
+  </section>
+
+  <section id="3" title="Programming model">
+
+  </section>
+
+  <section id="3.1" title="Managed beans">
+    <assertion id="f0">
+      <text>If the bean class of a managed bean is annotated with both the |@Interceptor| and |@Decorator| stereotypes, the container automatically detects the problem and treats it as a definition error, as defined in Section 12.4, "Problems detected automatically by the container".</text>
+    </assertion>
+
+    <assertion id="fa">
+      <text>If a managed 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>
+    </assertion>
+
+    <assertion id="fba">
+      <text>If a managed bean with a public field declares any scope other than |@Dependent|, the container automatically detects the problem and treats it as a definition error, as defined in Section 12.4, "Problems detected automatically by the container".</text>
+    </assertion>
+
+    <assertion id="g">
+      <text>If the managed bean class is a generic type, it must have scope |@Dependent|. If a managed bean with a parameterized bean class declares any scope other than |@Dependent|, the container automatically detects the problem and treats it as a definition error, as defined in Section 12.4, "Problems detected automatically by the  container".</text>
+    </assertion>
+  </section>
+
+  <section id="3.1.1" title="Which Java classes are managed beans?">
+    <assertion id="b">
+      <text>A top-level Java class is not a managed bean if it is a non-static inner class.</text>
+    </assertion>
+
+    <assertion id="ba">
+      <text>A top-level Java class that is a static inner class can be a managed bean.</text>
+      <note>Implied as the inverse of assertion 3.1.1.b</note>
+    </assertion>
+
+    <assertion id="ca">
+      <text>A top-level Java class is not a managed bean if it is an abstract class, unless it is annotated |@Decorator|.</text>
+    </assertion>
+
+    <assertion id="cb">
+      <text>A top-level Java class is not a managed bean if it is an interface, unless it is annotated |@Decorator|.</text>
+    </assertion>
+
+    <assertion id="f">
+      <text>A top-level Java class is not a managed bean if it is annotated with any of the EJB component-defining annotations</text>
+    </assertion>
+
+    <assertion id="n">
+      <text>A top-level Java class is not a managed bean if it is declared as an EJB bean class in |ejb-jar.xml|</text>
+    </assertion>
+
+    <assertion id="p">
+      <text>A top-level Java class is only a managed bean if it has an appropriate constructor - a constructor with no parameters.</text>
+    </assertion>
+
+    <assertion id="q">
+      <text>A top-level Java class is only a managed bean if it has an appropriate constructor - a constructor annotated |@Initializer|.</text>
+    </assertion>
+  </section>
+
+  <section id="3.1.2" title="Bean types of a managed bean">
+    <assertion id="a">
+      <text>The set of bean types for a managed bean contains the bean class, every superclass and all interfaces it implements directly or indirectly.</text>
+    </assertion>
+  </section>
+
+  <section id="3.1.3" title="Declaring a managed bean">
+    <assertion id="a">
+      <text>A managed bean with a constructor that takes no parameters does not require any special annotations</text>
+    </assertion>
+
+    <assertion id="ba">
+      <text>A bean class may also specify a scope~, name, stereotypes and/or bindings~</text>
+    </assertion>
+
+    <assertion id="bb">
+      <text>A bean class may also specify a ~scope, ~name~, stereotypes and/or bindings~</text>
+    </assertion>
+
+    <assertion id="bd">
+      <text>A bean class may also specify ~a scope, name, ~stereotypes~ and/or bindings~</text>
+    </assertion>
+
+    <assertion id="be">
+      <text>A bean class may also specify ~a scope, name, stereotypes and/or ~bindings</text>
+    </assertion>
+
+    <assertion id="c">
+      <text>A managed bean may extend another managed bean</text>
+    </assertion>
+  </section>
+
+  <section id="3.1.4" title="Bean constructors">
+    <assertion id="a">
+      <text>When the container instantiates a managed bean, it calls the bean constructor. The bean constructor is a constructor of the bean class</text>
+    </assertion>
+  </section>
+
+  <section id="3.1.4.1" title="Declaring a bean constructor">
+    <assertion id="a">
+      <text>The bean constructor may be identified by annotating the constructor |@Initializer|</text>
+    </assertion>
+
+    <assertion id="ba">
+      <text>If a managed bean does not explicitly declare a constructor using |@Initializer|, the constructor that accepts no parameters is the bean constructor</text>
+      <note>Can't check implicit constructor</note>
+    </assertion>
+
+    <assertion id="ca">
+      <text>If a managed bean has more than one constructor annotated |@Initializer|, the container automatically detects the problem and treats it as a definition error, as defined in Section 12.4, "Problems detected automatically by the container".</text>
+    </assertion>
+
+    <assertion id="da">
+      <text>If a bean constructor has a parameter annotated |@Disposes|, the container automatically detects the problem and treats it as a definition error, as defined in Section 12.4, "Problems detected automatically by the container".</text>
+    </assertion>
+
+    <assertion id="ea">
+      <text>If a bean constructor has a parameter annotated |@Observes|, the container automatically detects the problem and treats it as a definition error, as defined in Section 12.4, "Problems detected automatically by the container".</text>
+    </assertion>
+  </section>
+
+  <section id="3.1.4.2" title="Bean constructor parameters">
+    <assertion id="b">
+      <text>A bean constructor may have any number of parameters.</text>
+    </assertion>
+
+    <assertion id="c">
+      <text>All parameters of a bean constructor are injection points.</text>
+    </assertion>
+  </section>
+
+  <section id="3.1.5" title="Specializing a managed bean">
+    <assertion id="aa">
+      <text>If a bean class of a managed bean X is annotated @Specializes, then the bean class of X must directly extend the bean class of another managed bean Y. Then X directly specializes Y, as defined in Section 4.3, "Specialization".</text>
+    </assertion>
+
+    <assertion id="da">
+      <text>If the bean class of X does not directly extend the bean class of another managed bean, the container automatically detects the problem and treats it as a definition error, as defined in Section 12.4, "Problems detected automatically by the container".</text>
+    </assertion>
+  </section>
+
+  <section id="3.1.6" title="Default name for a managed bean">
+    <assertion id="a">
+      <text>The default name for a managed bean is the unqualified class name of the bean class, after converting the first character to lower case</text>
+    </assertion>
+  </section>
+
+  <section id="3.2" title="Session beans">
+    <assertion id="aa" testable="false">
+      <text>A session bean is a bean that is implemented by a session bean with an EJB 3.x client view.  The basic lifecycle and semantics of an EJB session bean are defined by the EJB specification.</text>
+      <note>This is a reference to the EJB specification</note>
+    </assertion>
+
+    <assertion id="b">
+      <text>A stateless session bean must belong to the |@Dependent| pseudo-scope</text>
+    </assertion>
+
+    <assertion id="c">
+      <text>A singleton bean must belong to either the |@ApplicationScoped| scope or to the |@Dependent| pseudo-scope</text>
+    </assertion>
+
+    <assertion id="da">
+      <text>If a session bean specifies an illegal scope, the container automatically detects the problem and treats it as a definition error, as defined in Section 12.4, "Problems detected automatically by the container".</text>
+    </assertion>
+
+    <assertion id="e">
+      <text>A stateful session bean may have any scope.</text>
+      <note>No way of testing the real intent of this statement, so we check that a SFSB may be scoped</note>
+    </assertion>
+
+    <assertion id="f" testable="false">
+      <text>When a contextual instance of a session bean is obtained via the dependency injection service, the behavior of |SessionContext.getInvokedBusinessInterface()| is specific to the container implementation. Portable applications should not rely upon the value returned by this method.</text>
+      <note>This is describing non-portable behavior</note>
+    </assertion>
+
+    <assertion id="g">
+      <text>If the bean class of a session bean is annotated |@Interceptor|, the container automatically detects the problem and treats it as a definition error, as defined in Section 12.4, "Problems detected automatically by the container".</text>
+    </assertion>
+
+    <assertion id="h">
+      <text>If the bean class of a session bean is annotated |@Decorator|, the container automatically detects the problem and treats it as a definition error, as defined in Section 12.4, "Problems detected automatically by the container".</text>
+    </assertion>
+
+    <assertion id="i">
+      <text>If the session bean class is a generic type, it must have scope |@Dependent|. If a session bean with a parameterized bean class declares any scope other than |@Dependent|, the container automatically detects the problem and treats it as a
+definition error, as defined in Section 12.4, "Problems detected automatically by the container".</text>
+    </assertion>
+  </section>
+
+  <section id="3.2.1" title="EJB remove methods of session beans">
+    <assertion id="a">
+      <text>If a session bean is a stateful session bean, and the scope is |@Dependent|, the application may call any EJB remove method of an instance of the session bean.</text>
+    </assertion>
+
+    <assertion id="b">
+      <text>If a session bean is a stateful session bean, and the scope is not |@Dependent|, the application may not directly call any EJB remove method of any instance of the session bean</text>
+    </assertion>
+
+    <assertion id="c">
+      <text>If the application directly calls an EJB remove method of an instance of a session bean that is a stateful session bean and declares any scope other than |@Dependent|, an |UnsupportedOperationException| is thrown</text>
+    </assertion>
+
+    <assertion id="da">
+      <text>If the application directly calls an EJB remove method of an instance of a session bean that is a stateful session bean and has scope |@Dependent| then no parameters are passed to the method by the container.</text>
+    </assertion>
+
+    <assertion id="dba">
+      <text>If the application directly calls an EJB remove method of an instance of a session bean that is a stateful session bean and has scope |@Dependent| then the container ignores the instance instead of destroying it when |Contextual.destroy()| is called, as defined in Section 6.5, "Lifecycle of stateful session beans"</text>
+    </assertion>
+  </section>
+
+  <section id="3.2.2" title="Bean types of a session bean">
+    <assertion id="aa">
+      <text>The set of bean types for a session bean contains all local interfaces of the bean and their superinterfaces.</text>
+    </assertion>
+
+    <assertion id="ba">
+      <text>If the session bean has a bean class local view, the set of bean types contains the bean class and all superclasses.</text>
+    </assertion>
+
+    <assertion id="c">
+      <text>|java.lang.Object| is a bean type of every session bean</text>
+    </assertion>
+
+    <assertion id="d">
+      <text>Remote interfaces are not included in the set of bean types</text>
+    </assertion>
+  </section>
+
+  <section id="3.2.3" title="Declaring a session bean">
+    <assertion id="a">
+      <text>A session bean does not require any special annotations</text>
+    </assertion>
+
+    <assertion id="ba">
+      <text>A bean class may also specify a scope~, name, stereotypes and/or bindings~</text>
+    </assertion>
+
+    <assertion id="bb">
+      <text>A bean class may also specify a ~scope, ~name~, stereotypes and/or bindings~</text>
+    </assertion>
+
+    <assertion id="bd">
+      <text>A bean class may also specify ~a scope, name, ~stereotypes~ and/or bindings~</text>
+    </assertion>
+
+    <assertion id="be">
+      <text>A bean class may also specify ~a scope, name, stereotypes and/or ~bindings</text>
+    </assertion>
+
+    <assertion id="c">
+      <text>A session bean class may extend another bean class</text>
+    </assertion>
+  </section>
+
+  <section id="3.2.4" title="Specializing a session bean">
+    <assertion id="aa">
+      <text>If a bean class of a session bean X is annotated |@Specializes|, then the bean class of X must directly extend the bean class of another session bean Y. Then X directly specializes Y, as defined in Section 4.3 "Specialization".</text>
+    </assertion>
+
+    <assertion id="da">
+      <text>If the bean class of X does not directly extend the bean class of another session bean, the container automatically detects the problem and treats it as a definition error, as defined in Section 12.4, "Problems detected automatically by the container".</text>
+    </assertion>
+  </section>
+
+  <section id="3.2.5" title="Default name for a session bean">
+    <assertion id="a">
+      <text>The default name for a managed bean is the unqualified class name of the session bean class, after converting the first character to lower case.</text>
+    </assertion>
+  </section>
+
+  <section id="3.3" title="Producer methods">
+    <assertion id="aa">
+      <text>A producer method must be a non-abstract method of a managed bean class or session bean class.</text>
+    </assertion>
+
+    <assertion id="b">
+      <text>A producer method may be static.</text>
+    </assertion>
+
+    <assertion id="c">
+      <text>A producer method may be non-static.</text>
+    </assertion>
+
+    <assertion id="d">
+      <text>If the bean is a session bean, the producer method must be either a business method of the EJB or a static method of the bean class</text>
+    </assertion>
+
+    <assertion id="e">
+      <text>If a producer method sometimes returns a null value, then the producer method must have scope |@Dependent|.</text>
+    </assertion>
+
+    <assertion id="f">
+      <text>If a producer method returns a null value at runtime, and the producer method declares scope other than |@Dependent|, an |IllegalProductException| is thrown by the container. This restriction allows the container to use a client proxy, as defined in Section 5.5, "Client proxies".</text>
+    </assertion>
+
+    <assertion id="ga">
+      <text>If the producer method return type is a parameterized type, it must specify an actual type parameter or type variable for each type parameter.</text>
+    </assertion>
+
+    <assertion id="ha">
+      <text>If a producer method return type contains a wildcard type parameter the container automatically detects the problem and treats it as a definition error, as defined in Section 12.4, "Problems detected automatically by the container".</text>
+    </assertion>
+
+    <assertion id="iaa">
+      <text>If the producer method return type is a parameterized type with a type variable, it must have scope |@Dependent|.</text>
+    </assertion>
+    
+    <assertion id="iab">
+      <text>If a producer method with a parameterized return type with a type variable declares any scope other than |@Dependent|, the container automatically detects the problem and treats it as a definition error, as defined in Section 12.4, "Problems detected automatically by the container".</text>
+    </assertion>
+
+    <assertion id="ib">
+      <text>If a producer method return type is a type variable the container automatically detects the problem and treats it as a definition error, as defined in Section 12.4, "Problems detected automatically by the container".</text>
+    </assertion>
+
+    <assertion id="j">
+      <text>The application may call producer methods directly. However, if the application calls a producer method directly, no parameters will be passed to the producer method by the container; the returned object is not bound to any context; and its lifecycle is not managed by the container.</text>
+    </assertion>
+
+    <assertion id="k">
+      <text>A bean may declare multiple producer methods.</text>
+    </assertion>
+  </section>
+
+  <section id="3.3.1" title="Bean types of a producer method">
+    <assertion id="a">
+      <text>If the return type of a producer method is an interface, the set of bean types contains the return type, all interfaces it extends directly or indirectly and |java.lang.Object|</text>
+    </assertion>
+
+    <assertion id="ba">
+      <text>If a return type of a producer method is primitive ~or is a Java array type~, the set of bean types contains exactly two types: the method return type and |java.lang.Object|.</text>
+    </assertion>
+    
+    <assertion id="bb">
+      <text>If a return type of a producer method is ~primitive or is~ a Java array type, the set of bean types contains exactly two types: the method return type and |java.lang.Object|.</text>
+    </assertion>
+
+    <assertion id="c">
+      <text>If the return type of a producer method is a class, the set of bean types contains the return type, every superclass and all interfaces it implements directly or indirectly.</text>
+    </assertion>
+  </section>
+
+  <section id="3.3.2" title="Declaring a producer method">
+    <assertion id="a">
+      <text>A producer method may be declared by annotating a method with the |@javax.enterprise.inject.Produces| annotation</text>
+    </assertion>
+
+    <assertion id="ba">
+      <text>A producer method may specify a scope</text>
+    </assertion>
+
+    <assertion id="bb">
+      <text>A producer method may specify a name</text>
+    </assertion>
+
+    <assertion id="bd">
+      <text>A producer method may specify stereotypes</text>
+    </assertion>
+
+    <assertion id="be">
+      <text>A producer method may specify a binding type</text>
+    </assertion>
+
+    <assertion id="ca">
+      <text>If a producer method is annotated |@Initializer|, the container automatically detects the problem and treats it as a definition error, as defined in Section 12.4, "Problems detected automatically by the container".</text>
+    </assertion>
+
+    <assertion id="da">
+      <text>If a producer method has a parameter annotated |@Disposes|, the container automatically detects the problem and treats it as a definition error, as defined in Section 12.4, "Problems detected automatically by the container".</text>
+    </assertion>
+
+    <assertion id="ea">
+      <text>If a producer method has a parameter annotated |@Observes|, the container automatically detects the problem and treats it as a definition error, as defined in Section 12.4, "Problems detected automatically by the container".</text>
+    </assertion>
+
+    <assertion id="fa">
+      <text>If a non-static method of a session bean class is annotated |@Produces|, and the method is not a business method of the session bean, the container automatically detects the problem and treats it as a definition error, as defined in Section 12.4, "Problems detected automatically by the container".</text>
+    </assertion>
+
+    <assertion id="ga">
+      <text>Interceptors ~and decorators~ may not declare producer methods. If an interceptor ~or decorator~ has a method annotated |@Produces|, the container automatically detects the problem and treats it as a definition error, as defined in Section 12.4, "Problems detected automatically by the container".</text>
+    </assertion>
+    
+    <assertion id="gb">
+      <text>~Interceptors and~ decorators may not declare producer methods. If an ~interceptor or~ decorator has a method annotated |@Produces|, the container automatically detects the problem and treats it as a definition error, as defined in Section 12.4, "Problems detected automatically by the container".</text>
+    </assertion>
+  </section>
+
+  <section id="3.3.3" title="Producer method parameters">
+    <assertion id="b">
+      <text>A producer method may have any number of parameters.</text>
+    </assertion>
+
+    <assertion id="c">
+      <text>All producer method parameters are injection points.</text>
+    </assertion>
+  </section>
+
+  <section id="3.3.4" title="Specializing a producer method">
+    <assertion id="aa">
+      <text>If a producer method X is annotated |@Specializes|, then it must be non-static and directly override another producer method Y. Then X directly specializes Y, as defined in Section 4.3 "Specialization".</text>
+    </assertion>
+
+    <assertion id="ba">
+      <text>If a producer method is static, the container automatically detects the problem and treats it as a definition error, as defined in Section 12.4 "Problems detected automatically by the container".</text>
+    </assertion>
+
+    <assertion id="ca">
+      <text>If a producer method does not directly override another producer method, the container automatically detects the problem and treats it as a definition error, as defined in Section 12.4 "Problems detected automatically by the container".</text>
+    </assertion>
+  </section>
+
+  <section id="3.3.5" title="Disposer methods">
+    <assertion id="a">
+      <text>A disposer method must be a method of a managed bean class or session bean class.</text>
+    </assertion>
+
+    <assertion id="b">
+      <text>A disposer method may be static.</text>
+    </assertion>
+
+    <assertion id="c">
+      <text>A disposer method may be non-static.</text>
+    </assertion>
+
+    <assertion id="d">
+      <text>If the bean is a session bean, the disposer method must be a business method of the EJB or a static method of the bean class.</text>
+    </assertion>
+
+    <assertion id="e">
+      <text>A bean may declare multiple disposer methods.</text>
+    </assertion>
+  </section>
+
+  <section id="3.3.6" title="Disposed parameter of a disposer method">
+    <assertion id="a">
+      <text>Each disposer method must have exactly one disposed parameter, of the same type as the corresponding producer method return type.</text>
+    </assertion>
+
+    <assertion id="ba">
+      <text>When searching for disposer methods for a producer method, the container considers the type and bindings of the disposed parameter. If a disposed parameter resolves to a producer method declared by the same bean class, according to the rules of typesafe resolution defined in Section 5.3 "Typesafe resolution", the container must call this method when destroying an instance returned by that producer method.</text>
+    </assertion>
+
+    <assertion id="da">
+      <text>A disposer method may resolve to multiple producer methods declared by the bean class, in which case the container must call it when destroying any instance returned by any of these producer methods.</text>
+    </assertion>
+  </section>
+
+  <section id="3.3.7" title="Declaring a disposer method">
+    <assertion id="a">
+      <text>A disposer method may be declared by annotating a parameter |@javax.enterprise.inject.Disposes|. That parameter is the disposed parameter</text>
+    </assertion>
+
+    <assertion id="b0">
+      <text>Bindings may be declared by annotating the disposed parameter.</text>
+    </assertion>
+
+    <assertion id="ba">
+  <text>If a method has more than one parameter annotated |@Disposes|, the container automatically detects the problem and treats it as a definition error, as defined in Section 12.4 "Problems detected automatically by the container".</text>
+    </assertion>
+
+    <assertion id="ca">
+      <text>If a disposal method is annotated |@Produces|, the container automatically detects the problem and treats it as a definition error, as defined in Section 12.4 "Problems detected automatically by the container".</text>
+    </assertion>
+
+    <assertion id="da">
+      <text>If a disposal method is annotated |@Initializer|, the container automatically detects the problem and treats it as a definition error, as defined in Section 12.4 "Problems detected automatically by the container".</text>
+    </assertion>
+
+    <assertion id="ea">
+      <text>If a disposal method has a parameter annotated |@Observes|, the container automatically detects the problem and treats it as a definition error, as defined in Section 12.4 "Problems detected automatically by the container".</text>
+    </assertion>
+
+    <assertion id="fa">
+      <text>If a non-static method of a session bean class has a parameter annotated |@Disposes|, and the method is not a business method of the session bean, the container automatically detects the problem and treats it as a definition error, as defined in Section 12.4 "Problems detected automatically by the container".</text>
+    </assertion>
+  </section>
+
+  <section id="3.3.8" title="Disposer method parameters">
+    <assertion id="a">
+      <text>In addition to the disposed parameter, a disposer method may declare additional parameters, which may also specify bindings. These additional parameters are injection points.</text>
+    </assertion>
+  </section>
+
+  <section id="3.3.9" title="Disposer method resolution">
+    <assertion id="aa">
+      <text>When searching for disposer methods for a producer method, the container searches for disposer methods which are declared by the same bean class as the producer method, and for which the disposed parameter resolves to the producer method, according to the typesafe resolution algorithm defined in Section 5.3, "Typesafe resolution".</text>
+    </assertion>
+
+    <assertion id="ba">
+      <text>If there are multiple disposer methods for a single producer method, the container automatically detects the problem and treats it as a definition error, as defined in Section 12.4, "Problems detected automatically by the container".</text>
+    </assertion>
+
+    <assertion id="ca">
+      <text>If the disposed parameter of a disposer method does not resolve to any producer method declared by the bean class, the container automatically detects the problem and treats it as a definition error, as defined in Section 12.4, "Problems detected automatically by the container".</text>
+    </assertion>
+  </section>
+
+  <section id="3.3.10" title="Default name for a producer method">
+    <assertion id="a">
+      <text>The default name for a producer method is the method name, unless the method follows the JavaBeans property getter naming convention, in which case the default name is the JavaBeans property name</text>
+    </assertion>
+  </section>
+
+  <section id="3.4" title="Producer fields">
+    <assertion id="aa">
+      <text>A producer field must be a field of a managed bean class ~or session bean class~</text>
+      <note>Just test that a producer field on these works</note>
+    </assertion>
+    
+    <assertion id="ab">
+      <text>A producer field must be a field of a ~managed bean class or~ session bean class</text>
+      <note>Just test that a producer field on these works</note>
+    </assertion>
+
+    <assertion id="b">
+      <text>A producer field may be static.</text>
+    </assertion>
+
+    <assertion id="c">
+      <text>A producer field may be non-static.</text>
+    </assertion>
+    
+    <assertion id="ca">
+      <text> If the bean is a session bean, the producer field must be a static field of the bean class.</text>
+    </assertion>
+
+    <assertion id="d">
+      <text>If a producer field sometimes contains a null value when accessed, then the producer field must have scope |@Dependent|</text>
+    </assertion>
+
+    <assertion id="e">
+      <text>If a producer method contains a null value at runtime, and the producer field declares any other scope, an |IllegalProductException| is thrown by the container. This restriction allows the container to use a client proxy, as defined in Section 5.5, "Client proxies"</text>
+    </assertion>
+
+    <assertion id="fa">
+      <text>If the producer field type is a parameterized type, it must specify an _actual type parameter_ or type variable for each type parameter</text>
+    </assertion>
+    
+    <assertion id="fb">
+      <text>If the producer field type is a parameterized type, it must specify an actual type parameter or _type variable_ for each type parameter</text>
+    </assertion>
+
+    <assertion id="ga">
+      <text>If a producer field type contains a wildcard type parameter the container automatically detects the problem and treats it as a definition error, as defined in Section 12.4, "Problems detected automatically by the container".</text>
+    </assertion>
+
+    <assertion id="gb">
+      <text>If the producer field type is a parameterized type with a type variable, it must have scope |@Dependent|. If a producer field with a parameterized type with a type variable declares any scope other than |@Dependent|, the container automatically detects the problem and treats it as a definition error, as defined in Section 12.4, "Problems detected automatically by the container".</text>
+    </assertion>
+
+    <assertion id="ha">
+      <text>If a producer field type is a type variable the container automatically detects the problem and treats it as a definition error, as defined in Section 12.4, "Problems detected automatically by the container".</text>
+    </assertion>
+
+    <assertion id="i" testable="false">
+      <text>The application may access producer fields directly. However, if the application accesses a producer field directly, the returned object is not bound to any context; and its lifecycle is not managed by the container</text>
+      <note>This is a statement of intent</note>
+    </assertion>
+
+    <assertion id="j">
+      <text>A bean may declare multiple producer fields</text>
+    </assertion>
+  </section>
+
+  <section id="3.4.1" title="Bean types of a producer field">
+    <assertion id="a">
+      <text>The bean types of a producer field depend upon the field type.  If the field type is an interface, the set of bean types contains the field type, all interfaces it extends directly or indirectly and java.lang.Object</text>
+    </assertion>
+
+    <assertion id="ba">
+      <text>The bean types of a producer field depend upon the field type.  If a field type is primitive ~or is a Java array type,~ the set of bean types contains exactly two types: the field type and java.lang.Object</text>
+    </assertion>
+    
+    <assertion id="bb">
+      <text>The bean types of a producer field depend upon the field type.  If a field type is ~primitive or is~ a Java array type, the set of bean types contains exactly two types: the field type and java.lang.Object</text>
+    </assertion>
+
+    <assertion id="c">
+      <text>The bean types of a producer field depend upon the field type.  If the field type is a class, the set of bean types contains the field type, every superclass and all interfaces it implements directly or indirectly</text>
+    </assertion>
+  </section>
+
+  <section id="3.4.2" title="Declaring a producer field">
+    <assertion id="a">
+      <text>A producer field may be declared by annotating a field with the |@javax.enterprise.inject.Produces| annotation</text>
+    </assertion>
+
+    <assertion id="b">
+      <text>A producer field may specify a scope.</text>
+    </assertion>
+
+    <assertion id="c">
+      <text>A producer field may specify a name.</text>
+    </assertion>
+
+    <assertion id="e">
+      <text>A producer field may specify stereotypes.</text>
+    </assertion>
+
+    <assertion id="f">
+      <text>A producer field may specify bindings.</text>
+    </assertion>
+  </section>
+
+  <section id="3.4.3" title="Default name for a producer field">
+    <assertion id="a">
+      <text>The default name for a producer field is the field name</text>
+    </assertion>
+  </section>
+
+  <section id="3.5" title="Resources">
+    <assertion id="ka" testable="false">
+      <text>The container is not required to support resources with scope other than |@Dependent|.</text>
+      <note>Statement about non-portable behavior</note>
+    </assertion>
+
+    <assertion id="l" testable="false">
+      <text>A resource may not declare a bean EL name</text>
+      <note>Doesn't mention the consequences of this</note>
+    </assertion>
+  </section>
+
+  <section id="3.5.1" title="Declaring a resource">
+    <assertion id="aa" testable="false">
+      <text>A resource may be declared by specifying a Java EE component environment injection annotation as part of a producer field declaration.</text>
+      <note>Introductory text for the folloiwing assertions</note>
+    </assertion>
+
+    <assertion id="bb">
+      <text>For a Java EE resource, |@Resource| must be specified.</text>
+    </assertion>
+
+    <assertion id="cc">
+      <text>For a persistence context, |@PersistenceContext| must be specified.</text>
+    </assertion>
+
+    <assertion id="dd">
+      <text>For a persistence unit, |@PersistenceUnit| must be specified.</text>
+    </assertion>
+
+    <assertion id="ee">
+      <text>For a remote EJB, |@EJB| must be specified.</text>
+    </assertion>
+
+    <assertion id="ff">
+      <text>For a web service, |@WebServiceRef| must be specified.</text>
+    </assertion>
+
+    <assertion id="gg" testable="false">
+      <text>The injection annotation specifies the metadata needed to obtain the resources, entity manager, entity manager factory, remote EJB instance or web service reference from the component environment.</text>
+      <note>This is defined in other specs</note>
+    </assertion>
+
+    <assertion id="hh">
+      <text>The bean type and bindings of the resource are determined by the producer field declaration.</text>
+    </assertion>
+
+  </section>
+
+  <section id="3.5.2" title="Bean types of a resource">
+    <assertion id="a">
+      <text>The bean types of a resource are the declared type of the field declaration, together with |java.lang.Object|.</text>
+    </assertion>
+  </section>
+
+  <section id="3.6" title="Additional built-in beans">
+    <assertion id="a">
+      <text>A Java EE or embeddable EJB container must provide a bean with binding |@Current| and bean type |javax.transaction.UserTransaction|, allowing injection of a reference to the JTA |UserTransaction|.</text>
+    </assertion>
+
+    <assertion id="b">
+      <text>A Java EE or embeddable EJB container must provide a bean with binding |@Current| and bean type |javax.security.Principal|, allowing injection of a |Principal| representing the current caller identity.</text>
+    </assertion>
+
+    <assertion id="c">
+      <text>A Java EE or embeddable EJB container must provide a bean with binding |@Current| and bean type |javax.validation.ValidationFactory|, allowing injection of the default Bean Validation |ValidationFactory|.</text>
+    </assertion>
+
+    <assertion id="d">
+      <text>A Java EE or embeddable EJB container must provide a bean with binding |@Current| and bean type |javax.validation.Validator|, allowing injection of a |Validator| for the default Bean Validation |ValidationFactory|.</text>
+    </assertion>
+
+    <assertion id="e">
+      <text>If a Java EE component class has an injection point of type |UserTransaction| and binding |@Current|, and may not validly make use of the JTA |UserTransaction| according to the Java EE platform specification, the container automatically detects the problem and treats it as a definition error, as defined in Section 12.4, "Problems detected automatically by the container".</text>
+    </assertion>
+  </section>
+
+  <section id="3.7" title="Injected fields">
+    <assertion id="aa">
+      <text>An injected field is a non-static~, non-final~ field of a bean class.</text>
+    </assertion>
+
+    <assertion id="ab">
+      <text>An injected field is a ~non-static, ~non-final field of a bean class.</text>
+    </assertion>
+
+    <assertion id="ba">
+      <text>An injected field is a non-static, ~non-final~ field of any Java EE component class supporting injection.</text>
+    </assertion>
+
+    <assertion id="bb">
+      <text>An injected field is a ~non-static~, non-final field of any Java EE component class supporting injection.</text>
+    </assertion>
+
+    <assertion id="ea">
+      <text>Injected fields are initialized by the container before initializer methods are called, and before the |@PostConstruct| callback occurs.</text>
+    </assertion>
+
+    <assertion id="h">
+      <text>If a field is a producer field, it is not an injected field</text>
+    </assertion>
+  </section>
+
+  <section id="3.7.1" title="Declaring an injected field">
+    <assertion id="a">
+      <text>An injected field may be declared by annotating the field with any binding type.</text>
+    </assertion>
+  </section>
+
+  <section id="3.8" title="Initializer methods">
+    <assertion id="aa">
+      <text>An initializer method is a non-static method of a bean class.</text>
+    </assertion>
+
+    <assertion id="ca">
+      <text>An initializer method is a non-static method of any Java EE component class supporting injection.</text>
+    </assertion>
+
+    <assertion id="e">
+      <text>If the bean is a session bean, the initializer method is not required to be a business method of the session bean</text>
+    </assertion>
+
+    <assertion id="f">
+      <text>Method interceptors are never called when the container calls an initializer method</text>
+    </assertion>
+    
+    <assertion id="g">
+      <text>A bean class may declare multiple (or zero) initializer methods</text>
+    </assertion>
+
+    <assertion id="ea">
+      <text>Initializer methods are called by the container after injected fields are initialized, and before the |@PostConstruct| callback occurs.</text>
+    </assertion>
+
+    <assertion id="h" testable="false">
+      <text>The application may call initializer methods directly, but then no parameters will be passed to the method by the container</text>
+      <note>This is a statement of intent</note>
+    </assertion>
+  </section>
+
+  <section id="3.8.1" title="Declaring an initializer method">
+    <assertion id="a">
+      <text>An initializer method may be declared by annotating the method |@javax.enterprise.inject.Initializer|</text>
+    </assertion>
+
+    <assertion id="ab">
+      <text>If a generic method of a bean is annotated |@Initializer|, the container automatically detects the problem and treats it as a definition error, as defined in Section 12.4, "Problems detected automatically by the container".</text>
+    </assertion>
+
+    <assertion id="ba">
+      <text>If an initializer method is annotated |@Produces|, the container automatically detects the problem and treats it as a definition error, as defined in Section 12.4, "Problems detected automatically by the container".</text>
+    </assertion>
+
+    <assertion id="ca">
+      <text>If an initializer method has a parameter annotated |@Disposes|, the container automatically detects the problem and treats it as a definition error, as defined in Section 12.4, "Problems detected automatically by the container".</text>
+    </assertion>
+
+    <assertion id="da">
+      <text>If an initializer method has a parameter annotated |@Observes|, the container automatically detects the problem and treats it as a definition error, as defined in Section 12.4, "Problems detected automatically by the container".</text>
+    </assertion>
+
+  </section>
+
+  <section id="3.8.2" title="Initializer method parameters">
+    <assertion id="aa">
+      <text>An initializer method may have any number of parameters.</text>
+    </assertion>
+
+    <assertion id="b">
+      <text>All initializer method parameters are injection points.</text>
+    </assertion>
+  </section>
+
+  <section id="3.9" title="The default binding at injection points">
+    <assertion id="a">
+      <text>If an injection point declares no binding, the default binding |@Current| is assumed.</text>
+    </assertion>
+  </section>
+
+  <section id="3.10" title="Beans with the @New binding">
+    <assertion id="d">
+      <text>For each managed bean, a second bean exists which has the same bean class.</text>
+    </assertion>
+
+    <assertion id="e">
+      <text>For each managed bean, a second bean exists which has the same bean types.</text>
+    </assertion>
+
+    <assertion id="f">
+      <text>For each managed bean, a second bean exists which has the same bean constructor.</text>
+    </assertion>
+
+    <assertion id="g">
+      <text>For each managed bean, a second bean exists which has the same initializer methods.</text>
+    </assertion>
+
+    <assertion id="h">
+      <text>For each managed bean, a second bean exists which has the same injected fields.</text>
+    </assertion>
+
+    <assertion id="i">
+      <text>For each managed bean, a second bean exists which has the same interceptor bindings.</text>
+    </assertion>
+
+    <assertion id="j">
+      <text>For each session bean, a second bean exists which has the same bean class.</text>
+    </assertion>
+
+    <assertion id="k">
+      <text>For each session bean, a second bean exists which has the same bean types.</text>
+    </assertion>
+
+    <assertion id="l">
+      <text>For each session bean, a second bean exists which has the same bean constructor.</text>
+    </assertion>
+
+    <assertion id="m">
+      <text>For each session bean, a second bean exists which has the same initializer methods.</text>
+    </assertion>
+
+    <assertion id="n">
+      <text>For each session bean, a second bean exists which has the same injected fields.</text>
+    </assertion>
+
+    <assertion id="o">
+      <text>For each session bean, a second bean exists which has the same interceptor bindings.</text>
+    </assertion>
+
+    <assertion id="p">
+      <text>This second bean has scope |@Dependent|.</text>
+    </assertion>
+
+    <assertion id="r">
+      <text>This second bean has exactly one binding: |@javax.enterprise.inject.New(X.class)| where |x| is the bean class.</text>
+    </assertion>
+
+    <assertion id="s">
+      <text>This second bean has no bean EL name.</text>
+    </assertion>
+
+    <assertion id="t">
+      <text>This second bean has no stereotypes.</text>
+    </assertion>
+
+    <assertion id="u">
+      <text>This second bean has no observer methods.</text>
+    </assertion>
+
+    <assertion id="v">
+      <text>This second bean has no producer methods.</text>
+    </assertion>
+
+    <assertion id="w">
+      <text>This second bean has no producer fields.</text>
+    </assertion>
+
+    <assertion id="x">
+      <text>This second bean has no disposer methods.</text>
+    </assertion>
+
+    <assertion id="xb">
+      <text>This second bean is not a policy.</text>
+    </assertion>
+
+    <assertion id="z">
+      <text>When the binding |@New| is specified at an injection point and no value member is explicitly specified, the container defaults the value to the declared type of the injection point.</text>
+    </assertion>
+  </section>
+
+  <section id="4" title="Inheritance and specialization">
+
+  </section>
+
+  <section id="4.1" title="Inheritance of type-level metadata">
+    <group>
+      <text>Suppose a class X is extended directly or indirectly by the bean class of a managed bean or session bean Y.  If X is annotated with a binding type, stereotype or interceptor binding type Z then Y inherits the annotation if and only if Z declares the |@Inherited| meta-annotation and neither Y nor any intermediate class that is a subclass of X and a superclass of Y declares an annotation of type Z.</text>
+  
+      <assertion id="aa">
+        <text>Test binding type for directly extended managed bean annotated |@Inherited| is inherited.</text>
+      </assertion>
+      
+      <assertion id="aaa">
+        <text>Test binding type for directly extended managed bean not annotated |@Inherited| is not inherited.</text>      
+      </assertion>
+
+      <assertion id="ab">
+        <text>Test stereotype for directly extended managed bean annotated |@Inherited| is inherited.</text>
+      </assertion>
+      
+      <assertion id="aba">
+        <text>Test stereotype for directly extended managed bean not annotated |@Inherited| is not inherited.</text>      
+      </assertion>
+
+      <assertion id="ad">
+        <text>Test interceptor binding type for directly extended managed bean annotated |@Inherited| is inherited.</text>
+      </assertion>
+      
+      <assertion id="ada">
+        <text>Test interceptor binding type for directly extended managed bean not annotated |@Inherited| is not inherited.</text>
+      </assertion>
+      
+      <assertion id="ag">
+        <text>Test binding type for indirectly extended managed bean annotated |@Inherited| is inherited.</text>      
+      </assertion>
+      
+      <assertion id="aga">
+        <text>Test binding type for indirectly extended managed bean not annotated |@Inherited| is not inherited.</text>            
+      </assertion>
+
+      <assertion id="ah">
+        <text>Test stereotype for indirectly extended managed bean annotated |@Inherited| is inherited.</text>
+      </assertion>
+      
+      <assertion id="aha">
+        <text>Test stereotype for indirectly extended managed bean not annotated |@Inherited| is not inherited.</text>
+      </assertion>
+
+      <assertion id="aj">
+        <text>Test interceptor binding type for indirectly extended managed bean annotated |@Inherited| is inherited.</text>
+      </assertion>
+      
+      <assertion id="aja">
+        <text>Test interceptor binding type for indirectly extended managed bean not annotated |@Inherited| is not inherited.</text>
+      </assertion>
+      
+      <assertion id="al">
+        <text>Test binding type for directly extended session bean annotated |@Inherited| is inherited.</text>
+      </assertion>
+      
+      <assertion id="ala">
+        <text>Test binding type for directly extended session bean not annotated |@Inherited| is not inherited.</text>
+      </assertion>
+
+      <assertion id="am">
+        <text>Test stereotype for directly extended session bean annotated |@Inherited| is inherited.</text>      
+      </assertion>
+      
+      <assertion id="ama">
+        <text>Test stereotype for directly extended session bean not annotated |@Inherited| is not inherited.</text>
+      </assertion>
+
+      <assertion id="an">
+        <text>Test interceptor binding type for directly extended session bean annotated |@Inherited| is inherited.</text>      
+      </assertion>
+      
+      <assertion id="ana">
+        <text>Test interceptor binding type for directly extended session bean not annotated |@Inherited| is not inherited.</text>      
+      </assertion>      
+
+      <assertion id="ap">
+        <text>Test binding type for indirectly extended session bean annotated |@Inherited| is inherited.</text>
+      </assertion>
+
+      <assertion id="apa">
+        <text>Test binding type for indirectly extended session bean not annotated |@Inherited| is not inherited.</text>            
+      </assertion>      
+
+      <assertion id="aq">
+        <text>Test stereotype for indirectly extended session bean annotated |@Inherited| is inherited.</text>
+      </assertion>
+
+      <assertion id="aqa">
+        <text>Test stereotype for indirectly extended session bean not annotated |@Inherited| is not inherited.</text>
+      </assertion>
+      
+      <assertion id="ar">
+        <text>Test interceptor binding type for indirectly extended session bean annotated |@Inherited| is inherited.</text>
+      </assertion>
+      
+      <assertion id="ara">
+        <text>Test interceptor binding type for indirectly extended session bean not annotated |@Inherited| is not inherited.</text>
+      </assertion>      
+    </group>
+
+    <group>
+      <text>Suppose a class X is extended directly or indirectly by the bean class of a managed bean or session bean Y.  If X is annotated with a scope type Z then Y inherits the annotation if and only if Z declares the |@Inherited| meta-annotation and neither Y nor any intermediate class that is a subclass of X and a superclass of Y declares a scope type.</text>
+      
+      <assertion id="ba">
+        <text>Test scope type for directly extended managed bean annotated |@Inherited| is inherited.</text>
+      </assertion>
+      
+      <assertion id="baa">
+        <text>Test scope type for directly extended managed bean not annotated |@Inherited| is not inherited.</text>
+      </assertion>      
+
+      <assertion id="bc">
+        <text>Test scope type for indirectly extended managed bean annotated |@Inherited| is inherited.</text>
+      </assertion>
+
+      <assertion id="bca">
+        <text>Test scope type for indirectly extended managed bean not annotated |@Inherited| is not inherited.</text>
+      </assertion>
+      
+      <assertion id="be">
+        <text>Test scope type for directly extended session bean annotated |@Inherited| is inherited.</text>      
+      </assertion>
+      
+      <assertion id="bea">
+        <text>Test scope type for directly extended session bean not annotated |@Inherited| is not inherited.</text>
+      </assertion>      
+
+      <assertion id="bh">
+        <text>Test scope type for indirectly extended session bean annotated |@Inherited| is inherited.</text>
+      </assertion>
+      
+      <assertion id="bha">
+        <text>Test scope type for indirectly extended session bean not annotated |@Inherited| is not inherited.</text>
+      </assertion>      
+    </group>
+
+    <assertion id="hhh">
+      <text>For class X which is extended _directly_ by the bean class of a _managed_ bean Y, a scope type explicitly declared by X and inherited by Y from X takes precedence over default scopes of stereotypes declared or inherited by Y.</text>
+    </assertion>
+    
+    <assertion id="hhi">
+      <text>For class X which is extended _indirectly_ by the bean class of a _managed_ bean Y, a scope type explicitly declared by X and inherited by Y from X takes precedence over default scopes of stereotypes declared or inherited by Y.</text>
+    </assertion>    
+    
+    <assertion id="hhj">
+      <text>For class X which is extended _directly_ by the bean class of a _session_ bean Y, a scope type explicitly declared by X and inherited by Y from X takes precedence over default scopes of stereotypes declared or inherited by Y.</text>
+    </assertion>
+    
+    <assertion id="hhk">
+      <text>For class X which is extended _indirectly_ by the bean class of a _session_ bean Y, a scope type explicitly declared by X and inherited by Y from X takes precedence over default scopes of stereotypes declared or inherited by Y.</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>
+    </assertion>
+
+    <assertion id="j" testable="false">
+      <text>For annotations defined by the bean specification, all built-in _stereotypes_ are declared |@Inherited|</text>
+      <note>sigtest</note>
+    </assertion>
+
+    <assertion id="k" testable="false">
+      <text>For annotations defined by the bean specification, _no built-in binding type is declared |@Inherited|_</text>
+      <note>sigtest</note>
+    </assertion>
+
+    <assertion id="m" testable="false">
+      <text>The |@Named| annotation is not declared |@Inherited| and bean EL names are not inherited unless specialization is used</text>
+      <note>sigtest</note>
+    </assertion>
+
+  </section>
+
+  <section id="4.2" title="Inheritance of member-level metadata">
+
+    <assertion id="aa">
+      <text>For class X which is extended _directly_ by the bean class of a _managed_ bean Y, if X declares an injected field x then Y inherits x.</text>
+    </assertion>
+
+    <assertion id="ab">
+      <text>For class X which is extended _directly_ by the bean class of a _session_ bean Y, if X declares an injected field x then Y inherits x.</text>
+    </assertion>
+
+    <assertion id="ac">
+      <text>For class X which is extended _indirectly_ by the bean class of a _managed_ bean Y, if X declares an injected field x then Y inherits x.</text>
+    </assertion>
+
+    <assertion id="ad">
+      <text>For class X which is extended _indirectly_ by the bean class of a _session_ bean Y, if X declares an injected field x then Y inherits x.</text>
+    </assertion>
+
+    <assertion id="baa">
+      <text>For class X which is extended _directly_ by the bean class of a _managed_ bean Y, if X declares a _|@PostConstruct|_ method x() then Y inherits x() if and only if Y does not override the method x()</text>
+    </assertion>
+
+    <assertion id="bab">
+      <text>For class X which is extended _directly_ by the bean class of a _session_ bean Y, if X declares a _|@PostConstruct|_ method x() then Y inherits x() if and only if Y does not override the method x()</text>
+    </assertion>
+
+    <assertion id="bac">
+      <text>For class X which is extended _indirectly_ by the bean class of a _managed_ bean Y, if X declares a _|@PostConstruct|_ method x() then Y inherits x() if and only if neither Y nor any intermediate class that is a subclass of X and a superclass of Y overrides the method x()</text>
+    </assertion>
+
+    <assertion id="bad">
+      <text>For class X which is extended _indirectly_ by the bean class of a _session_ bean Y, if X declares a _|@PostConstruct|_ method x() then Y inherits x() if and only if neither Y nor any intermediate class that is a subclass of X and a superclass of Y overrides the method x()</text>
+    </assertion>
+
+    <assertion id="bba">
+      <text>For class X which is extended _directly_ by the bean class of a _managed_ bean Y, if X declares a _|@PreDestroy|_ method x() then Y inherits x() if and only if Y does not override the method x()</text>
+    </assertion>
+
+    <assertion id="bbb">
+      <text>For class X which is extended _directly_ by the bean class of a _session_ bean Y, if X declares a _|@PreDestroy|_ method x() then Y inherits x() if and only if Y does not override the method x()</text>
+    </assertion>
+
+    <assertion id="bbc">
+      <text>For class X which is extended _indirectly_ by the bean class of a _managed_ bean Y, if X declares a _|@PreDestroy|_ method x() then Y inherits x() if and only if neither Y nor any intermediate class that is a subclass of X and a superclass of Y overrides the method x()</text>
+    </assertion>
+
+    <assertion id="bbd">
+      <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="da">
+      <text>For class X which is extended _directly_ by the bean class of a _managed_ bean Y, if X declares a _non-static producer method_ x() then Y does not inherit this method unless Y is explicitly declared to specialize X</text>
+    </assertion>
+
+    <assertion id="db">
+      <text>For class X which is extended _directly_ by the bean class of a _managed_ bean Y, if X declares a _non-static disposer method_ x() then Y does not inherit this method unless Y is explicitly declared to specialize X</text>
+    </assertion>
+
+    <assertion id="dc">
+      <text>For class X which is extended _directly_ by the bean class of a _managed_ bean Y, if X declares a _non-static observer method_ x() then Y does not inherit this method unless Y is explicitly declared to specialize X</text>
+    </assertion>
+
+    <assertion id="dd">
+      <text>For class X which is extended _directly_ by the bean class of a _session_ bean Y, if X declares a _non-static producer method_ x() then Y does not inherit this method unless Y is explicitly declared to specialize X</text>
+    </assertion>
+
+    <assertion id="de">
+      <text>For class X which is extended _directly_ by the bean class of a _session_ bean Y, if X declares a _non-static disposer method_ x() then Y does not inherit this method unless Y is explicitly declared to specialize X</text>
+    </assertion>
+
+    <assertion id="df">
+      <text>For class X which is extended _directly_ by the bean class of a _session_ bean Y, if X declares a _non-static observer method_ x() then Y does not inherit this method unless Y is explicitly declared to specialize X</text>
+    </assertion>
+
+    <assertion id="dg">
+      <text>For class X which is extended _indirectly_ by the bean class of a _managed_ bean Y, if X declares a _non-static producer method_ x() then Y does not inherit this method unless Y is explicitly declared to specialize X</text>
+    </assertion>
+
+    <assertion id="dh">
+      <text>For class X which is extended _indirectly_ by the bean class of a _managed_ bean Y, if X declares a _non-static disposer method_ x() then Y does not inherit this method unless Y is explicitly declared to specialize X</text>
+    </assertion>
+
+    <assertion id="di">
+      <text>For class X which is extended _indirectly_ by the bean class of a _managed_ bean Y, if X declares a _non-static observer method_ x() then Y does not inherit this method unless Y is explicitly declared to specialize X</text>
+    </assertion>
+
+    <assertion id="dj">
+      <text>For class X which is extended _indirectly_ by the bean class of a _session_ bean Y, if X declares a _non-static producer method_ x() then Y does not inherit this method unless Y is explicitly declared to specialize X</text>
+    </assertion>
+
+    <assertion id="dk">
+      <text>For class X which is extended _indirectly_ by the bean class of a _session_ bean Y, if X declares a _non-static disposer method_ x() then Y does not inherit this method unless Y is explicitly declared to specialize X</text>
+    </assertion>
+
+    <assertion id="dl">
+      <text>For class X which is extended _indirectly_ by the bean class of a _session_ bean Y, if X declares a _non-static observer method_ x() then Y does not inherit this method unless Y is explicitly declared to specialize X</text>
+    </assertion>
+
+    <assertion id="ea">
+      <text>For class X which is extended _directly_ by the bean class of a _managed_ bean Y, if X declares a _non-static producer field_ x then Y does not inherit this field unless Y is explicitly declared to specialize X.</text>
+      <note>We don't test session beans, as they can't have non-static producer fields</note>
+    </assertion>
+
+    <assertion id="ec">
+      <text>For class X which is extended _indirectly_ by the bean class of a _managed_ bean Y, if X declares a _non-static producer field_ x then Y does not inherit this field unless Y is explicitly declared to specialize X.</text>
+      <note>We don't test session beans, as they can't have non-static producer fields</note>
+    </assertion>
+
+    <assertion id="f">
+      <text>If X is a generic type, and an injection point declared by X is inherited by Y, and the declared type of the injection point contains type variables declared by X, the type of the injection point inherited in Y is the declared type, after substitution of actual type arguments declared by Y or any intermediate class that is a subclass of X and a superclass of Y.</text>
+    </assertion>
+
+    <assertion id="g">
+      <text>If X is a generic type, and a producer method declared by X is inherited by Y, and the declared type of the producer method contains type variables declared by X, the type of the producer method inherited in Y is the declared type, after substitution of actual type arguments declared by Y or any intermediate class that is a subclass of X and a superclass of Y.</text>
+    </assertion>
+
+    <assertion id="h">
+      <text>If X is a generic type, and a producer field declared by X is inherited by Y, and the declared type of the producer field contains type variables declared by X, the type of the producer field inherited in Y is the declared type, after substitution of actual type arguments declared by Y or any intermediate class that is a subclass of X and a superclass of Y.</text>
+    </assertion>
+
+    <assertion id="i">
+      <text>If X is a generic type, and a disposer method declared by X is inherited by Y, and the declared type of the disposed parameter contains type variables declared by X, the type of the disposed parameter inherited in Y is the declared type, after substitution of actual type arguments declared by Y or any intermediate class that is a subclass of X and a superclass of Y.</text>
+    </assertion>
+
+    <assertion id="j">
+      <text>If X is a generic type, and an observer method declared by X is inherited by Y, and the declared type of the event parameter contains type variables declared by X, the type of the event parameter inherited in Y is the declared type, after substitution of actual type arguments declared by Y or any intermediate class that is a subclass of X and a superclass of Y.</text>
+    </assertion>
+  </section>
+
+  <section id="4.3" title="Specialization">
+    <assertion id="a" testable="false">
+      <text>If two beans both support a certain bean type, and share at least one binding, then they are both eligible for injection to any injection point with that declared type and binding.</text>
+    </assertion>
+
+    <assertion id="ca">
+      <text>When an enabled bean specializes a second bean, we can be certain that the second bean is never instantiated or called by the container.</text>
+    </assertion>
+    
+    <assertion id="cb">
+      <text>When an enabled bean specializes a second bean, we can be certain ~that the second bean is never instantiated or called by the container.~ Even if the second bean defines a producer or observer method, the method will be called upon an instance of the first bean. </text>
+    </assertion>
+
+  </section>
+
+  <section id="4.3.1" title="Direct and indirect specialization">
+    <assertion id="ia">
+      <text>A bean X is said to specialize another bean Y if X directly specializes Y.</text>
+    </assertion>
+
+    <assertion id="ib">
+      <text>A bean X is said to specialize another bean Y if a bean Z exists, such that X directly specializes Z and Z specializes Y.</text>
+    </assertion>
+
+    <assertion id="j">
+      <text>A bean X that specializes bean Y will include all bindings of Y, together with all bindings declared explicitly by X.</text>
+    </assertion>
+
+    <assertion id="k">
+      <text>A bean X that specializes bean Y will have the same name as Y if Y has a name.</text>
+    </assertion>
+
+    <group>
+      <text>If X declares a name explicitly, using @Named, the container automatically detects the problem and treats it as a definition error, as defined in Section 12.4, "Problems detected automatically by the container".</text>
+            
+      <assertion id="la">
+        <text>Test that a specializing producer method with a name throws a deployment exception.</text>
+      </assertion>
+      
+      <assertion id="lb">
+        <text>Test that a specializing managed bean with a name throws a deployment exception.</text>
+      </assertion>
+      
+      <assertion id="lc">
+        <text>Test that a specializing enterprise bean with a name throws a deployment exception.</text>
+      </assertion>            
+    </group>
+
+    <assertion id="m">
+      <text>X must have all the bean types of Y. If X does not support some bean type of Y, the container automatically detects the problem and treats it as a definition error, as defined in Section 12.4, "Problems detected automatically by the container".</text>
+    </assertion>
+  </section>
+
+  <section id="4.3.2" title="Most specialized enabled bean for a bean">
+    <group>
+      <text>Non-static producer methods, producer fields, disposal methods and observer methods of a bean are invoked upon an instance of the most specialized enabled bean that specializes the bean, as defined by Section 5.6.6, "Invocation of producer or disposal methods", Section 5.6.7, "Access to producer field values" and Section 5.6.8, "Invocation of observer methods".</text>
+            
+      <assertion id="aa">
+        <text>Test with non-static producer method on an enterprise bean.</text>
+      </assertion>
+      
+      <assertion id="ab">
+        <text>Test with non-static producer method on a managed bean.</text>
+      </assertion>      
+        
+      <assertion id="b">
+        <text>Test with non-static producer field.</text>
+      </assertion>       
+      
+      <assertion id="c">
+        <text>Test with non-static disposal method.</text>
+      </assertion>
+      
+      <assertion id="d">
+        <text>Test with non-static observer method.</text>
+      </assertion>
+    </group>
+
+  </section>
+
+  <section id="4.3.3" title="Inconsistent specialization">
+    <assertion id="c">
+      <text>If, for an enabled bean X that directly specializes a second bean Y, there is another enabled bean that directly specializes Y, we say that inconsistent specialization exists.  The container automatically detects inconsistent specialization and treats it as a deployment problem, as defined in Section 12.4, "Problems detected automatically by the container".</text>
+    </assertion>
+
+    <assertion id="d">
+      <text>If, for an enabled bean X that directly specializes a second bean Y, there is an injection point that matches Y and not X, according to the typesafe resolution algorithm defined in Section 5.3 "Typesafe resolution", we say that inconsistent specialization exists.  The container automatically detects inconsistent specialization and treats it as a deployment problem, as defined in Section 12.4, "Problems detected automatically by the container".</text>
+    </assertion>
+  </section>
+
+  <section id="5" title="Dependency injection, lookup, and EL">
+
+    <assertion id="b">
+      <text>The container is required to support circularities in the bean dependency graph.</text>
+      <note>The RI has unit tests for this atm</note>
+    </assertion>
+  </section>
+
+  <section id="5.1" title="Inter-module accessibility in Java EE">
+    <group>
+      <text>Beans packaged in a certain Java EE _module or library are available for injection, lookup and EL resolution to classes and JSP/JSF pages packaged in some other Java EE module or library if and only if the first module or library is required to be accessible to the other module or library by the Java EE platform specification.</text>
+            
+      <assertion id="aa">
+        <text>Test with injection.</text>
+      </assertion>
+      
+      <assertion id="ab">
+        <text>Test with lookup.</text>
+      </assertion>
+      
+      <assertion id="ac">
+        <text>Test with EL resolution.</text>
+      </assertion>
+    </group>
+
+    <assertion id="b">
+      <text>For a custom implementation of the |Bean| interface defined in Section 11.1, "The Bean interface", the container calls |getBeanClass()| to determine the bean class of the bean.</text>
+    </assertion>
+    
+    <assertion id="c">
+      <text>For a custom implementation of |Bean|, defined in Section 11.2, "The Producer and InjectionTarget interfaces", the container calls |InjectionPoint.getMember()| and then |Member.getDeclaringClass()| to determine the class that declares an injection point.</text>
+    </assertion>
+
+    <assertion id="d">
+      <text>For a custom implementation of |InjectionTarget|, defined in Section 11.2, "The Producer and InjectionTarget interfaces", the container calls |InjectionPoint.getMember()| and then |Member.getDeclaringClass()| to determine the class that declares an injection point.</text>
+    </assertion>
+
+  </section>
+
+  <section id="5.2" title="Policy enablement">
+    <assertion id="a">
+      <text>A policy is never available for injection, lookup or EL resolution in a Java EE module or library that is not a bean deployment archive (a module or library with no beans.xml file).</text>
+    </assertion>
+    
+    <assertion id="b">
+      <text>Nor is a policy available for injection, lookup or EL resolution in every bean deployment archive. A policy must be explicitly enabled in every bean deployment archive in which the policy should be available for injection, lookup and EL resolution.</text>
+    </assertion>
+
+    <assertion id="c">
+      <text>By default, a bean deployment archive has no enabled policies. A policy must be explicitly declared using the &lt;policies&gt; element of the |beans.xml| file of the bean deployment archive.</text>
+    </assertion>
+
+    <assertion id="d" testable="false">
+      <text>The &lt;policies&gt; element contains a list of bean classes and stereotypes. </text>
+    </assertion>
+
+    <group>
+      <text>A policy is enabled for the bean deployment archive if the policy is a managed bean or session bean and the bean class of the bean is listed.</text>
+            
+      <assertion id="ea">
+        <text>Test with a managed bean.</text>
+      </assertion>
+      
+      <assertion id="eb">
+        <text>Test with a session bean.</text>
+      </assertion>
+    </group>
+
+    <group>
+	    <text>A policy is enabled for the bean deployment archive if the policy is a producer method, field or resource, and the bean class that declares the method or field is listed.</text>
+	   
+	   <assertion id="fa">
+       <text>Test for enablement of a producer method and field.</text>
+     </assertion>
+       
+	   <assertion id="fb">
+       <text>Test for enablement of a resource.</text>
+     </assertion>
+  	</group>
+
+    <assertion id="g">
+      <text>A policy is enabled for the bean deployment archive if any |@Policy| stereotype of the policy is listed.</text>
+    </assertion>
+
+    <assertion id="h">
+      <text>Each child &lt;class&gt; element must specify the name of a policy bean class.  If there is no class with the specified name, or if the class with the specified name is not a policy bean class, the container automatically detects the problem and treats it as a deployment problem, as defined in Section 12.4, "Problems detected automatically by the container".</text>
+    </assertion>
+
+    <assertion id="i">
+      <text>Each child &lt;stereotype&gt; element must specify the name of a |@Policy| stereotype annotation. If there is no annotation with the specified name, or the annotation is not a |@Policy| stereotype, the container automatically detects the problem and treats it as a deployment problem, as defined in Section 12.4, "Problems detected automatically by the container".</text>
+    </assertion>
+
+    <assertion id="j">
+      <text>If the same type is listed twice under the &lt;policies&gt; element, the container automatically detects the problem and treats it as a deployment problem, as defined in Section 12.4, "Problems detected automatically by the container".</text>
+    </assertion>
+
+    <assertion id="k">
+      <text>For a custom implementation of the |Bean| interface defined in Section 11.1, "The Bean interface", the container calls |isPolicy()| to determine whether the bean is a policy, and |getBeanClass()| and |getStereotypes()| to determine whether a policy is enabled in a certain bean deployment archive.</text>
+    </assertion>
+
+    <assertion id="l" testable="false">
+      <text>A bean is said to be enabled if it is not a policy, or if it is enabled in at least one bean deployment archive.</text>
+    </assertion>
+  </section>
+
+  <section id="5.3" title="Typesafe resolution">
+    <assertion id="hq">
+      <text>When resolving beans that are eligible for injection to an injection point, the container identifies the set of matching beans which are not _interceptors_ or decorators and which have a bean type that matches the required type.</text>
+    </assertion>
+    
+    <assertion id="hb">
+      <text>When resolving beans that are eligible for injection to an injection point, the container identifies the set of matching beans which are not interceptors or _decorators_ and which have a bean type that matches the required type.</text>
+    </assertion>
+    
+    <assertion id="hc">
+      <text>When resolving beans that are eligible for injection to an injection point, the container identifies the set of matching beans which are not interceptors or decorators and which have a _bean type that matches the required type_.</text>
+    </assertion>
+    
+    <group>
+      <text>When resolving beans that are eligible for injection to an injection point, the container identifies the set of matching beans which are not interceptors or decorators and which have a bean type that matches the required type. For this purpose, primitive types are considered to match their corresponding wrapper types in |java.lang| and array types are considered to match only if their element types are identical. Parameterized and raw types are considered to match if they are identical or if the bean type is assignable to the required type, as defined in Section 5.3.3, "Assignability of raw and parameterized types".</text>
+              
+      <assertion id="i">
+        <text>Test with a primitive type.</text>
+      </assertion>
+
+      <assertion id="j">
+        <text>Test with an array type.</text>
+      </assertion>
+
+      <assertion id="ka">
+        <text>Test with a parameterized type.</text>
+      </assertion>
+    
+      <assertion id="kb">
+        <text>Test with a raw type.</text>
+      </assertion>
+    </group>
+
+    <group>
+      <text>When resolving beans that are eligible for injection to an injection point, the container identifies the set of matching beans which are not interceptors or decorators and which have the required bindings. If no required bindings were explicitly specified, the container assumes the required binding |@Current|. The container narrows the set of matching beans to just those where for each required binding, the bean declares a matching binding with (a) the same type and (b) the same annotation member value for each member which is not annotated |@javax.enterprise.inject.NonBinding| (see Section 5.3.5, "Binding annotations with members").</text>
+            
+      <assertion id="la">
+        <text>Test with beans with required bindings.</text>
+      </assertion>
+      
+      <assertion id="lb">
+        <text>Test with beans without required bindings.</text>
+      </assertion>
+      
+      <assertion id="lc">
+        <text>Test with matching beans with matching binding with same type.</text>
+      </assertion>
+      
+      <assertion id="ld">
+        <text>Test with matching beans with matching binding with same annotation member value for each member which is not annotated |@javax.enterprise.inject.NonBinding|.</text>
+      </assertion>
+    </group>
+    
+    <assertion id="m">
+      <text>When resolving beans that are eligible for injection to an injection point, the container identifies the set of matching beans which are not interceptors or decorators.  In a Java EE or servlet container, the bean class is required to be accessible to the class that declares the injection point, according to the class loading requirements of the Java EE platform and Java Servlet specifications.</text>
+    </assertion>
+
+    <group>
+      <text>When resolving beans that are eligible for injection to an injection point, the container identifies the set of matching beans which are not interceptors or decorators and which are not a policy, or is an enabled policy of the bean deployment archive of the class that declares the injection point. For a custom implementation of the |Bean| interface defined in Section 11.1, "The Bean interface", the container calls |getTypes()| and |getBindings()| to determine the bean types and bindings.</text>
+            
+      <assertion id="na">
+        <text>Test |getTypes()| determines bean types.</text>
+      </assertion>
+      
+      <assertion id="nb">
+        <text>Test |getBindings()| determines bindings.</text>
+      </assertion>
+    </group>
+  </section>
+
+  <section id="5.3.1" title="Unsatisfied and ambiguous dependencies">
+    <assertion id="aa">
+      <text>The container must validate all injection points of all enabled beans when the application is initialized to ensure that there are no unsatisfied or ambiguous dependencies. If an unsatisfied or ambiguous dependency exists, the container automatically detects the problem and treats it as a deployment problem, as defined in Section 12.4, "Problems detected automatically by the container".</text>
+      <note>These need expanding out - one for each assertion that results in an exception in 5.7.1</note>
+    </assertion>
+
+    <assertion id="b">
+      <text>For a custom implementation of the Bean interface defined in Section 11.1, "The Bean interface", the container calls  |getInjectionPoints()| to determine the injection points of the bean.</text>
+    </assertion>
+  </section>
+  
+  <section id="5.3.2" title="Legal injection point types">
+    <assertion id="a">
+      <text>Any legal bean type, as defined in Section 2.2.1, "Legal bean types" may be the required type of an injection point.</text>
+    </assertion>
+    
+    <assertion id="b">
+  <text>The required type of an injection point may contain a wildcard type parameter.  However, a type variable is not a legal injection point type.</text>
+    </assertion>
+    
+    <assertion id="c">
+      <text>If an injection point type is a type variable, the container automatically detects the problem and treats it as a definition error, as defined in Section 12.4, "Problems detected automatically by the container".</text>
+    </assertion>    
+  </section>
+
+  <section id="5.3.3" title="Assignability of raw and parameterized types">
+    <assertion id="a">
+      <text>A parameterized bean type is considered assignable to a raw required type if the raw types are identical and all type parameters of the bean type are either unbounded type variables or |java.lang.Object|.</text>
+    </assertion>
+
+    <assertion id="b">
+      <text>A parameterized bean type is considered assignable to a parameterized required type if they have identical raw type and for each parameter the required type parameter and the bean type parameter are actual types with identical raw type, and, if the type is parameterized, the bean type parameter is assignable to the required type according to these rules.</text>
+    </assertion>
+
+    <assertion id="c">
+      <text>A parameterized bean type is considered assignable to a parameterized required type if they have identical raw type and for each parameter the required type parameter is a wildcard, the bean type parameter is an actual type and the actual type is assignable to the upper bound, if any, of the wildcard and assignable from the lower bound, if any, of the wildcard.</text>
+    </assertion>
+
+    <assertion id="d">
+    <text>A parameterized bean type is considered assignable to a parameterized required type if they have identical raw type and for each parameter the required type parameter is a wildcard, the bean type parameter is a type variable and the upper bound of the type variable is assignable to the upper bound, if any, of the wildcard and assignable from the lower bound, if any, of the wildcard.</text>
+    </assertion>
+
+    <assertion id="e">
+      <text>A parameterized bean type is considered assignable to a parameterized required type if they have identical raw type and for each parameter the required type parameter is an actual type, the bean type parameter is a type variable and the actual type is assignable to the upper bound, if any, of the type variable.</text>
+    </assertion>
+
+    <assertion id="f">
+      <text>A parameterized bean type is considered assignable to a parameterized required type if they have identical raw type and for each parameter the required type parameter and the bean type parameter are both type variables and the upper bound of the required type parameter is assignable to the upper bound, if any, of the bean type parameter.</text>
+    </assertion>
+  </section>
+
+  <section id="5.3.4" title="Primitive types and null values">
+    <group>
+      <text>If necessary, the container performs boxing or unboxing when it injects a value to a field or parameter of primitive or wrapper type.</text>
+            
+      <assertion id="aa">
+        <text>Test boxing.</text>
+      </assertion>
+      
+      <assertion id="ab">
+        <text>Test unboxing.</text>
+      </assertion>
+    </group>
+
+    <assertion id="aa">
+      <text>If an injection point of primitive type resolves to a bean that may have null values, such as a producer method with a nonprimitive return type or a producer field with a non-primitive type, the container automatically detects the problem and treats it as a deployment problem, as defined in Section 12.4 "Problems detected automatically by the container".</text>
+    </assertion>
+
+    <assertion id="ba">
+      <text>For a custom implementation of the Bean interface defined in Section 11.1, "The Bean interface", the container calls |isNullable()| to determine whether the bean may have null values.</text>
+    </assertion>
+  </section>
+
+  <section id="5.3.5" title="Binding annotations with members">
+    <assertion id="a" testable="false">
+      <text>Binding types with members are supported</text>
+      <note>A statement of intent</note>
+    </assertion>
+
+    <assertion id="b">
+      <text>An annotation member may be excluded from consideration using the |@NonBinding| annotation</text>
+    </assertion>
+
+    <assertion id="ca">
+  <text>Array-valued ~or annotation-valued~ members of a binding type must be annotated |@NonBinding|. If an array-valued ~or annotation-valued~ member of a binding type is not annotated |@NonBinding|, the container automatically detects the problem and treats it as a definition error, as defined in Section 12.4, "Problems detected automatically by the container".</text>
+    </assertion>
+
+    <assertion id="cb">
+      <text>~Array-valued or ~annotation-valued members of a binding type must be annotated |@NonBinding|. If an ~array-valued or ~annotation-valued member of a binding type is not annotated |@NonBinding|, the container automatically detects the problem and treats it as a definition error, as defined in Section 12.4, "Problems detected automatically by the container".</text>
+    </assertion>
+  </section>
+
+  <section id="5.3.6" title="Multiple bindings">
+    <assertion id="a">
+      <text>A bean class may declare multiple bindings</text>
+    </assertion>
+
+    <assertion id="b">
+      <text>A producer method may declare multiple bindings</text>
+    </assertion>
+
+    <assertion id="c">
+      <text>A producer field may declare multiple bindings</text>
+    </assertion>
+
+    <assertion id="d">
+      <text>A bean must declare all of the bindings that are specified at the injection point to be considered a candidate for injection</text>
+    </assertion>
+  </section>
+
+  <section id="5.4" title="EL Name resolution">
+
+    <assertion id="ba">
+  <text>When resolving a bean by name, the container identifies the set of matching beans which have the given EL name, and are accessible to classes in the war containing the JSP or JSF page with the EL expression, according to the class loading requirements of the Java EE platform and Java Servlet specifications, and which are not a policy or an enabled policy of the war containing the JSP or JSF page with the EL expression.</text>
+    </assertion>
+
+    <assertion id="e">
+      <text>For a custom implementation of the Bean interface defined in Section 11.1, "The Bean interface", the container calls |getName()| to determine the bean EL name.</text>
+    </assertion>
+  </section>
+
+  <section id="5.4.1" title="Ambiguous EL names">
+    <assertion id="c">
+      <text>An ambiguous EL name exists in an EL expression when there are multiple beans which match the given EL name.  When an ambiguous EL name exists, the container attempts to resolve the ambiguity - if any matching beans are policies, the container eliminates all matching beans that are not policies.  The container eliminates all matching beans that are specialized by some other matching bean. If there is exactly one bean remaining, the container will select this bean, and the ambiguous name is called resolvable.</text>
+    </assertion>
+
+    <assertion id="da">
+      <text>All unresolvable ambiguous EL names are detected by the container when the application is initialized. Suppose two beans are both accessible to classes in a certain war, according to the class loading requirements of the Java EE platform and Java Servlet specifications. If each bean is either not a policy, or is an enabled policy of the war, and either _the two beans have the same EL name and the name is not resolvable_, or the EL name of one bean is of the form x.y, where y is a valid bean EL name, and x is the EL name of the other bean, the container automatically detects the problem and treats it as a deployment problem, as defined in Section 12.4, "Problems detected automatically by the container".</text>
+    </assertion>
+    
+    <assertion id="db">
+      <text>All unresolvable ambiguous EL names are detected by the container when the application is initialized. Suppose two beans are both accessible to classes in a certain war, according to the class loading requirements of the Java EE platform and Java Servlet specifications. If each bean is either not a policy, or is an enabled policy of the war, and either the two beans have the same EL name and the name is not resolvable, _or the EL name of one bean is of the form x.y, where y is a valid bean EL name, and x is the EL name of the other bean_, the container automatically detects the problem and treats it as a deployment problem, as defined in Section 12.4, "Problems detected automatically by the container".</text>
+    </assertion>
+  </section>
+
+  <section id="5.5" title="Client proxies">
+    <assertion id="a" testable="false">
+      <text>Client proxies are never required for a bean whose scope is a pseudo-scope such as |@Dependent|</text>
+    </assertion>
+
+    <assertion id="b">
+      <text>A contextual reference to a bean with a normal scope, as defined in Section 6.3, “Normal scopes and pseudo-scopes”, is not a direct reference to a contextual instaContextual.create()textual reference is a client proxy object.</text>
+    </assertion>
+    
+    <assertion id="c" implied="true">
+      <text>Client proxies are serializable</text>
+      <note>For "client proxies are may be passivated, even when the bean itself may not be. Therefore the container must use a client proxy whenever a bean with normal scope is injected into a bean with a passivating scope" to hold true the client proxy must be serializable</note>
+    </assertion>
+
+    <assertion id="d">
+      <text>The container must guarantee that when any valid injected reference to a bean of normal scope is invoked, the invocation is always processed by the current instance of the injected bean.</text>
+    </assertion>
+  </section>
+
+  <section id="5.5.1" title="Unproxyable bean types">
+    <assertion id="aa">
+      <text>Classes which don't have a non-private constructor with no parameters cannot be proxied by the container. If an injection point whose declared type cannot be proxied by the container resolves to a bean with a normal scope, the container automatically detects the problem and treats it as a deployment problem, as defined in Section 12.4, "Problems detected automatically by the container".</text>
+    </assertion>
+
+    <assertion id="baa">
+      <text>Classes which are declared final ~or have final methods~ cannot be proxied by the container. If an injection point whose declared type cannot be proxied by the container resolves to a bean with a normal scope, the container automatically detects the problem and treats it as a deployment problem, as defined in Section 12.4, "Problems detected automatically by the container".</text>
+    </assertion>
+
+    <assertion id="bba">
+      <text>Classes which ~are declared final or ~have final methods cannot be proxied by the container. If an injection point whose declared type cannot be proxied by the container resolves to a bean with a normal scope, the container automatically detects the problem and treats it as a deployment problem, as defined in Section 12.4, "Problems detected automatically by the container".</text>
+    </assertion>
+
+    <assertion id="ca">
+      <text>Primitive types cannot be proxied by the container. If an injection point whose declared type cannot be proxied by the container resolves to a bean with a normal scope, the container automatically detects the problem and treats it as a deployment problem, as defined in Section 12.4, "Problems detected automatically by the container".</text>
+    </assertion>
+
+    <assertion id="da">
+      <text>Array types cannot be proxied by the container. If an injection point whose declared type cannot be proxied by the container resolves to a bean with a normal scope, the container automatically detects the problem and treats it as a deployment problem, as defined in Section 12.4, "Problems detected automatically by the container".</text>
+    </assertion>
+  </section>
+
+  <section id="5.5.2" title="Client proxy invocation">
+    <assertion id="aa">
+  <text>Every time a method of the bean is invoked upon a client proxy, the client proxy must obtain a contextual instance of the bean, as defined in Section 6.5.2, "Contextual instance of a bean", and invoke the method upon this instance.</text>
+    </assertion>
+
+    <assertion id="ab">
+      <text>If the scope is not active, as specified in Section 6.5.1, "The active context object for a scope", the client proxy rethrows |ContextNotActiveException| or |IllegalStateException|.</text>
+    </assertion>
+
+    <assertion id="b" testable="false">
+      <text>The behavior of all methods declared by |java.lang.Object|, except for |toString()|, is undefined for a client proxy</text>
+    </assertion>
+
+  </section>
+
+  <section id="5.6" title="Dependency injection">
+    <assertion id="a">
+      <text>The container is required to perform dependency injection whenever it creates a contextual instance of a session bean.</text>
+    </assertion>
+
+    <assertion id="b">
+      <text>The container is required to perform dependency injection whenever it creates a contextual instance of a managed bean.</text>
+    </assertion>
+
+    <assertion id="c">
+      <text>The container is required to perform dependency injection whenever it instantiates non-contextual instances of session beans (for example, session beans obtained by the application from JNDI or injected using |@EJB|).</text>
+    </assertion>
+
+    <assertion id="d">
+      <text>The container is required to perform dependency injection whenever it instantiates non-contextual instances of managed beans.</text>
+    </assertion>
+
+    <assertion id="e">
+      <text>The container is required to perform dependency injection whenever it instantiates instances of any other Java EE component class supporting injection.</text>
+    </assertion>
+
+    <assertion id="f" testable="false">
+      <text>In a Java EE 5 environment, the container is not required to support injection for non-contextual objects.</text>
+    </assertion>
+
+    <assertion id="g">
+      <text>The container interacts with instances of beans and other Java EE component classes supporting injection by calling methods and getting and setting the field values.</text>
+    </assertion>
+  </section>
+
+  <section id="5.6.1" title="Injectable references">
+    <assertion id="aa">
+  <text>To obtain an injectable reference for an injection point, the container must identify a bean according to the rules defined in Section 5.3, "Typesafe resolution" and resolving ambiguities according to Section 5.3.1, "Unsatisfied and ambiguous dependencies", then obtain a contextual reference for this bean and the type of the injection point according to Section 6.5.3, "Contextual reference for a bean".</text>
+    </assertion>
+
+    <assertion id="g">
+      <text>For certain combinations of scopes, the container is permitted to optimize the above procedure by directly injecting a contextual instance of the bean, as defined in Section 6.5.2, "Contextual instance of a bean". If an incompletely initialized instance of the bean is registered with the current |CreationalContext|, as defined in Section
+6.1, "The Contextual interface", the container is permitted to directly inject this instance.  However, in performing these optimizations, the container must respect the rules of injected reference validity.</text>
+    </assertion>
+  </section>
+
+  <section id="5.6.2" title="Injected reference validity">
+    <assertion id="d">
+      <text>A reference to a bean injected into a field, bean constructor or initializer method is valid until the object into which it was injected is destroyed.</text>
+    </assertion>
+
+    <assertion id="e">
+      <text>A reference to a bean injected into a producer method is valid until the producer method bean instance that is being produced is destroyed.</text>
+    </assertion>
+
+    <assertion id="f">
+      <text>A reference to a bean injected into a disposer method or observer method is valid until the invocation of the method completes.</text>
+    </assertion>
+
+    <assertion id="g" testable="false">
+      <text>The application should not invoke a method of an invalid reference. If the application invokes a method of an invalid injected reference, the behavior is undefined.</text>
+    </assertion>
+  </section>
+
+  <section id="5.6.3" title="Injection using the bean constructor">
+    <assertion id="a">
+      <text>When the container instantiates a managed bean with a constructor annotated |@Initializer|, the container calls this constructor, passing an injectable reference to each parameter. If there is no constructor annotated |@Initializer|, the container calls the constructor with no parameters.</text>
+    </assertion>
+  </section>
+
+  <section id="5.6.4" title="Injection of fields and initializer methods">
+    <assertion id="a">
+  <text>When the container creates a new instance of a managed bean, session bean, or of any other Java EE component class supporting injection, the container must initialize the values of all injected fields after injection of Java EE component environment resources has been performed and before the |@PostConstruct| callback occurs and before the servlet |init()| method is called.  The container sets the value of each injected field to an injectable reference.</text>
+    </assertion>
+
+    <assertion id="b">
+      <text>After the container initializes the values of the injected fields, it must call all initializer methods, passing an injectable reference to each parameter.</text>
+    </assertion>
+  </section>
+
+  <section id="5.6.5" title="Destruction of dependent objects">
+    <assertion id="a">
+      <text>When the container destroys an instance of a bean or of any Java EE component class supporting injection, the container destroys all dependent objects, as defined in Section 6.4.2, "Dependent object destruction", after the |@PreDestroy| callback completes and after the servlet |destroy()| method is called.</text>
+    </assertion>
+  </section>
+
+  <section id="5.6.6" title="Invocation of producer or disposal methods">
+    <assertion id="a">
+      <text>When the container calls a producer method, if the method is static, the container must invoke the method.</text>
+    </assertion>
+
+    <assertion id="b">
+      <text>When the container calls a disposal method, if the method is static, the container must invoke the method.</text>
+    </assertion>
+
+    <assertion id="c">
+      <text>When the container calls a producer method, if the method is non-static the container must determine the most specialized enabled bean that specializes the bean which declares the method, as defined in Section 4.3.2 "Most specializaed enabled bean for a bean", then obtain a contextual instance of the most specialized bean, as defined by Section 6.5.2 "Contextual instance of a bean", then invoke the method upon this instance.</text>
+    </assertion>
+
+    <assertion id="d">
+      <text>When the container calls a disposal method, if the method is non-static the container must determine the most specialized enabled bean that specializes the bean which declares the method, as defined in Section 4.3.2 "Most specializaed enabled bean for a bean", then obtain a contextual instance of the most specialized bean, as defined by Section 6.5.2 "Contextual instance of a bean", then invoke the method upon this instance.</text>
+    </assertion>
+
+    <assertion id="e">
+      <text>The container passes an injectable reference to each injected method parameter.  The container is also responsible for destroying dependent objects created during this invocation, as defined in Section 6.4.3 "Dependent object destruction".</text>
+    </assertion>
+  </section>
+
+  <section id="5.6.7" title="Access to producer field values">
+    <assertion id="a">
+      <text>When the container accesses the value of a producer field, if the producer field is static, the container must access the field value.</text>
+    </assertion>
+
+    <assertion id="b">
+      <text>When the container accesses the value of a producer field, if the producer field is non-static, the container must determine the most specialized enabled bean that specializes the bean which declares the producer field, as defined in Section 4.3.2 "Most specialized enabled bean for a bean", then obtain a contextual instance of the most specialized bean, as defined by Section 6.5.2 "Contextual instance of a bean", then access the field value of this instance.</text>
+    </assertion>
+  </section>
+
+  <section id="5.6.8" title="Invocation of observer methods">
+    <assertion id="a">
+      <text>When the container calls an observer method (defined in Section 10.4 "Observer methods"), if the observer method is static, the container must invoke the method.</text>
+    </assertion>
+
+    <assertion id="ba">
+      <text>When the container calls an observer method (defined in Section 10.5 "Observer methods"), if the observer method is non-static, the container must determine the most specialized enabled bean that specializes the bean which declares the observer method, as defined in Section 4.3.2 "Most specialized enabled bean for a bean", then obtain a contextual instance of the bean according to Section 6.5.2 "Contextual instance of a bean".  If this observer method is a conditional observer method, obtain the contextual instance that already exists, without creating a new contextual instance.  Finally, the container must invoke the observer method on the resulting instance, if any, as a business method invocation, as defined in Section 7.2 "Container invocations and interception".</text>
+    </assertion>
+
+    <assertion id="c">
+      <text>The container must pass the event object to the event parameter and an injectable instance to each injected method parameter.</text>
+    </assertion>
+
+    <assertion id="d">
+      <text>The container is also responsible for destroying dependent objects created during this invocation, as defined in Section 6.4.2, "Dependent object destruction".</text>
+    </assertion>
+  </section>
+
+  <section id="5.6.9" title="Injection point metadata">
+    <assertion id="aa">
+  <text>The |javax.enterprise.inject.spi.InjectionPoint.getBean()| method returns the Bean object representing the bean that defines the injection point.  If the injection point does not belong to a bean, |getBean()| returns a null value.</text>
+    </assertion>
+
+    <assertion id="ba">
+      <text>The |javax.enterprise.inject.spi.InjectionPoint.getType()| method returns the declared type of the injection point.</text>
+    </assertion>
+
+    <assertion id="bc">
+      <text>The |javax.enterprise.inject.spi.InjectionPoint.getBindings()| method returns the declared bindings of the injection point.</text>
+    </assertion>
+
+    <assertion id="ca">
+  <text>The |javax.enterprise.inject.spi.InjectionPoint.getMember()| method returns the |Field| object in the case of field injection.</text>
+    </assertion>
+
+    <assertion id="cb">
+      <text>The |javax.enterprise.inject.spi.InjectionPoint.getMember()| method returns the |Method| object in the case of method parameter injection.</text>
+    </assertion>
+
+    <assertion id="cc">
+      <text>The |javax.enterprise.inject.spi.InjectionPoint.getMember()| method returns the |Constructor| object in the case of constructor parameter injection</text>
+    </assertion>
+
+    <assertion id="daa">
+      <text>The |getAnnotated()| method returns an instance of |javax.enterprise.inject.spi.AnnotatedField| or |javax.enterprise.inject.spi.AnnotatedParameter|, depending upon whether the injection point is an injected field or a constructor/method parameter.</text>
+    </assertion>
+
+    <assertion id="dba">
+      <text>The |isDelegate()| method returns true if the injection point is a decorator delegate injection point, and false otherwise.</text>
+    </assertion>
+
+    <assertion id="dca">
+      <text>The |isTransient()| method returns true if the injection point is a transient field, and false otherwise.</text>
+    </assertion>
+
+    <assertion id="ea">
+      <text>The container must provide a bean with scope |@Dependent|, bean type |InjectionPoint| and binding |@Current|, allowing dependent objects, as defined in Section 6.4.2, "Dependent objects", to obtain information about the injection point to which they belong.</text>
+    </assertion>
+
+	<assertion id="eb">
+	   <text>The built-in implementation must be a passivation capable dependency, as defined in Section 6.6.2, "Passivation capable dependencies".</text>
+	</assertion>
+
+    <assertion id="f">
+      <text>If a bean that declares any scope other than |@Dependent| has an injection point of type |InjectionPoint| and binding |@Current|, the container automatically detects the problem and treats it as a definition error, as defined in Section 12.4, "Problems detected automatically by the container".</text>
+    </assertion>
+
+    <assertion id="g">
+      <text>If an object that is not a bean has an injection point of type |InjectionPoint| and binding |@Current|, the container automatically detects the problem and treats it as a definition error, as defined in Section 12.4, "Problems detected automatically by the container".</text>
+    </assertion>
+  </section>
+
+  <section id="5.7" title="Programmatic lookup">
+    <assertion id="aa">
+      <text>An instance of the |javax.enterprise.inject.Instance| interface may be injected.</text>
+    </assertion>
+
+    <assertion id="ba">
+      <text>The method |javax.enterprise.inject.Instance.get()| returns a contextual reference.</text>
+    </assertion>
+
+    <assertion id="ca">
+      <text>Any combination of bindings may be specified at the injection point.</text>
+    </assertion>
+
+    <assertion id="da">
+      <text>The |@Any| binding may be used to allow the application to specify bindings dynamically.</text>
+    </assertion>
+  </section>
+
+  <section id="5.7.1" title="The Instance interface">
+    <assertion id="aa">
+      <text>The |Instance| interface provides a method for obtaining instances of beans with a specified combination of required type and bindings, and inherites the ability to iterate beans with that combination of required type and bindings from |java.lang.Iterable|.</text>
+    </assertion>
+
+    <assertion id="ab">
+      <text>For an injected |Instance|, the required type is the type parameter specified at the injection point, and the required bindings are the bindings specified at the injection point.</text>
+    </assertion>
+
+    <assertion id="ba">
+    <text>The |select()| method returns a child |Instance| for a given required type and additional required bindings.  If no required type is given, the required type is the same as the parent.</text>
+    </assertion>
+
+    <assertion id="da">
+      <text>If two instances of the same binding type are passed to |select()|, an |IllegalArgumentException| is thrown.</text>
+    </assertion>
+
+    <assertion id="e">
+      <text>If an instance of an annotation that is not a binding type is passed to |select()|, an |IllegalArgumentException| is thrown.</text>
+    </assertion>
+
+    <assertion id="fa">
+      <text>The |get()| method must identify a bean that matches the required type and required bindings and is accessible to the class into which the parent |Instance| was injected, according to the rules of typesafe resolution, as defined in Section 5.3, "Typesafe resolution" and resolving ambiguities according to Section 5.3.1, "Unsatisfied and ambiguous dependencies".</text>
+    </assertion>
+
+    <assertion id="fba">
+      <text>If typesafe resolution results in an unsatisfied dependency, throw an |UnsatisfiedResolutionException|.</text>
+    </assertion>
+    
+    <assertion id="fbb">
+      <text>If typesafe resolution results in an unresolvable ambiguous dependency, throw an |AmbiguousResolutionException|.</text>
+    </assertion>
+
+    <assertion id="fc">
+      <text>Otherwise, obtain a contextual reference for the bean and the required type, as defined in Section 6.5.3, "Contextual reference for a bean".</text>
+    </assertion>
+
+    <assertion id="ja">
+      <text>The |iterator()| method must identify the set of beans that match the required type and required bindings and are accessible to the class into which the parent |Instance| was injected, according to the rules of typesafe resolution, as defined in Section 5.3, "Typesafe resolution".</text>
+    </assertion>
+
+    <assertion id="ka">
+      <text>The |iterator()| method must return an |Iterator|, that iterates over the set of contextual references for the resulting beans and required type, as defined in Section 6.5.3, "Contextual reference for a bean".</text>
+    </assertion>
+
+    <assertion id="l">
+      <text>The method |isUnsatisfied()| returns true if there is no bean that matches the required type and bindings, or false otherwise.</text>
+    </assertion>
+
+    <assertion id="m">
+      <text>The method |isAmbiguous()| returns true if there is more than one bean that matches the required type and bindings, or false otherwise.</text>
+    </assertion>
+  </section>
+
+  <section id="5.7.2" title="The built-in Instance">
+    <assertion id="a">
+      <text>The container must provide a built-in bean with |Instance&lt;X&gt;| for every legal bean type X in its set of bean types</text>
+    </assertion>
+
+    <assertion id="b">
+      <text>The container must provide a built-in bean with every binding type in its set of binding types.</text>
+    </assertion>
+
+    <assertion id="d">
+      <text>The container must provide a built-in bean with scope @Dependent.</text>
+    </assertion>
+
+    <assertion id="e">
+      <text>The container must provide a built-in bean with no bean EL name.</text>
+    </assertion>
+
+    <assertion id="f">
+      <text>The container must provide a built-in bean with an implementation provided automatically by the container. </text>
+    </assertion>
+
+    <assertion id="g">
+    <text>The built-in implementation must be a passivation capable dependency, as defined in Section 6.6.2, "Passivation capable dependencies".</text>
+    </assertion>
+  </section>
+
+  <section id="5.7.3" title="Using AnnotationLiteral and TypeLiteral">
+
+  </section>
+
+  <section id="5.8" title="Integration with Unified EL">
+    <assertion id="aaa">
+  <text>The container must provide a Unified EL ELResolver to the servlet engine ~and JSF implementation~ that resolves bean EL names using the rules of name resolution algorithm defined in Section 5.4 "EL name resolution" and resolving ambiguities according to Section 5.4.1, "Ambiguous EL names".</text>
+      <note>This is testable implicitly by trying to resolve using EL from a servlet</note>
+    </assertion>
+
+    <assertion id="aba">
+      <text>The container must provide a Unified EL |ELResolver| to the ~servlet engine~ and JSF implementation that resolves bean EL names using the rules of name resolution algorithm defined in Section 5.4 "EL name resolution" and resolving ambiguities according to Section 5.4.1, "Ambiguous EL names".</text>
+      <note>This is testable implicitly by trying to resolve using EL from a JSF view</note>
+    </assertion>
+
+    <assertion id="bb">
+      <text>If a name used in an EL expression does not resolve to any bean, the |ELResolver| must return a null value.</text>
+    </assertion>
+
+    <assertion id="bc">
+      <text>Otherwise, if a name used in an EL expression resolves to exactly one bean, the |ELResolver| must return a contextual instance of the bean, as defined in Section 6.5.2, "Contextual instance of a bean".</text>
+    </assertion>
+
+    <assertion id="c">
+      <text>For each distinct name that appears in the EL expression, the resolver must be called at most once. Even if a name appears more than once in the same expression, the container may not call the resolver multiple times with that name. This restriction ensures that there is a unique instance of each bean with scope |@Dependent| in any EL evaluation.</text>
+    </assertion>
+  </section>
+
+  <section id="6" title="Scopes and contexts">
+
+  </section>
+
+  <section id="6.1" title="The Contextual interface">
+    <assertion id="a0">
+      <text>If an exception occurs while creating an instance, the exception is rethrown by the |create()| method. If the exception is a checked exception, it must be wrapped and rethrown as an (unchecked) |CreationException|.</text>
+    </assertion>
+
+    <assertion id="a1">
+      <text>If an exception occurs while destroying an instance, the exception must be caught by the |destroy()| method.</text>
+    </assertion>
+
+    <assertion id="a2" testable="false">
+      <text>If the application invokes a contextual instance after it has been destroyed, the behavior is undefined.</text>
+      <note>A statement about container specific behavior which is not spec defined</note>
+    </assertion>
+
+    <assertion id="a" testable="false">
+      <text>The container and portable extensions may define implementations of the |Contextual| interface that do not extend |Bean|, but it is not recommended that applications directly implement |Contextual|.</text>
+      <note>Advice only</note>
+    </assertion>
+  </section>
+
+  <section id="6.1.1" title="The CreationalContext interface">
+    <assertion id="ca" testable="false">
+      <text>The interface |javax.enterprise.context.spi.CreationalContext| provides operations that are used by the |Contextual| implementation during instance creation and destruction.</text>
+      <note>introductory text</note>
+    </assertion>
+
+    <assertion id="d">
+  <text>|push()| registers an incompletely initialized contextual instance with the container.  A contextual instance is considered incompletely initialized until it is returned by the |create()| method.</text>
+    </assertion>
+
+    <assertion id="e">
+      <text>|release()| destroys all dependent objects, as defined in Section 6.4.1, "Dependent objects", of the instance which is being destroyed, by passing each dependent object to the |destroy()| method of its |Contextual| object.</text>
+    </assertion>
+
+    <assertion id="f" testable="false">
+      <text>The implementation of |Contextual| is not required to call |push()|. However, for certain bean scopes, invocation of |push()| between instantiation and injection helps the container minimize the use of client proxy objects (which would otherwise be required to allow circular dependencies).</text>
+    </assertion>
+
+    <assertion id="g">
+      <text>If |Contextual.create()| calls |push()|, it must also return the instance passed to |push()|.</text>
+    </assertion>
+
+    <assertion id="h" testable="false">
+      <text>|Contextual.create()| should use the given |CreationalContext| when obtaining contextual references to inject, as defined in Section 6.5.3, "Contextual reference for a bean", in order to ensure that any dependent objects are associated with the contextual instance that is being created.</text>
+      <note>Advice</note>
+    </assertion>
+
+    <assertion id="i" testable="false">
+      <text>|Contextual.destroy()| should call |release()| to allow the container to destroy dependent objects of the contextual instance.</text>
+      <note>Advice</note>
+    </assertion>
+  </section>
+
+  <section id="6.2" title="The Context interface">
+    <assertion id="aa" testable="false">
+      <text>The |javax.enterprise.context.spi.Context| interface provides an operation for obtaining contextual instances with a particular scope of any contextual type.</text>
+      <note>Introductory text</note>
+    </assertion>
+
+    <assertion id="ab">
+      <text>The method |getScopeType()| returns the scope type of the context object.</text>
+    </assertion>
+
+    <assertion id="ha">
+      <text>When a context object is active the |isActive()| method returns |true|. Otherwise, we say that the context object is inactive and the |isActive()| method returns false.</text>
+    </assertion>
+
+    <assertion id="j">
+      <text>The |Context.get()| method may either return an existing instance of the given contextual type, ~or if no |CreationalContext| is given, return a null value, or if a |CreationalContext| is given, create a new instance of the given contextual type by calling |Contextual.create()| and return the new instance~.</text>
+    </assertion>
+
+    <assertion id="k">
+      <text>The |Context.get()| method may either ~return an existing instance of the given contextual type~, or if no |CreationalContext| is given, return a null value, ~or if a |CreationalContext| is given, create a new instance of the given contextual type by calling |Contextual.create()| and return the new instance~.</text>
+    </assertion>
+
+    <assertion id="l">
+      <text>The |Context.get()| method may either ~return an existing instance of the given contextual type, or if no |CreationalContext| is given, return a null value~, or if a |CreationalContext| is given, create a new instance of the given contextual type by calling |Contextual.create()| and return the new instance.</text>
+    </assertion>
+
+    <assertion id="m">
+      <text>If the context object is inactive, the |get()| method must throw a |ContextNotActiveException|.</text>
+    </assertion>
+
+    <assertion id="na">
+      <text>The |get()| method may not return a null value _unless no |CreationalContext| is given_, or |Contextual.create()| returns a null value.</text>
+    </assertion>
+
+    <assertion id="nb">
+      <text>The |get()| method may not return a null value unless no |CreationalContext| is given, or _|Contextual.create()| returns a null value_.</text>
+    </assertion>
+
+    <assertion id="o">
+      <text>The |get()| method may not create a new instance of the given contextual type unless a |CreationalContext| is given.</text>
+    </assertion>
+
+    <assertion id="p">
+      <text>The context object is responsible for destroying any contextual instance it creates by passing the instance to the |destroy()| method of the Contextual object representing the contextual type.</text>
+    </assertion>
+
+    <assertion id="q">
+      <text>A destroyed instance must not subsequently be returned by the |get()| method.</text>
+    </assertion>
+
+    <assertion id="r">
+      <text>The context object must pass the same instance of |CreationalContext| to |Contextual.destroy()| that it passed to |Contextual.create()| when it created the instance.</text>
+    </assertion>
+  </section>
+
+  <section id="6.3" title="Normal scopes and pseudo-scopes">
+    <assertion id="a" testable="false">
+      <text>There may be no more than one mapped instance of a context object per contextual type per thread</text>
+      <note>Not testable through API</note>
+    </assertion>
+
+    <assertion id="b" testable="false">
+      <text>A context may be associated with one or more threads</text>
+      <note>A statement of intent</note>
+    </assertion>
+
+    <assertion id="c">
+      <text>The |get()| operation of the |Context| object for an active normal scope returns the current instance of the given contextual type.</text>
+    </assertion>
+
+    <assertion id="d">
+    <text>When a context is destroyed, all mapped instances belonging to that context are destroyed by passing them to the |Contextual.destroy()| method.</text>
+    </assertion>
+
+    <assertion id="e">
+      <text>Contexts with normal scopes must obey the following rule: Suppose beans A, B and Z all have normal scopes. Suppose A has an injection point x, and B has an injection point y. Suppose further that both x and y resolve to bean Z according to the typesafe resolution algorithm. If a is the current instance of A, and b is the current instance of B, then both a.x and b.y refer to the same instance of Z. This instance is the current instance of Z.</text>
+    </assertion>
+
+    <assertion id="f" testable="false">
+      <text>All pseudo-scopes must be explicitly declared |@ScopeType(normal=false)|, to indicate to the container that no client proxy is required</text>
+      <note>A statement of intent</note>
+    </assertion>
+
+    <assertion id="g" testable="false">
+      <text>All scopes defined by this specification, except for the |@Dependent| pseudo-scope, are normal scopes</text>
+      <note>A statement of intent</note>
+    </assertion>
+  </section>
+
+  <section id="6.4" title="Dependent pseudo-scope">
+    <assertion id="a">
+      <text>When a bean is declared to have |@Dependent| scope, no injected instance of the bean is ever shared between multiple injection points</text>
+    </assertion>
+
+    <assertion id="b">
+      <text>When a bean is declared to have |@Dependent| scope, any injected instance of the bean is bound to the lifecycle of the bean, servlet or EJB into which it is injected</text>
+    </assertion>
+
+    <assertion id="c">
+      <text>When a bean is declared to have |@Dependent| scope, any instance of the bean that is used to evaluate a Unified EL expression exists to service that evaluation only</text>
+    </assertion>
+
+    <assertion id="da">
+      <text>When a bean is declared to have |@Dependent| scope, any instance of the bean that receives a producer method~, producer field, disposer method or observer method~ invocation exists to service that invocation only</text>
+    </assertion>
+
+    <assertion id="db">
+      <text>When a bean is declared to have |@Dependent| scope, any instance of the bean that receives a ~producer method,~ producer field~, disposer method or observer method~ invocation exists to service that invocation only</text>
+    </assertion>
+
+    <assertion id="dc">
+      <text>When a bean is declared to have |@Dependent| scope, any instance of the bean that receives a ~producer method, producer field,~ disposer method ~or observer method~ invocation exists to service that invocation only</text>
+    </assertion>
+
+    <assertion id="dd">
+      <text>When a bean is declared to have |@Dependent| scope, any instance of the bean that receives a ~producer method, producer field, disposer method or~ observer method invocation exists to service that invocation only</text>
+    </assertion>
+
+    <assertion id="e">
+      <text>Every invocation of the |get()| operation of the |Context| object for the |@Dependent| scope with a |CreationalContext| returns a new instance of the given bean</text>
+    </assertion>
+
+    <assertion id="f">
+      <text>Every invocation of the |get()| operation of the |Context| object for the |@Dependent| scope with no |CreationalContext| returns a null value</text>
+    </assertion>
+
+    <assertion id="g">
+      <text>The |@Dependent| scope is always active.</text>
+    </assertion>
+  </section>
+
+  <section id="6.4.1" title="Dependent objects">
+    <group>
+      <text>Instances of interceptors or decorators with scope |@Dependent| are dependent objects of the bean instance they decorate.</text>
+      <assertion id="aa">
+        <text>Test with a |@Dependent|-scoped interceptor.</text>
+      </assertion>
+      
+      <assertion id="ab">
+        <text>Test with a |@Dependent|-scoped decorator.</text>
+      </assertion>
+    </group>
+
+    <group>
+      <text>An instance of a bean with scope |@Dependent| injected into a field, bean constructor or initializer method is a dependent object of the bean or Java EE component class instance into which it was injected.</text>
+            
+      <assertion id="ga">
+        <text>Test with |@Dependent|-scoped bean injected into field.</text>
+      </assertion>
+      
+      <assertion id="gb">
+        <text>Test with |@Dependent|-scoped bean injected into bean constructor.</text>
+      </assertion>
+      
+      <assertion id="gc">
+        <text>Test with |@Dependent|-scoped bean injected into initializer method.</text>
+      </assertion>      
+    </group>
+    
+    <assertion id="h">
+      <text>An instance of a bean with scope |@Dependent| injected into a producer method is a dependent object of the producer method bean instance that is being produced.</text>
+    </assertion>
+    
+    <assertion id="i">
+      <text>An instance of a bean with scope |@Dependent| obtained by direct invocation of an |Instance| is a dependent object of the instance of |Instance|.</text>
+    </assertion>
+  </section>
+
+  <section id="6.4.2" title="Dependent object destruction">
+  
+    <group>
+      <text>The container must ensure that all dependent objects of a non-contextual instance of a bean or other Java EE component class are destroyed when the instance is destroyed by the container.</text>
+            
+      <assertion id="aaaa">
+        <text>Test with a managed bean.</text>
+      </assertion>
+    
+      <assertion id="aaab">
+        <text>Test with a Java EE component.</text>
+      </assertion>
+    </group>
+    
+    <assertion id="bbb">
+      <text>The container must ensure that all |@Dependent| scoped contextual instances injected into method parameters of an observer method of any container lifecycle event, as defined in Section 11.5, "Container lifecycle events", are destroyed after all observers of the |BeforeShutdown| event complete.</text>
+    </assertion>
+    
+    <group>
+      <text>The container must ensure that all |@Dependent| scoped contextual instances injected into method parameters of a disposer method or observer method of any other event are destroyed when the invocation completes.</text>
+      <assertion id="ccc">
+         <text>Check disposer method</text>
+      </assertion>
+      
+      <assertion id="ccd">
+         <text>Check observer method</text>
+      </assertion>
+    </group>
+    
+    <group>
+      <text>The container must ensure that any |@Dependent| scoped contextual instance created to receive a producer method, producer field, disposer method or observer method invocation is destroyed when the invocation completes.</text>
+      
+      <assertion id="ddd">
+         <text>Check producer method</text>
+      </assertion>
+      
+      <assertion id="dde">
+         <text>Check producer field</text>
+      </assertion>
+      
+      <assertion id="ddf">
+         <text>Check disposer method</text>
+      </assertion>
+      
+      <assertion id="ddg">
+         <text>Check observer method</text>
+      </assertion>
+    </group>
+    
+    
+    <assertion id="eee">
+      <text>The container must ensure that all |@Dependent| scoped contextual instances created during an EL expression evaluation are destroyed when the evaluation completes.</text>
+    </assertion>
+
+    <assertion id="e" testable="false">
+      <text>The container is permitted to destroy any |@Dependent| scoped contextual instance at any time if the instance is no longer referenced by the application (excluding weak, soft and phantom references)</text>
+      <note>In other words this is unspecified</note>
+    </assertion>
+  </section>
+
+  <section id="6.5" title="Contextual instances and contextual references">
+
+  </section>
+
+  <section id="6.5.1" title="The active context object for a scope">
+    <assertion id="a">
+      <text>From time to time, the container must obtain an active context object for a certain scope type. The container must search for an active instance of |Context| associated with the scope type. If no active context object exists for the scope type, the container throws a |ContextNotActiveException|.</text>
+    </assertion>
+
+    <assertion id="b">
+      <text>If more than one active context object exists for the given scope type, the container must throw an |IllegalStateException|.</text>
+    </assertion>
+  </section>
+
+  <section id="6.5.2" title="Contextual instance of a bean">
+    <assertion id="a">
+      <text>From time to time, the container must obtain a contextual instance of a bean.  The container must obtain the active context object for the bean scope, then obtain an instance of the bean by calling |Context.get()|, passing the |Bean| instance representing the bean and an instance of |CreationalContext|.</text>
+    </assertion>
+
+    <assertion id="b">
+      <text>From time to time, the container attempts to obtain a contextual instance of a bean that already exists, without creating a new contextual instance. The container must determine if the scope of the bean is active and if it is, obtain the active context object for the bean scope, then attempt to obtain an instance of the bean by calling |Context.get()|, passing the |Bean| instance representing the bean without passing any instance of |CreationalContext|.</text>
+    </assertion>
+    
+    <assertion id="c" testable="false">
+      <text>If the scope is not active, or if |Context.get()| returns a null value, there is no contextual instance that already exists.</text>
+      <note>Statement of intent</note>
+    </assertion>
+    
+    <assertion id="e">
+      <text>For a custom implementation of the |Bean| interface defined in Section 11.1, "The Bean interface", the container calls |getScopeType()| to determine the bean scope.</text>
+    </assertion>
+  </section>
+
+  <section id="6.5.3" title="Contextual reference for a bean">
+    <assertion id="a0">
+      <text>Contextual references must be obtained with a given |CreationalContext|, allowing any instance of scope |@Dependent| that is created to be later destroyed.</text>
+    </assertion>
+    
+    <assertion id="a">
+      <text>If the bean has a normal scope and the given bean type cannot be proxied by the container, as defined in Section 5.5.1, "Unproxyable bean types", the container throws an |UnproxyableResolutionException|.</text>
+    </assertion>
+
+    <assertion id="b">
+      <text>If the bean has a normal scope, then the contextual reference for the bean is a client proxy, as defined in Section 5.5, "Client proxies", created by the container, that implements the given bean type and all bean types of the bean which are Java interfaces.</text>
+    </assertion>
+
+    <assertion id="c">
+  <text>If the bean has a pseudo-scope, the container must obtain a contextual instance of the bean. If the bean has scope |@Dependent|, the container must associate it with the |CreationalContext|.</text>
+    </assertion>
+
+    <assertion id="d">
+      <text>The container must ensure that every injection point of type |InjectionPoint| and binding |@Current| of any dependent object instantiated during this process receives an instance of |InjectionPoint| representing the injection point into which the dependent object will be injected, or a null value if it is not being injected into any injection point.</text>
+    </assertion>
+  </section>
+
+  <section id="6.5.4" title="Contextual reference validity">
+    <assertion id="a">
+      <text>Any reference to a bean with a normal scope is valid as long as the application maintains a hard reference to it. However, it may only be invoked when the context associated with the normal scope is active. If it is invoked when the context is inactive, a |ContextNotActiveException| is thrown by the container.</text>
+    </assertion>
+
+    <assertion id="b" testable="false">
+      <text>
+         Any reference to a bean with a pseudo-scope (such as |@Dependent|) is valid until the bean instance to which it refers is destroyed. It may be invoked even if the context associated with the pseudo-scope is not active. If the application invokes a method of a reference to an instance that has already been destroyed, the behavior is undefined.
+      </text>
+      <note>Describes unspecified behavior</note>
+    </assertion>
+  </section>
+
+  <section id="6.6" title="Passivation and passivating scopes">
+    <assertion id="a" implied="true">
+      <text>Test passivation occurs</text>
+    </assertion>
+  </section>
+
+  
+
+  <section id="6.6.1" title="Passivation capable beans">
+    <assertion id="a" testable="false">
+      <text>As defined by the EJB specification, all stateful session beans are passivation capable. Stateless and singleton session beans are not passivation capable.</text>
+      <note>Defined by EJB spec</note>
+    </assertion>
+
+    <group>
+      <text>A managed bean is passivation capable if and only if the bean class is serializable and all interceptors and decorators of the bean are serializable.</text>
+      
+      <assertion id="ba">
+        <text>Tests with a serializable bean class.</text>
+      </assertion>
+      
+      <assertion id="bb">
+        <text>Tests with a serializable interceptor.</text>
+      </assertion>
+      
+      <assertion id="bc">
+        <text>Tests with a serializable decorator.</text>
+      </assertion>
+    </group>
+
+    <group>
+      <text>A producer method is passivation capable if and only if it never returns a value which is not passivation capable at runtime. A producer method with a return type that implements or extends serializable is passivation capable. A producer method with a return type that is declared |final| and does not implement |Serializable| is not passivation capable.</text>
+          
+      <assertion id="ca">
+        <text>Test that a producer method with a serializable return type is passivation capable.</text>
+      </assertion>
+      
+      <assertion id="cb">
+        <text>Test that a producer method with a final, non-serializable return type is not passivation capable.</text>
+      </assertion>
+    </group>
+
+    <group>
+      <text>A producer field is passivation capable if and only if it never refers to a value which is not passivation capable at runtime. A producer field with a type that implements or extends |Serializable| is passivation capable. A producer field with a type that is declared |final| and does not implement |Serializable| is not passivation capable.</text>
+    
+      <assertion id="da">
+        <text>Test that a producer field with a serializable type is passivation capable.</text>
+      </assertion>
+      
+      <assertion id="db">
+        <text>Test that a producer field with a final, non-serializable type is not passivation capable.</text>
+      </assertion>
+    </group>
+
+    <assertion id="ea">
+      <text>A custom implementation of Bean is passivation capable if it implements the interface |PassivationCapable|.</text>
+    </assertion>
+    
+    <assertion id="f">
+      <text>An implementation of |Contextual| that is not a bean is passivation capable if it implements both |PassivationCapable| and |Serializable|.</text>
+    </assertion>
+    
+    <assertion id="g" testable="false">
+      <text>The |getId()| method of the |PassivationCapable| implementation must return a value that uniquely identifies the instance of |Bean| or |Contextual|.</text>
+      <note>This is a requirement of the implementation</note>
+    </assertion>
+    
+    <assertion id="h" testable="false">
+      <text>The |getId()| ~method of the |PassivationCapable| implementation must return a value that uniquely identifies the instance of |Bean| or |Contextual|.  It~ is recommended that the string contain the package name of the class that implements |Bean| or |Contextual|.</text>
+      <note>Recommendation only</note>
+    </assertion>
+  </section><section id="6.6.2" title="Passivation capable dependencies">
+    <assertion id="a">
+      <text>The container must guarantee that all session beans are passivation capable dependencies.</text>
+    </assertion>
+
+    <assertion id="b">
+      <text>The container must guarantee that all beans with normal scope are passivation capable dependencies.</text>
+    </assertion>
+
+    <assertion id="c">
+      <text>The container must guarantee that all passivation capable beans with scope |@Dependent| are passivation capable dependencies.</text>
+    </assertion>
+
+    <assertion id="da">
+      <text>The container must guarantee that all resources are passivation capable dependencies.</text>
+    </assertion>
+
+    <assertion id="e">
+      <text>The container must guarantee that the built-in beans of type |Instance|, |Event|, |InjectionPoint| and |BeanManager| are passivation capable dependencies.</text>
+    </assertion>
+
+    <assertion id="fa">
+      <text>A custom implementation of |Bean| is a passivation capable dependency if it implements |PassivationCapable| or if |getScopeType()| returns a normal scope type.</text>
+    </assertion>
+  </section>
+
+  <section id="6.6.3" title="Passivating scopes">
+    <group>
+      <text>A passivating scope requires that beans with the scope are passivation capable, and implementations of |Contextual| passed to any context object for the scope are passivation capable.</text>
+            
+      <assertion id="a">
+        <text>Test that a bean with the scope is passivation capable.</text>
+      </assertion>
+      
+      <assertion id="b">
+        <text>Test that an implementation of |Contextual| passed to the context object for the scope is passivation capable.</text>
+      </assertion>
+    </group>
+    
+    <assertion id="b" testable="false">
+      <text>Passivating scopes must be explicitly declared |@ScopeType(passivating=true)|.</text>
+      <note>A statement of intent</note>
+    </assertion>
+  </section>
+
+  <section id="6.6.4" title="Validation of passivation capable beans and dependencies">
+    <assertion id="aaa">
+      <text>If a managed bean which declares a passivating scope is not passivation capable, then the container automatically detects the problem and treats it as a deployment problem, as defined in Section 12.4, "Problems detected automatically by the container".</text>
+      <note>Here we check the class, as interceptors and decorators are tested below</note>
+    </assertion>
+    
+    <group>
+      <text>If a managed bean which declares a passivating scope has a non-transient injected field, bean constructor parameter or initializer method parameter that does not resolve to a passivation capable dependency, then the container automatically detects the problem and treats it as a deployment problem, as defined in Section 12.4, "Problems detected automatically by the container".</text>    
+      <assertion id="aaba">
+        <text>Test with injected field.</text>
+      </assertion>
+      
+      <assertion id="aabb">
+        <text>Test with bean constructor parameter.</text>
+      </assertion>
+      
+      <assertion id="aabc">
+        <text>Test with initializer method parameter.</text>
+      </assertion>
+    </group>
+    
+    <group>
+      <text>If a managed bean which declares a passivating scope has an interceptor or decorator with a non-transient injected field, bean constructor parameter or initializer method parameter that does not resolve to a passivation capable dependency, then the container automatically detects the problem and treats it as a deployment problem, as defined in Section 12.4, "Problems detected automatically by the container".</text>
+    
+      <assertion id="aac">
+        <text>Test interceptor with injected field.</text>
+      </assertion>
+      
+      <assertion id="aad">
+        <text>Test interceptor with bean constructor parameter.</text>
+      </assertion>
+      
+      <assertion id="aae">
+        <text>Test interceptor with initializer method parameter.</text>
+      </assertion>
+      
+      <assertion id="aaf">
+        <text>Test decorator with injected field.</text>
+      </assertion>
+      
+      <assertion id="aag">
+        <text>Test decorator with bean constructor parameter.</text>
+      </assertion>
+      
+      <assertion id="aah">
+        <text>Test decorator with initializer method parameter.</text>
+      </assertion>
+    </group>
+
+    <group>
+      <text>If a stateful session bean has a non-transient injected field, bean constructor parameter or initializer method parameter that does not resolve to a passivation capable dependency, then the container automatically detects the problem and treats it as a deployment problem, as defined in Section 12.4, "Problems detected automatically by the container".</text>    
+      
+      <assertion id="ba">
+        <text>Test with an injected field.</text>
+      </assertion>
+
+      <assertion id="bb" testable="false">
+        <text>Test with a bean constructor parameter.</text>
+        <note>Session beans don't have bean constructors</note>
+      </assertion>
+
+      <assertion id="bc">
+        <text>Test with an initializer method parameter.</text>
+      </assertion>
+    </group>
+    
+    <group>
+      <text>If a stateful session bean has an interceptor or decorator with a non-transient injected field, bean constructor parameter or initializer method parameter that does not resolve to a passivation capable dependency, then the container automatically detects the problem and treats it as a deployment problem, as defined in Section 12.4, "Problems detected automatically by the container".</text>
+            
+      <assertion id="bda">
+        <text>Test an interceptor with an injected field.</text>
+      </assertion>
+      
+      <assertion id="bdb">
+        <text>Test an interceptor with a bean constructor parameter.</text>
+      </assertion>
+      
+      <assertion id="bdc">
+        <text>Test an interceptor with an initializer method parameter.</text>
+      </assertion>
+      
+      <assertion id="bdd">
+        <text>Test a decorator with an injected field.</text>
+      </assertion>
+      
+      <assertion id="bde">
+        <text>Test a decorator with a bean constructor parameter.</text>
+      </assertion>
+      
+      <assertion id="bdf">
+        <text>Test a decorator with an initializer method parameter.</text>
+      </assertion>
+    </group>
+
+    <group>
+      <text>If a producer method declares a passivating scope and the container is able to determine that it is not passivation capable by inspecting its return type, or has a parameter that does not resolve to a passivation capable dependency, then the container automatically detects the problem and treats it as a deployment problem, as defined in Section 12.4, "Problems detected automatically by the container".</text>
+            
+      <assertion id="ca">
+        <text>Test a producer method with a non passivation-capable return type.</text>
+      </assertion>
+
+      <assertion id="cb">
+        <text>Test a producer method with a parameter that does not resolve to a passivation capable dependency.</text>
+      </assertion>
+    </group>
+
+    <assertion id="d">
+      <text>If a producer field declares a passivating scope and the container is able to determine that it is not passivation capable by inspecting its type, then the container automatically detects the problem and treats it as a deployment problem, as defined in Section 12.4,
+"Problems detected automatically by the container".</text>
+    </assertion>
+
+    <group>
+      <text>If a producer method or field which declares a passivating scope returns an unserializable object at runtime, the container must throw an |IllegalProductException|.</text>
+      
+      <assertion id="ea">
+        <text>Test with a producer method.</text>
+      </assertion>
+      
+      <assertion id="eb">
+        <text>Test with a producer field.</text>
+      </assertion>
+    </group>
+
+    <group>
+      <text>If a producer method or field of scope |@Dependent| returns an unserializable object for injection into an injection point that requires a passivation capable dependency, the container must throw an |IllegalProductException|</text>
+      
+      <assertion id="fa">
+        <text>Test for a deployment exception with a producer method.</text>
+      </assertion>
+      
+      <assertion id="fab">
+        <text>Test for a runtime exception with a producer method.</text>
+      </assertion>
+      
+      <assertion id="fb">
+        <text>Test for a deployment exception with a producer field.</text>
+      </assertion>
+      
+      <assertion id="fbb">
+        <text>Test for a runtime exception with a producer field.</text>
+      </assertion>
+    </group>
+
+    <group>
+      <text>For a custom implementation of |Bean|, the container calls |getInjectionPoints()| to determine the injection points, and |InjectionPoint.isTransient()| to determine whether the injected point is a transient field.</text>    
+    
+      <assertion id="ga">
+        <text>Test calling |getInjectionPoints()|.</text>
+      </assertion>
+      
+      <assertion id="gb">
+        <text>Test calling |InjectionPoint.isTransient()|.</text>
+      </assertion>
+    </group>
+
+    <group>
+      <text>If a bean which declares a passivating scope type, or any stateful session bean, has a decorator which is not a passivation capable dependency, the container automatically detects the problem and treats it as a deployment problem, as defined in Section 12.4, "Problems detected automatically by the container".</text>    
+      
+      <assertion id="ha">
+        <text>Test with a bean which declares a passivating scope type.</text>
+      </assertion>
+      
+      <assertion id="hb">
+        <text>Test with a stateful session bean.</text>
+      </assertion>
+    </group>
+  </section>
+
+  <section id="6.7" title="Context management for built-in scopes">
+    <group>
+      <text>The built-in context object is active during servlet, web service and EJB invocations, or in the case of the conversation context object, for JSF requests.</text>
+    </group>
+    
+  </section>
+
+  <section id="6.7.1" title="Request context lifecycle">
+    <assertion id="aa">
+      <text>The request scope is active during the |service()| method of any servlet in the web application~, during the |doFilter()| method of any servlet filter and when the container calls any |ServletRequestListener| or |AsyncListener|.~</text>
+    </assertion>
+
+    <assertion id="ab">
+      <text>The request scope is active ~during the |service()| method of any servlet in the web application~, during the |doFilter()| method of any servlet filter and when the container calls any |ServletRequestListener| or |AsyncListener|.</text>
+    </assertion>
+
+    <assertion id="c">
+      <text>The request scope is active during any Java EE web service invocation.</text>
+    </assertion>
+    
+    <assertion id="e">
+      <text>The request scope is active during any asynchronous observer method notification.</text>
+    </assertion>
+    
+    <group>
+      <text>The request scope is active during any remote method invocation of any EJB, during any asynchronous method invocation of any EJB, during any call to an EJB timeout method and during message delivery to any EJB message-driven bean.</text>
+    
+      <assertion id="ga" testable="false">
+        <text>Test the request scope is active during a remote method invocation of any EJB.</text>
+      </assertion>    
+
+      <assertion id="gb" testable="false">
+        <text>Test the request scope is active during any asynchronous method invocation of any EJB.</text>
+      </assertion>
+
+      <assertion id="gc">
+        <text>Test the request scope is active during any call to an EJB timeout method.</text>
+      </assertion>
+
+      <assertion id="gd">
+        <text>Test the request scope is active during message delivery to any EJB message-driven bean.</text>
+      </assertion>
+    </group>
+      
+    <assertion id="ge">
+      <text>The request scope is active during any message delivery to a |MessageListener| for a JMS topic or queue obtained from the Java EE component environment.</text>
+    </assertion>        
+            
+    <group>
+      <text>The request context is destroyed at the end of the servlet request, after the |service()| method and all |doFilter()| methods, and all |requestDestroyed()| and |onComplete()| notifications return.</text>
+            
+      <assertion id="baa">
+        <text>Test the request context is destroyed at the end of the servlet request, after the |service()| method.</text>
+      </assertion>
+
+      <assertion id="bba">
+        <text>Test the request context is destroyed after all |doFilter()| methods, and all |requestDestroyed()| and |onComplete()| notifications return.</text>
+      </assertion>
+    </group>
+
+    <assertion id="d">
+      <text>The request context is destroyed after the web service invocation completes.</text>
+    </assertion>
+
+    <assertion id="fa">
+      <text>The request context is destroyed after the asynchronous observer notification completes</text>
+    </assertion>
+    
+    <group>
+      <text>The request context is destroyed after the EJB remote method invocation, asynchronous method invocation, timeout or message delivery completes.</text>
+            
+      <assertion id="ha" testable="false">
+        <text>Test the request context is destroyed after an EJB remote method invocation.</text>
+      </assertion>
+
+      <assertion id="hb">
+        <text>Test the request context is destroyed after an EJB asynchronous method invocation.</text>
+      </assertion>
+
+      <assertion id="hc">
+        <text>Test the request context is destroyed after the EJB timeout.</text>
+      </assertion>
+
+      <assertion id="hd">
+        <text>Test the request context is destroyed after the message delivery completes.</text>
+      </assertion>
+    </group>
+
+    <assertion id="i">
+      <text>The request context is destroyed after the message delivery to the |MessageListener| completes.</text>
+    </assertion>
+  </section>
+
+  <section id="6.7.2" title="Session context lifecycle">
+    <assertion id="aa">
+      <text>The session scope is active during the |service()| method of any servlet in the web application ~, during the |doFilter()| method of any servlet filter~ and when the container calls any |HttpSessionListener|, |AsyncListener| or |ServletRequestListener|.</text>
+    </assertion>
+
+    <assertion id="ab">
+      <text>The session scope is active ~during the |service()| method of any servlet in the web application~, during the |doFilter()| method of any servlet filter and when the container calls any |HttpSessionListener|, |AsyncListener| or |ServletRequestListener|.</text>
+    </assertion>
+
+    <assertion id="b">
+      <text>The session context is shared between all servlet requests that occur in the same HTTP servlet session.</text>
+    </assertion>
+
+    <assertion id="ca">
+      <text>The session context is destroyed when the ~|HTTPSession| times out, after all |HttpSessionListener|s have been called~, and at the very end of any request in which |invalidate()| was called, after all filters and |ServletRequestListeners| have been called.</text>
+    </assertion>
+    
+    <assertion id="cb">
+      <text>The session context is destroyed when the |HTTPSession| times out, ~after all |HttpSessionListener|s have been called, and at the very end of any request in which |invalidate()| was called~, after all filters and |ServletRequestListeners| have been called.</text>
+    </assertion>
+  </section>
+
+  <section id="6.7.3" title="Application context lifecycle">
+    <assertion id="aa">
+      <text>The application scope is active during the |service()| method of any servlet in the web application ~, during the |doFilter()| method of any servlet filter and when the container calls any |ServletContextListener|, |HttpSessionListener|, |AsyncListener| or |ServletRequestListener|.~</text>
+    </assertion>
+
+    <assertion id="ab">
+      <text>The application scope is active during ~the |service()| method of any servlet in the web application, during~ the |doFilter()| method of any servlet filter and when the container calls any |ServletContextListener|, |HttpSessionListener|, |AsyncListener| or |ServletRequestListener|.~</text>
+    </assertion>
+
+    <assertion id="b">
+      <text>The application scope is active during any Java EE web service invocation.</text>
+    </assertion>
+
+    <assertion id="c">
+      <text>The application scope is active during any asynchronous observer method notification.</text>
+    </assertion>
+
+    <assertion id="da">
+      <text>The application scope is also active during any remote method invocation of any EJB~, during any asynchronous method invocation of any EJB, during any call to an EJB timeout method and during message delivery to any EJB message-driven bean.</text>
+    </assertion>
+
+    <assertion id="db">
+      <text>The application scope is also active ~during any remote method invocation of any EJB~, during any asynchronous method invocation of any EJB~, during any call to an EJB timeout method and during message delivery to any EJB message-driven bean.~</text>
+    </assertion>
+
+    <assertion id="dc">
+      <text>The application scope is also active ~during any remote method invocation of any EJB, during any asynchronous method invocation of any EJB,~ during any call to an EJB timeout method~ and during message delivery to any EJB message-driven bean.~</text>
+    </assertion>
+
+    <assertion id="dd">
+      <text>The application scope is also active ~during any remote method invocation of any EJB, during any asynchronous method invocation of any EJB, during any call to an EJB timeout method and~ during message delivery to any EJB message-driven bean.</text>
+    </assertion>
+    
+    <assertion id="de">
+      <text>The application scope is active during any message delivery to a |MessageListener| for a JMS topic or queue obtained from the Java EE component environment.</text>
+    </assertion>
+    
+    <assertion id="df">
+      <text>The application scope is active when the disposer method or |@PreDestroy| callback of any bean with any normal scope other than |@ApplicationScoped| is called.</text>
+    </assertion>
+
+    <assertion id="ea">
+      <text>The application context is shared between all servlet requests~, asynchronous observer method notifications, web service invocations, EJB remote method invocations, EJB asynchronous method invocations, EJB timeouts and message deliveries to message driven beans ~that execute within the same application.</text>
+    </assertion>
+
+    <assertion id="eb">
+      <text>The application context is shared between all ~servlet requests,~ asynchronous observer method notifications~, web service invocations, EJB remote method invocations, EJB asynchronous method invocations, EJB timeouts and message deliveries to message driven beans ~that execute within the same application.</text>
+    </assertion>
+
+    <assertion id="ec">
+      <text>The application context is shared between all ~servlet requests, asynchronous observer method notifications,~ web service invocations~, EJB remote method invocations, EJB asynchronous method invocations, EJB timeouts and message deliveries to message driven beans ~that execute within the same application~.</text>
+    </assertion>
+
+    <assertion id="ed">
+      <text>The application context is shared between all ~servlet requests, asynchronous observer method notifications, web service invocations,~ EJB remote method invocations~, EJB asynchronous method invocations, EJB timeouts and message deliveries to message driven beans ~that execute within the same application~.</text>
+    </assertion>
+
+    <assertion id="ee">
+      <text>The application context is shared between all ~servlet requests, asynchronous observer method notifications, web service invocations, EJB remote method invocations,~ EJB asynchronous method invocations~, EJB timeouts and message deliveries to message driven beans ~that execute within the same application.</text>
+    </assertion>
+
+    <assertion id="ef">
+      <text>The application context is shared between all ~servlet requests, asynchronous observer method notifications, web service invocations, EJB remote method invocations, EJB asynchronous method invocations,~ EJB timeouts ~and message deliveries to message driven beans ~that execute within the same application.</text>
+    </assertion>
+
+    <assertion id="eg">
+      <text>The application context is shared between all ~servlet requests, asynchronous observer method notifications, web service invocations, EJB remote method invocations, EJB asynchronous method invocations, EJB timeouts and~ message deliveries to message driven beans ~that execute within the same application.</text>
+    </assertion>
+
+    <assertion id="f">
+      <text>The application context is destroyed when the application
+is undeployed.</text>
+    </assertion>
+  </section>
+
+  <section id="6.7.4" title="Conversation context lifecycle">
+    <assertion id="a">
+      <text>The conversation scope is active during all standard lifecycle phases of any JSF faces or non-faces request.</text>
+    </assertion>
+
+    <assertion id="c">
+      <text>Any JSF request has exactly one associated conversation.</text>
+    </assertion>
+
+    <assertion id="da">
+    <text>The conversation associated with a JSF request is determined at the beginning of the restore view phase and does not change during the request.</text>
+    </assertion>
+
+    <assertion id="e">
+      <text>By default, a conversation is transient.</text>
+    </assertion>
+
+    <assertion id="f">
+      <text>A transient conversation may be marked long-running by calling |Conversation.begin()|</text>
+    </assertion>
+
+    <assertion id="g">
+      <text>A long-running conversation may be marked transient by calling |Conversation.end()|</text>
+    </assertion>
+
+    <assertion id="ha">
+      <text>All long-running conversations have a string-valued unique identifier, _which may be set by the application_ when the conversation is marked long-running~, or generated by the container~</text>
+    </assertion>
+
+    <assertion id="hb">
+      <text>All long-running conversations have a string-valued unique identifier, _which may be_ ~set by the application when the conversation is marked long-running, or~ _generated by the container_</text>
+    </assertion>
+        
+    <assertion id="j">
+      <text>If the conversation associated with the current JSF request is in the transient state at the end of a JSF request, it is destroyed, and the conversation context is also destroyed.</text>
+    </assertion>
+
+    <assertion id="k">
+      <text>If the conversation associated with the current JSF request is in the long-running state at the end of a JSF request, it is not destroyed.</text>
+    </assertion>
+
+    <assertion id="l">
+      <text>The long-running conversation context associated with a request that renders a JSF view is automatically propagated to any faces request (JSF form submission) that originates from that rendered page.</text>
+    </assertion>
+
+    <assertion id="m">
+      <text>The long-running conversation context associated with a request that results in a JSF redirect (via a navigation rule) is automatically propagated to the resulting non-faces request, and to any other subsequent request to the same URL. This is accomplished via use of a GET request parameter named cid containing the unique identifier of the conversation.</text>
+    </assertion>
+
+    <assertion id="n">
+      <text>The long-running conversation associated with a request may be propagated to any non-faces request via use of a GET request parameter named |cid| containing the unique identifier of the conversation. In this case, the application must manage this request parameter.</text>
+    </assertion>
+
+    <assertion id="o">
+      <text>When no conversation is propagated to a JSF request, the request is associated with a new transient conversation.</text>
+    </assertion>
+
+    <assertion id="p">
+      <text>All long-running conversations are scoped to a particular HTTP servlet session and may not cross session boundaries.</text>
+    </assertion>
+
+    <assertion id="qa">
+  <text>When the HTTP servlet session is invalidated, all long-running conversation contexts created during the current session are destroyed, after the servlet |service()| method completes.</text>
+    </assertion>
+
+    <assertion id="r" testable="false">
+      <text>The container is permitted to arbitrarily destroy any long-running conversation that is associated with no current JSF request, in order to conserve resources</text>
+      <note>In other words, this is unspecified</note>
+    </assertion>
+
+    <assertion id="ta" testable="false">
+      <text>The conversation timeout, which may be specified by calling |Conversation.setTimeout()| is a hint to the container that a conversation should not be destroyed if it has been active within the last given interval in milliseconds.</text>
+      <note>Not required</note>
+    </assertion>
+    
+    <assertion id="tb">
+  <text>If the propagated conversation cannot be restored, the container must associate the request with a new transient conversation and throw an exception of type |javax.context.NonexistentConversationException| from the restore view phase of the JSF lifecycle.  The application may handle this exception using the JSF |ExceptionHandler|.</text>
+    </assertion>    
+
+    <assertion id="ua">
+  <text>The container ensures that a long-running conversation may be associated with at most one request at a time, by blocking or rejecting concurrent requests.  If the container rejects a request, it must associate the request with a new transient conversation and throw an exception of type |javax.context.BusyConversationException| from the restore view phase of the JSF lifecycle.  The application may handle this exception using the JSF |ExceptionHandler|.</text>
+    </assertion>
+  </section>
+  
+  <section id="6.7.5" title="The Conversation interface">
+    <group>
+      <text>The container provides a built-in bean with bean type |Conversation|, scope |@RequestScoped|, and binding |@Current|, named |javax.enterprise.context.conversation|.</text>      
+      <assertion id="iaa">
+        <text>Test the bean type is correct.</text>
+      </assertion>
+
+      <assertion id="ib">
+        <text>Test the scope is correct.</text>
+      </assertion>
+
+      <assertion id="id">
+        <text>Test the binding type is correct.</text>
+      </assertion>
+
+      <assertion id="ie">
+        <text>Test the bean name is correct.</text>
+      </assertion>          
+    </group>
+    
+    <assertion id="j">
+      <text>|begin()| marks the current transient conversation long-running.  A conversation identifier may, optionally, be specified.  If no conversation identifier is specified, an identifier is generated by the container.</text>
+    </assertion>
+    
+    <assertion id="k">
+      <text>|end()| marks the current long-running conversation transient.</text>
+    </assertion>
+    
+    <assertion id="l">
+      <text>|getId()| returns the identifier of the current long-running conversation, or a null value of the current conversation is transient.</text>
+    </assertion>
+    
+    <assertion id="m">
+      <text>|getTimeout()| returns the timeout, in milliseconds, of the current conversation.</text>
+    </assertion>
+    
+    <assertion id="n">
+      <text>|setTimeout()| sets the timeout of the current conversation.</text>
+    </assertion>
+    
+    <assertion id="o">
+      <text>|isTransient()| returns |true| if the conversation is marked transient, or |false| if it is marked long-running.</text>
+    </assertion>
+    
+    <assertion id="p">
+      <text>If any method of |Conversation| is called when the conversation scope is not active, a |ContextNotActiveException| is thrown.</text>
+    </assertion>
+    
+    <assertion id="q">
+      <text>If |end()| is called, and the current conversation is marked transient, an |IllegalStateException| is thrown.</text>
+    </assertion>
+    
+    <assertion id="r">
+      <text>If |begin()| is called, and the current conversation is already marked long-running, an |IllegalStateException| is thrown.</text>
+    </assertion>
+    
+    <assertion id="s">
+      <text>If |begin()| is called with an explicit conversation identifier, and a long-running conversation with that identifier already exists, an |IllegalArgumentException| is thrown.</text>
+    </assertion>
+  </section>
+
+  <section id="7" title="Lifecycle of contextual instances">
+    
+  </section>
+  
+  <section id="7.1" title="Restriction upon bean instantiation">
+    
+  </section>
+  
+  <section id="7.2" title="Container invocations and interception">
+    <group>
+      <text>When the container invokes a method of a bean, if, and only if, the invocation is a business method invocation it passes through the method interceptor and decorator stacks, and in the case of a session bean, it is subject to EJB services such a declarative transaction management, concurrency, security and asynchronicity, as defined by the EJB specification.</text>
+      
+      <assertion id="a">
+        <text>Verify that a managed bean's business methods are intercepted</text>
+      </assertion>
+      
+      <assertion id="b">
+        <text>Verify that a managed bean's business methods are decorated</text>
+      </assertion>
+      
+      <assertion id="c">
+        <text>Verify that a session bean's business methods are intercepted</text>
+      </assertion>
+      
+      <assertion id="d">
+        <text>Verify that a session bean's business methods are decorated</text>
+      </assertion>
+    
+      <assertion id="f" testable="false">
+        <text>Verify that a session bean's business methods receive EJB services</text>
+        <note>This is tested by the EJB TCK</note>
+      </assertion>
+    </group>
+    
+    <assertion id="g">
+      <text>If the invocation is not a business method invocation, it is treated as a normal Java method call and is not intercepted by the container.</text>
+    </assertion>
+    
+    <group>
+      <text>Invocations of initializer methods by the container are not business method invocations.</text>
+      <assertion id="ha">
+        <text>Check initializer methods aren't decorated</text>
+      </assertion>
+      <assertion id="hb">
+        <text>Check initializer methods aren't intercepted</text>
+      </assertion>
+    </group>
+    
+    
+    <group>
+      <text>Invocations of producer, disposer and observer methods by the container are business method invocations are are intercepted by method interceptors and decorators.</text>
+      
+      <assertion id="ia">
+        <text>Verify producer methods are intercepted</text>
+      </assertion>
+      
+      <assertion id="ib">
+        <text>Verify producer methods are decorated</text>
+      </assertion>
+      
+      <assertion id="ic">
+        <text>Verify disposer methods are intercepted</text>
+      </assertion>
+      
+      <assertion id="id">
+        <text>Verify disposer methods are decorated</text>
+      </assertion>
+      
+      <assertion id="ie">
+        <text>Verify observer methods are intercepted</text>
+      </assertion>
+      
+      <assertion id="if">
+        <text>Verify observer methods are decorated</text>
+      </assertion>
+    </group>
+    
+    
+    <assertion id="j">
+      <text>Invocation of lifecycle callbacks by the container are not business method invocations, but are intercepted by interceptors for lifecycle callbacks.</text>
+    </assertion>
+    
+    <group>
+      <text>Invocations of interceptors and decorator methods during method or lifecycle callback interception are not business method invocations, and therefore no recursive interception occurs.</text>
+      <assertion id="ka">
+         <text>Verify decorators callbacks are not intercepted</text>
+      </assertion>
+      
+      <assertion id="kb">
+         <text>Verify decorators callbacks are not decorated</text>
+      </assertion>
+      
+      <assertion id="kc">
+         <text>Verify interceptor callbacks are not intercepted</text>
+      </assertion>
+      
+      <assertion id="kd">
+         <text>Verify interceptor callbacks are not decorated</text>
+      </assertion>
+    </group>
+  </section>
+  
+  <section id="7.3" title="Lifecycle of contextual instances">
+    
+  </section>
+
+  <section id="7.3.1" title="Lifecycle of managed beans">
+    <assertion id="aa">
+      <text>When the |create()| method of the |Bean| object that represents a managed bean is called, the container obtains an instance of the bean, as defined by the Managed Beans specification, calling the bean constructor as defined by Section 5.6.3, "Injection using the bean constructor", and performing dependency injection as defined in Section 5.6.4, "Injection of fields and initializer methods".</text>
+    </assertion>
+    
+    <assertion id="ba">
+      <text>When the |destroy()| method is called, the container destroys the instance, as defined by the Managed Beans specification, and any dependent objects, as defined in Section 5.6.5, "Destruction of dependent objects".</text>
+    </assertion>
+  </section>
+
+  <section id="7.3.2" title="Lifecycle of stateful session beans">
+    <assertion id="aa">
+      <text>When the |create()| method of a |Bean| object that represents a stateful session bean that is called, the container creates and returns a container-specific internal local reference to a new session bean instance. The reference must be passivation capable. This reference is not directly exposed to the application.</text>
+    </assertion>
+
+    <assertion id="bb">
+      <text>Before injecting or returning a contextual instance to the application, the container transforms its internal reference into an object that implements the bean types expected by the application and delegates method invocations to the underlying stateful session bean instance. This object must be passivation capable.</text>
+    </assertion>
+
+    <assertion id="bc">
+      <text>When the |destroy()| method is called, and if the underlying EJB was not already removed by direct invocation of a remove method by the application, the container removes the stateful session bean. The |@PreDestroy| callback must be invoked by the container.</text>
+    </assertion>
+  </section>
+
+  <section id="7.3.3" title="Lifecycle of stateless session and singleton beans">
+    <assertion id="a">
+      <text>When the |create()| method of a Bean object that represents a stateless session or singleton session bean is called, the container
+creates and returns a container-specific internal local reference to the session bean. This reference is not directly exposed to the application.</text>
+    </assertion>
+
+    <assertion id="b">
+      <text>Before injecting or returning a contextual instance to the application, the container transforms its internal reference into an object that implements the bean types expected by the application and delegates method invocations to the underlying session bean. This object must be passivation capable.</text>
+    </assertion>
+
+    <assertion id="c">
+      <text>When the |destroy()| method is called, the container simply discards this internal reference.</text>
+    </assertion>
+  </section>
+
+  <section id="7.3.4" title="Lifecycle of producer methods">
+    <assertion id="ea">
+      <text>When the create() method of a |Bean| object that represents a producer method is called, the container must invoke the producer method as defined by Section 5.6.6, "Invocation of producer or disposer methods". The return value of the producer method, after method interception completes, is the new contextual instance to be returned by |Bean.create()|.</text>
+    </assertion>
+
+    <assertion id="k">
+      <text>If the producer method returns a null value and the producer method bean has the scope |@Dependent|, the |create()| method returns a null value.</text>
+    </assertion>
+
+    <assertion id="l">
+    <text>If the producer method returns a null value, and the scope of the producer method is not |@Dependent|, the |create()| method throws an |IllegalProductException|.</text>
+    </assertion>
+
+    <assertion id="ma">
+      <text>When the |destroy()| method is called, and if there is a disposal method for this producer method, the container must invoke the disposer method as defined by Section 5.6.6, "Invocation of producer or disposal methods", passing the instance given to |destroy()| to the disposed parameter.</text>
+    </assertion>
+
+    <assertion id="r">
+      <text>Finally, the container destroys dependent objects, as defined in Section 5.6.5, "Destruction of dependent objects".</text>
+    </assertion>
+  </section>
+
+  <section id="7.3.5" title="Lifecycle of producer fields">
+    <assertion id="ga">
+      <text>When the |create()| method of a |Bean| object that represents a producer field is called, the container must access the producer field as defined by Section 5.6.7, "Access to producer field values" to obtain the current value of the field. The value of the producer field is the new contextual instance to be returned by |Bean.create()|.</text>
+    </assertion>
+
+    <assertion id="m">
+      <text>If the producer field contains a null value and the producer field bean has the scope |@Dependent|, the |create()| method returns a null value.</text>
+    </assertion>
+
+    <assertion id="n">
+    <text>If the producer field contains a null value, and the scope of the producer method is not |@Dependent|, the |create()| method throws an |IllegalProductException|.</text>
+    </assertion>
+  </section>
+
+  <section id="7.3.6" title="Lifecycle of resources">
+    <assertion id="l">
+      <text>When the |create()| method of a |Bean| object that represents a resource is called, the container creates and returns a container-specific internal reference to the Java EE component environment resource, entity manager, entity manager factory, remote EJB instance or web service reference. This reference is not directly exposed to the application.</text>
+    </assertion>
+
+    <assertion id="m">
+      <text>Before injecting or returning a contextual instance to the application, the container transforms its internal reference into an object that implements the bean types expected by the application and delegates method invocations to the underlying resource, entity manager, entity manager factory, remote EJB instance or web service reference. This object must be passivation capable.</text>
+    </assertion>
+
+    <assertion id="na">
+      <text>When the |destroy()| method is called, the container discards this internal reference.  For certain kinds of resource, for example persistence contexts, the container eventually performs additional cleanup to destroy state associated with the client or transaction, as required by the Java EE platform specification.</text>
+    </assertion>
+    
+    <assertion id="o">
+      <text>The container must perform ordinary Java EE component environment injection upon any non-static field that functions as a resource declaration, as defined by the Java EE platform and Common Annotations for the Java platform specifications.</text>
+    </assertion>
+    
+    <assertion id="p" testable="false">
+      <text>The container is not required to perform Java EE component environment injection upon a static field. Portable applications should not rely upon the value of a static field that functions as a resource declaration.</text>
+    </assertion>
+  </section>
+
+  <section id="8" title="Decorators">
+    <assertion id="a" testable="false">
+      <text>Decorators may be bound to any managed bean that is not itself an interceptor or decorator or to any EJB session or message-driven bean.</text>
+      <note>Doesn't specify an error</note>
+    </assertion>        
+  </section>
+
+  <section id="8.1" title="Decorator beans">
+    <assertion id="a" testable="false">
+      <text>A decorator is a managed bean.</text>
+      <note>Statement of intent</note>
+    </assertion>
+
+    <assertion id="b">
+      <text>The set of decorated types of a decorator includes all interfaces implemented directly or indirectly by the bean class, except for |java.io.Serializable|.</text>
+    </assertion>
+
+    <assertion id="c">
+      <text>The decorator bean class and its superclasses are not decorated types of the decorator.</text>
+    </assertion>
+
+    <assertion id="d">
+      <text>The decorator class may be abstract.</text>
+    </assertion>
+    
+    <assertion id="e">
+      <text>Decorators of a session bean must comply with the bean provider programming restrictions defined by the EJB specification.</text>
+    </assertion>
+    
+    <assertion id="f">
+      <text>Decorators of a stateful session bean must comply with the rules for instance passivation and conversational state defined by the EJB specification.</text>
+    </assertion>
+  </section>
+
+  <section id="8.1.1" title="Declaring a decorator">
+    <assertion id="a">
+      <text>A decorator is declared by annotating the bean class with the |@javax.decorator.Decorator| stereotype.</text>
+    </assertion>
+  </section>
+
+  <section id="8.1.2" title="Decorator delegate injection points">
+    <assertion id="a">
+      <text>All decorators have a delegate injection point.  A delegate injection point is an injection point of the bean class. The type and bindings of the injection point are called the delegate type and delegate bindings. The delegate injection point must be be declared by annotating the injection point with the annotation |@javax.decorator.Decorates|.</text>
+    </assertion>
+
+    <assertion id="b">
+      <text>The decorator applies to any bean that is eligible for injection to the delegate injection point, according to the rules defined
+in Section 5.1, "Typesafe resolution algorithm".</text>
+    </assertion>
+
+    <assertion id="ca">
+      <text>A decorator must have exactly one delegate injection point. If a decorator has more than one delegate injection point~, or does not have a delegate injection point,~ the container automatically detects the problem and treats it as a definition error, as defined in Section 12.4, "Problems detected automatically by the container".</text>
+    </assertion>
+
+    <assertion id="cb">
+      <text>A decorator must have exactly one delegate injection point. If a decorator ~has more than one delegate injection point, or~ does not have a delegate injection point, the container automatically detects the problem and treats it as a definition error, as defined in Section 12.4, "Problems detected automatically by the container".</text>
+    </assertion>
+    
+    <group>
+      <text>The delegate injection point must be an injected field, initializer method parameter or bean constructor method parameter. If an injection point that is not an injected field, initializer method parameter or bean constructor method parameter is annotated |@Decorates|, the container automatically detects the problem and treats it as a definition error, as defined in Section 12.4, "Problems detected automatically by the container".</text>
+    
+      <assertion id="cc">
+        <text>Check an injected field is ok</text>
+      </assertion>
+    
+      <assertion id="cd">
+        <text>Check an initializer method parameter is ok</text>
+      </assertion>
+    
+      <assertion id="ce">
+        <text>Check a bean constructor method parameter is ok</text>
+      </assertion>
+    
+      <assertion id="cf">
+        <text>Check that a producer method parameter is not ok</text>
+      </assertion>
+      
+    </group>
+    
+    <assertion id="cg">
+      <text>If a bean class that is not a decorator has an injection point annotated |@Decorates|, the container automatically detects the problem and treats it as a definition error, as defined in Section 12.4, "Problems detected automatically by the container".</text>
+    </assertion>
+
+    <assertion id="d">
+      <text>If a decorator applies to a managed bean, and the bean class is declared final, the container automatically detects the problem and treats it as a definition error, as defined in Section 12.4, "Problems detected automatically by the container".</text>
+    </assertion>
+
+    <assertion id="e">
+      <text>If a decorator applies to a managed bean with a non-static, non-private, final method, and the decorator also implements that method, the container automatically detects the problem and treats it as a definition error, as defined in Section 12.4, "Problems detected automatically by the container".</text>
+    </assertion>
+
+    <assertion id="f">
+      <text>The container must inject a delegate object to the delegate injection point.  The delegate object implements the delegate type and delegates method invocations along the decorator stack.</text>
+    </assertion>
+  </section>
+
+  <section id="8.1.3" title="Decorated types of a decorator">
+    <assertion id="a">
+      <text>The delegate type of a decorator must implement or extend every decorated type. If the delegate type does not implement or extend a decorated type of the decorator, the container automatically detects the problem and treats it as a definition error, as defined in Section 12.4, "Problems detected automatically by the container".</text>
+    </assertion>
+    
+    <assertion id="ab">
+      <text>If a decorated type is a parameterized type and the delegate type does not have exactly the same type parameters as the decorated type, the container automatically detects the problem and treats it as a definition error, as defined in Section 12.4, "Problems detected automatically by the container".</text>
+    </assertion>
+
+    <assertion id="b">
+      <text>A decorator is not required to implement the delegate type.</text>
+    </assertion>
+
+    <assertion id="c">
+      <text>A decorator may be an abstract Java class, and is not required to implement every method of every decorated type.</text>
+    </assertion>
+
+    <assertion id="d">
+      <text>The decorator intercepts every method declared by a decorated type of the decorator, and that is implemented by the bean class of the decorator.</text>
+    </assertion>
+  </section>
+
+  <section id="8.2" title="Decorator enablement and ordering">
+    <assertion id="a">
+    <text>By default, decorators are not enabled. A decorator must be explicitly enabled by listing its bean class under the |&lt;Decorators&gt;| element in |beans.xml| file of the bean deployment archive.</text>
+    </assertion>
+
+    <assertion id="b">
+      <text>The order of the decorator declarations determines the decorator ordering. Decorators which occur earlier in the list are called first.</text>
+    </assertion>
+    
+    <assertion id="ba">
+      <text>Each child |&lt;class&gt;| element must specify the name of a decorator bean class.  If there is no class with the specified name~, or if the class with the specified name is not a decorator bean class,~ the container automatically detects the problem and treats it as a deployment problem, as defined in Section 12.4, "Problems detected automatically by the container".</text>
+    </assertion>
+    
+    <assertion id="bb">
+      <text>Each child |&lt;class&gt;| element must specify the name of a decorator bean class.  If ~there is no class with the specified name, or if~ the class with the specified name is not a decorator bean class~,~ the container automatically detects the problem and treats it as a deployment problem, as defined in Section 12.4, "Problems detected automatically by the container".</text>
+    </assertion>
+    
+    <assertion id="bc">
+      <text>If the same class is listed twice under the |&lt;decorators&gt;| element, the container automatically detects the problem and treats it as a deployment problem, as defined in Section 12.4, "Problems detected automatically by the container".</text>
+    </assertion>
+
+    <assertion id="f">
+      <text>Decorators are called after interceptors.</text>
+    </assertion>
+  </section>
+
+  <section id="8.3" title="Decorator resolution">
+    <assertion id="aa">
+      <text>The following procedure must be used by the container when resolving decorators for a certain bean - First, the container identifies the set of matching decorators for which the bean is eligible for injection to the delegate injection point according to the rules defined in Section 5.3, "Typesafe resolution", and for which the decorator is enabled in the bean deployment archive of the bean. Next, the container orders the matching decorators according to the decorator ordering specified in Section 8.2, "Decorator enablement and ordering".</text>
+    </assertion>
+    
+    <assertion id="b">
+      <text>For a custom implementation of the Decorator interface defined in Section 11.1.1, "The Decorator interface", the container calls |getDelegateType()|, |getDelegateBindings()| and |getDecoratedTypes()| to determine the delegate type and bindings and decorated types of the decorator.</text>
+    </assertion>
+  </section>
+
+  <section id="8.4" title="Decorator stack creation">
+    <assertion id="a">
+      <text>When a bean with decorators is created, the container must
+identify the decorators for the bean according to Section 8.3, "Decorator resolution", and for each decorator, obtain a contextual reference, as defined in Section 6.5.3, "Contextual reference for a bean", and build an ordered list of the decorator instances.</text>
+    </assertion>
+  </section>
+
+  <section id="8.5" title="Decorator invocation">
+    <assertion id="a">
+      <text>Whenever a business method is invoked on an instance of a bean with decorators, the container intercepts the business method invocation and, after processing the interceptor stack, invokes decorators of the bean. The container searches for the first decorator in the decorator stack for the instance that implements the method that is being
+invoked as a business method.</text>
+    </assertion>
+
+    <assertion id="b">
+      <text>If no such decorator exists, the container invokes the business method of the intercepted instance.</text>
+    </assertion>
+
+    <assertion id="c">
+      <text>Otherwise, the container calls the method of the decorator.</text>
+    </assertion>
+
+    <assertion id="d">
+      <text>When any decorator is invoked by the container, it may in turn invoke a method of the delegate. The container intercepts the delegate invocation and searches for the first decorator in the decorator stack for the instance such that the decorator implements the method that is being invoked upon the delegate, and the decorator has not previously been invoked during this business method invocation.</text>
+    </assertion>
+
+    <assertion id="e">
+      <text>If no such decorator exists, the container invokes the business method of the intercepted instance.</text>
+    </assertion>
+
+    <assertion id="f">
+      <text>Otherwise, the container calls the method of the decorator.</text>
+    </assertion>
+  </section>
+
+  <section id="9" title="Interceptor bindings">
+
+  </section>
+
+  <section id="9.1" title="Interceptor binding types">
+    <assertion id="a">
+      <text>An interceptor binding type is a Java annotation defined as |@Target({TYPE, METHOD})| or |@Target(TYPE)| and |@Retention(RUNTIME)|.</text>
+    </assertion>
+
+    <assertion id="b">
+      <text>An interceptor binding type may be declared by specifying the |@javax.interceptor.InterceptorBindingType| metaannotation.</text>
+    </assertion>
+
+    <assertion id="c">
+      <text>Multiple interceptors may be bound to the same interceptor binding type or types.</text>
+    </assertion>
+  </section>
+
+  <section id="9.1.1" title="Interceptor binding types with additional interceptor bindings">
+    <assertion id="a">
+      <text>An interceptor binding type may declare other interceptor bindings.</text>
+    </assertion>
+
+    <assertion id="b">
+      <text>Interceptor bindings are transitive�an interceptor binding declared by an interceptor binding type is inherited by all beans and other interceptor binding types that declare that interceptor binding type.</text>
+    </assertion>
+
+    <assertion id="c">
+      <text>Interceptor binding types declared |@Target(TYPE)| may not be applied to interceptor binding types declared |@Target({TYPE, METHOD})|.</text>
+    </assertion>
+  </section>
+
+  <section id="9.1.2" title="Interceptor bindings for stereotypes">
+    <assertion id="a">
+      <text>Interceptor bindings may be applied to a stereotype by annotating the stereotype annotation</text>
+    </assertion>
+
+    <assertion id="b">
+      <text>An interceptor binding declared by a stereotype are inherited by any bean that declares that stereotype.</text>
+    </assertion>
+
+    <assertion id="c">
+      <text>If a stereotype declares interceptor bindings, it must be defined as |@Target(TYPE)|.</text>
+    </assertion>
+  </section>
+
+  <section id="9.2" title="Declaring the interceptor bindings of an interceptor">
+    <assertion id="a">
+      <text>The interceptor bindings of an interceptor are specified by annotating the interceptor class with the binding types and the |@javax.interceptor.Interceptor| annotation.</text>
+    </assertion>
+
+    <assertion id="b">
+      <text>If an interceptor does not declare an |@Interceptor| annotation, it must be bound to beans using |@Interceptors| or |ejb-jar.xml|.</text>
+    </assertion>
+
+    <assertion id="c">
+      <text>All interceptors declared using |@Interceptor| must specify at least one interceptor binding. If an interceptor declared using |@Interceptor| does not declare any interceptor binding, the container automatically detects the problem and treats it as a definition error, as defined in Section 12.4, "Problems detected automatically by the container".</text>
+    </assertion>
+
+    <assertion id="d">
+      <text>An interceptor for lifecycle callbacks may only declare interceptor binding types that are defined as |@Target(TYPE)|. If an
+interceptor for lifecycle callbacks declares an interceptor binding type that is defined |@Target({TYPE, METHOD})|, the containerautomatically detects the problem and treats it as a definition error, as defined in Section 12.4, "Problems detected automatically by the container".</text>
+    </assertion>
+  </section>
+
+  <section id="9.3" title="Binding an interceptor to a bean">
+    <assertion id="a">
+      <text>An interceptor binding may be declared by annotating the bean class, or a method of the bean class, with the interceptor binding type.</text>
+    </assertion>
+  </section>
+
+  <section id="9.4" title="Interceptor enablement and ordering">
+    <assertion id="a">
+      <text>By default, a bean deployment archive has no enabled interceptors bound via interceptor bindings. An interceptor must be explicitly enabled by listing
+its class under the |&lt;Interceptors&gt;| element of the |beans.xml| file for the bean deployment archive.</text>
+    </assertion>
+
+    <assertion id="b">
+      <text>The order of the interceptor declarations determines the interceptor ordering. Interceptors which occur earlier in the list are
+called first.</text>
+    </assertion>
+
+    <assertion id="ca">
+      <text>Each child |&lt;class&gt;| element must specify the name of an interceptor class.  If there is no class with the specified name, or if the class with the specified name is not an interceptor class, the container automatically detects the problem and treats it as a deployment problem, as defined in Section 12.4, "Problems detected automatically by the container".</text>
+    </assertion>
+    
+    <assertion id="cb">
+      <text>If the same class is listed twice under the |&lt;interceptors&gt;| element, the container automatically detects the problem and treats it as a deployment problem, as defined in Section 12.4, "Problems detected automatically by the container".</text>
+    </assertion>
+
+    <assertion id="f">
+      <text>Interceptors declared using |@Interceptors| or in |ejb-jar.xml| are called before interceptors declared using interceptor bindings.</text>
+    </assertion>
+
+    <assertion id="g">
+      <text>Interceptors are called before decorators.</text>
+    </assertion>
+  </section>
+
+  <section id="9.5" title="Interceptor resolution">
+    <assertion id="a">
+      <text>For a lifecycle callback, the bean interceptor bindings include the interceptor bindings declared by the bean at the class level, including interceptor bindings declared as meta-annotations of other interceptor bindings, recursively, and of stereotypes.
+      </text>
+    </assertion>
+
+    <assertion id="b">
+      <text>For a method, the bean interceptor bindings include the interceptor bindings declared by the bean at the class level, including interceptor bindings declared as meta-annotations of other interceptor bindings, recursively, and of stereotypes, together with all interceptor bindings declared at the method level, including interceptor bindings declared as meta-annotations of other interceptor bindings, recursively.</text>
+    </assertion>
+
+    <assertion id="ca">
+  <text>First, the container identifies the set of matching enabled interceptors where, for each interceptor binding declared by the interceptor, there exists an interceptor binding in the set of bean interceptor bindings with (a) the same type and (b) the same annotation member value for each member which is not annotated |@javax.enterprise.inject.NonBinding| (see Section 9.5.2, "Interceptor binding types with members"), and the interceptor intercepts the given kind of lifecycle callback or business method, and the interceptor is enabled in the bean deployment archive of the bean.</text>
+    </assertion>
+
+    <assertion id="ea">
+      <text>Next, the container orders the matching interceptors according to the interceptor ordering specified in Section 9.4, "Interceptor enablement and ordering".</text>
+    </assertion>
+    
+    <assertion id="f">
+      <text>For a custom implementation of the Interceptor interface defined in Section 11.1.2, "The Interceptor interface", the container calls |getInterceptorBindings()| to determine the interceptor bindings of the interceptor and |intercepts()| to determine if the interceptor intercepts a given kind of lifecycle callback or business method.</text>
+    </assertion>
+  </section>
+
+  <section id="9.5.1" title="Interceptors with multiple bindings">
+    <assertion id="a">
+      <text>An interceptor class may specify multiple interceptor bindings, in which case the interceptor will be applied only to beans
+that declare all the bindings at the class level, and to methods of beans for which every binding appears at either the method or class level.</text>
+    </assertion>
+  </section>
+
+  <section id="9.5.2" title="Interceptor binding types with members">
+    <assertion id="a">
+      <text>Interceptor binding types may have annotation members.</text>
+    </assertion>
+
+    <assertion id="b">
+      <text>An annotation member may be excluded from consideration using the @NonBinding annotation.</text>
+    </assertion>
+
+    <assertion id="c">
+      <text>Array-valued or annotation-valued members of an interceptor binding type must be annotated |@NonBinding|. If an array-valued or annotation-valued member of an interceptor binding type is not annotated |@NonBinding|, the container automatically detects the problem and treats it as a definition error, as defined in Section 12.4, "Problems detected automatically by the container".</text>
+    </assertion>
+    
+    <assertion id="d">
+      <text>If the set of interceptor bindings of a bean or interceptor, including bindings inherited from stereotypes and other interceptor bindings, has two instances of a certain interceptor binding type and the instances have different values of some annotation member, the container automatically detects the problem and treats it as a definition error, as defined in Section 12.4, "Problems detected automatically by the container".</text>
+    </assertion>
+  </section>
+
+  <section id="10" title="Events">
+
+  </section>
+
+  <section id="10.1" title="Event types and binding types">
+
+    <assertion id="aa">
+      <text>An event object is an instance of a concrete Java class with no type variables.</text>
+    </assertion>
+
+    <assertion id="c">
+      <text>The event types of the event include all superclasses and interfaces of the runtime class of the event object.</text>
+    </assertion>
+    
+    <assertion id="cb">
+      <text>An event type may not contain a type variable.</text>
+    </assertion>
+
+    <assertion id="d">
+      <text>An event binding type is a Java annotation defined as |@Target({FIELD, PARAMETER})| ~or |@Target({METHOD, FIELD, PARAMETER, TYPE})| and |@Retention(RUNTIME)|~</text>
+    </assertion>
+
+    <assertion id="e">
+      <text>An event binding type is a Java annotation defined as ~|@Target({FIELD, PARAMETER})| or~ |@Target({METHOD, FIELD, PARAMETER, TYPE})| ~and |@Retention(RUNTIME)|~</text>
+    </assertion>
+
+    <assertion id="f">
+      <text>An event binding type is a Java annotation defined as ~|@Target({FIELD, PARAMETER})| or |@Target({METHOD, FIELD, PARAMETER, TYPE})| and ~|@Retention(RUNTIME)|</text>
+    </assertion>
+
+    <assertion id="g">
+      <text>All event binding types must specify the |@javax.enterprise.inject.BindingType| meta-annotation</text>
+    </assertion>
+
+    <assertion id="i">
+      <text>Every event has the binding |@javax.enterprise.inject.Any|, even if it does not explicitly declare this binding.</text>
+    </assertion>
+    
+    <assertion id="j">
+      <text>Any Java type may be an observed event type.</text>
+    </assertion>
+  </section>
+
+  <section id="10.2" title="Observer resolution">
+    <assertion id="h">
+      <text>An observer method will be notified of an event if the observed event type it specifies is one of the event types of the event, and if all the observed event bindings it specifies are event bindings of the event.</text>
+    </assertion>
+
+    <assertion id="j">
+      <text>If the runtime type of the event object contains a type variable, the container must throw an |IllegalArgumentException|.</text>
+    </assertion>
+  </section>
+  
+  <section id="10.2.1" title="Assignability of type variables, raw and parameterized types">
+    <assertion id="a">
+      <text>An event type is considered assignable to a type variable if the event type is assignable to the upper bound, if any.</text>
+    </assertion>
+    
+    <assertion id="b">
+      <text>A parameterized event type is considered assignable to a raw observed event type if the raw types are identical.</text>
+    </assertion>
+    
+    <assertion id="c">
+      <text>A parameterized event type is considered assignable to a parameterized observed event type if they have identical raw type and for each parameter the observed event type parameter is an actual type with identical raw type to the event type parameter, and, if the type is parameterized, the event type parameter is assignable to the observed event type parameter according to these rules, or the observed event type parameter is a wildcard and the event type parameter is assignable to the upper bound, if any, of the wildcard and assignable from the lower bound, if any, of the wildcard, or the observed event type parameter is a type variable and the event type parameter is assignable to the upper bound, if any, of the type variable.</text>
+    </assertion>
+  </section>
+
+  <section id="10.2.2" title="Event binding types with members">
+    <assertion id="a">
+      <text>The binding type for an |Event| binding may have annotation members.</text>
+    </assertion>
+
+    <assertion id="b" testable="false">
+      <text>The container uses |equals()| to compare event binding type member values.</text>
+      <note>Since only primitive types are allowed, the call to equals() cannot be checked</note>
+    </assertion>
+  </section>
+
+  <section id="10.2.3" title="Multiple event bindings">
+    <assertion id="a">
+      <text>An event parameter may have multiple bindings</text>
+    </assertion>
+
+    <assertion id="b">
+      <text>An observer method will only be notified if all the observed event bindings are specified when the event is fired</text>
+    </assertion>
+
+    <assertion id="c">
+      <text>Other, less specific, observers will also be notified of events with multiple event bindings</text>
+    </assertion>
+  </section>
+
+  <section id="10.3" title="Firing events">
+    <assertion id="a">
+      <text>Beans fire events via an instance of the |javax.enterprise.event.Event| interface, which may be injected.</text>
+    </assertion>
+
+    <assertion id="b">
+      <text>The method |fire()| accepts an event object.</text>
+    </assertion>
+
+    <assertion id="c">
+      <text>Any combination of bindings may be specified at the injection point.</text>
+    </assertion>
+
+    <assertion id="d">
+      <text>Or, the application may specify bindings dynamically.</text>
+    </assertion>
+  </section>
+
+  <section id="10.3.1" title="The Event interface">
+    <assertion id="ca">
+      <text>The |Event| interface provides a method for firing events with a specified combination of type and bindings.</text>
+    </assertion>
+    
+    <assertion id="cb">
+      <text>For an injected |Event|, the specified type is the type parameter specified at the injection point, and the specified bindings are the bindings specified at the injection point.</text>
+    </assertion>
+
+    <assertion id="eaa">
+      <text>The |select()| method returns a child |Event| for a given specified type and additional specified bindings.  If no specified type is given, the specified type is the same as the parent.</text>
+    </assertion>
+    
+    <assertion id="eab">
+      <text>If the specified type contains a type variable, an |IllegalArgumentException| is thrown.</text>
+    </assertion>
+
+    <assertion id="eba">
+      <text>If two instances of the same binding type are passed to |select()|, an |IllegalArgumentException| is thrown.</text>
+    </assertion>
+
+    <assertion id="ec">
+      <text>If an instance of an annotation that is not a binding type is passed to |select()|, an |IllegalArgumentException| is thrown.</text>
+    </assertion>
+
+    <assertion id="eda">
+      <text>The method |fire()| fires an event with the specified bindings and notifies observers, as defined by Section 10.5, "Observer notification".</text>
+    </assertion>
+
+    <assertion id="f">
+      <text>If the runtime type of the event object contains a type variable, an |IllegalArgumentException| is thrown.</text>
+    </assertion>
+  </section>
+
+  <section id="10.3.2" title="The built-in Event">
+    <assertion id="a">
+      <text>The container must provide a built-in bean with |Event&lt;X&gt;| for every legal observed event type X in its set of bean types.</text>
+    </assertion>
+
+    <assertion id="b">
+      <text>The container must provide a built-in bean with every event binding type in its set of binding types.</text>
+    </assertion>
+
+    <assertion id="d">
+      <text>The container must provide a built-in bean with scope |@Dependent|.</text>
+    </assertion>
+
+    <assertion id="e">
+      <text>The container must provide a built-in bean with no bean EL name.</text>
+    </assertion>
+
+    <assertion id="f">
+      <text>The container must provide a built-in bean with an implementation provided automatically by the container.</text>
+    </assertion>
+
+    <assertion id="g">
+      <text>The built-in implementation must be a passivation capable dependency, as defined in Section 6.6.2, "Passivation capable
+dependencies".</text>
+    </assertion>
+  </section>
+
+  <section id="10.4" title="Observer methods">
+    <assertion id="aa">
+      <text>An observer method is a non-abstract method of a managed bean class or session bean class.</text>
+    </assertion>
+    
+    <assertion id="c">
+      <text>An observer method may be either static or non-static.</text>
+    </assertion>
+
+    <assertion id="d">
+      <text>If the bean is a session bean, the observer method must be either a business method of the EJB or a static method of the bean class.</text>
+    </assertion>
+
+    <assertion id="e">
+      <text>There may be arbitrarily many observer methods with the same event parameter type and bindings.</text>
+    </assertion>
+
+    <assertion id="f">
+      <text>A bean may declare multiple observer methods.</text>
+    </assertion>
+  </section>
+
+  <section id="10.4.1" title="Event parameter of an observer method">
+    <assertion id="a">
+      <text>Each observer method must have exactly one event parameter, of the same type as the event type it observes.  When searching for observer methods for an event, the container considers the type and bindings of the event parameter</text>
+    </assertion>
+
+    <assertion id="b">
+      <text>If the event parameter does not explicitly declare any binding, the observer method observes events with no binding</text>
+    </assertion>
+
+    <assertion id="ca">
+      <text>The event parameter type may contain a type variable or ~wildcard~.</text>
+    </assertion>
+
+    <assertion id="cb">
+      <text>The event parameter type may contain a ~type variable~ or wildcard.</text>
+    </assertion>
+
+  </section>
+
+  <section id="10.4.2" title="Declaring an observer method">
+    <assertion id="a">
+      <text>An observer method may be declared by annotating a parameter |@javax.enterprise.event.Observes|. That parameter is the event parameter. The declared type of the parameter is the observed event type.</text>
+    </assertion>
+
+    <assertion id="b">
+      <text>If a method has more than one parameter annotated |@Observes|, the container automatically detects the problem and treats it as a definition error, as defined in Section 12.4, "Problems detected automatically by the container".</text>
+    </assertion>
+
+    <assertion id="c">
+      <text>Observed event bindings may be declared by annotating the event parameter.</text>
+    </assertion>
+
+    <assertion id="d">
+      <text>If an observer method is annotated |@Produces| the container automatically detects the problem and treats it as a definition error, as defined in Section 12.4, "Problems detected automatically by the container".</text>
+    </assertion>
+
+    <assertion id="e">
+      <text>If an observer method is annotated |@Initializer| the container automatically detects the problem and treats it as a definition error, as defined in Section 12.4, "Problems detected automatically by the container".</text>
+    </assertion>
+
+    <assertion id="f">
+      <text>If an observer method is has a parameter annotated |@Disposes|, the container automatically detects the problem and treats it as a definition error, as defined in Section 12.4, "Problems detected automatically by the container".</text>
+    </assertion>
+
+    <assertion id="g">
+      <text>If a non-static method of a session bean class has a parameter annotated |@Observes|, and the method is not a business method of the EJB, the container automatically detects the problem and treats it as a definition error, as defined in Section 12.4, "Problems detected automatically by the container".</text>
+    </assertion>
+    
+    <assertion id="h">
+      <text>Interceptors and decorators may not declare observer methods. If an interceptor or decorator has a method with a parameter annotated |@Observes|, the container automatically detects the problem and treats it as a definition error, as defined in Section 12.4, "Problems detected automatically by the container".</text>
+    </assertion>
+  </section>
+
+  <section id="10.4.3" title="Observer method parameters">
+    <assertion id="a">
+      <text>In addition to the event parameter, observer methods may declare additional parameters, which may declare bindings. These additional parameters are injection points.</text>
+    </assertion>
+  </section>
+
+  <section id="10.4.4" title="Conditional observer methods">
+    <assertion id="a">
+      <text>A conditional observer method may be declared by specifying |notify=IF_EXISTS|.</text>
+    </assertion>
+    
+    <assertion id="b">
+      <text>Beans with scope |@Dependent| may not have conditional observer methods. If a bean with scope |@Dependent| has an observer method declared |notify=IF_EXISTS|, the container automatically detects the problem and treats it as a definition error, as defined in Section 12.4, "Problems detected automatically by the container".</text>
+    </assertion>
+    
+    <assertion id="c">
+      <text>The enumeration |javax.enterprise.event.Notify| identifies the supported values of |notify|.</text>
+    </assertion>
+  </section>
+
+  <section id="10.4.5" title="Transactional observer methods">
+    <assertion id="a">
+      <text>Transactional observer methods are observer methods which receive event notifications during the before or after completion phase of the transaction in which the event was fired. If no transaction is in progress when the event is fired, they are notified at the same time as other observers</text>
+    </assertion>
+
+    <assertion id="b">
+      <text>A before completion observer method is called during the before completion phase of the transaction</text>
+    </assertion>
+
+    <assertion id="c">
+      <text>An after completion observer method is called during the after completion phase of the transaction</text>
+    </assertion>
+
+    <assertion id="d">
+      <text>An after success observer method is called during the after completion phase of the transaction, only when the transaction completes successfully</text>
+    </assertion>
+
+    <assertion id="e">
+      <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" testable="false">
+      <text>The enumeration |javax.enterprise.event.TransactionPhase| identifies the kind of transactional observer method.</text>
+      <note>Should we just sigtest this?</note>
+    </assertion>
+
+    <assertion id="gaa">
+    <text>A transactional observer method may be declared by specifying any value other than |IN_PROGRESS| for |during|.</text>
+    </assertion>
+  </section>
+
+  <section id="10.5" title="Observer notification">
+    <assertion id="aa">
+      <text>When an event is fired by the application, the container must determine the observers for that event according to the observer resolution defined by Section 10.2, "Observer resolution", then then for each observer method, either invoke the observer method immediately or register the observer method for later invocation during the transaction completion phase, using a JTA |Synchronization|.</text>
+    </assertion>
+
+    <assertion id="b" testable="false">
+      <text>The order in which observers are called in not defined, and so portable applications should not rely upon the order in which observers are called.</text>
+      <note>Behavior is not defined.</note>
+    </assertion>
+    
+    <assertion id="bb">
+      <text>If the observer method is a transactional observer method and there is currently a JTA transaction in progress, the container calls the observer method during the appropriate transaction completion phase.  ~Otherwise, the container calls the observer immediately.~</text>
+    </assertion>
+    
+    <assertion id="bc">
+      <text>If the observer method is a transactional observer method and there is currently a JTA transaction in progress, ~the container calls the observer method during the appropriate transaction completion phase.~  Otherwise, the container calls the observer immediately.</text>
+    </assertion>
+    
+    <assertion id="bd">
+      <text>Any observer method called before completion of a transaction may call |setRollbackOnly()| to force a transaction rollback.</text>
+    </assertion>
+    
+    <assertion id="bd" testable="false">
+      <text>An observer method may not directly initiate, commit or rollback JTA transactions.</text>
+      <note>Doesn't specify what happens if they do</note>
+    </assertion>
+
+    <assertion id="ca" testable="false">
+      <text>Observers may throw exceptions. If an observer method is a transactional observer method, any exception is caught and logged by the container.</text>
+      <note>We can't verify what is logged</note>
+    </assertion>
+    
+    <assertion id="cb">
+      <text>Observers may throw exceptions. If an observer method is a transactional observer method, ~any exception is caught and logged by the container.~  Otherwise, the exception aborts processing of the event.</text>
+    </assertion>
+    
+    <assertion id="cc">
+      <text>Observers may throw exceptions. ~If an observer method is a transactional observer method, any exception is caught and logged by the container.  Otherwise, the exception aborts processing of the event.  No other observer methods of that event will be called.~  The |fireEvent()| method rethrows the exception.  ~If the exception is a checked exception, it is wrapped and rethrown as an (unchecked) |ObserverException|~.</text>
+    </assertion>
+    
+    <assertion id="cd">
+      <text>Observers may throw exceptions. ~If an observer method is a transactional observer method, any exception is caught and logged by the container.  Otherwise, the exception aborts processing of the event.  No other observer methods of that event will be called.  The |fireEvent()| method rethrows the exception.~  If the exception is a checked exception, it is wrapped and rethrown as an (unchecked) |ObserverException|.</text>
+    </assertion>
+
+    <assertion id="f">
+      <text>For a custom implementation of the |ObserverMethod| interface defined in Section 11.1.3, "The ObserverMethod interface", the container must call |getNotify()| and |getTransactionPhase()| to determine is the observer method is a conditional or transactional observer method, and |notify()| to invoke the method.</text>
+    </assertion>
+  </section>
+
+  <section id="10.5.1" title="Observer method invocation context">
+    <assertion id="ba">
+      <text>If the observer method is a before completion transactional observer method, it is called within the context of the transaction that is about to complete and with the same client security context and lifecycle contexts.</text>
+    </assertion>
+
+    <assertion id="c">
+      <text>If the observer method is any other kind of transactional observer method, it is called in an unspecified transaction context, but with the same client security context and lifecycle contexts as the transaction that just completed.</text>
+    </assertion>
+
+    <assertion id="da">
+      <text>If an observer method is not a before completion transactional method, and not any other kind of transactional observer method, then the observer method is called in the same transaction context, client security context and lifecycle contexts as the invocation of |Event.fire()| or |BeanManager.fireEvent()|.</text>
+    </assertion>
+
+    <assertion id="e">
+      <text>The transaction and security contexts for a business method of a session bean also depend upon the transaction attribute and |@RunAs| descriptor, if any.</text>
+    </assertion>
+  </section>
+
+  <section id="11" title="Portable extensions">
+    <assertion id="a" testable="false">
+    <text>A portable extension may integrate with the container by providing its own beans, interceptors and decorators to the container.</text>
+    </assertion>
+
+    <assertion id="b" testable="false">
+      <text>A portable extension may integrate with the container by injecting dependencies into its own objects using the dependency injection service.</text>
+    </assertion>
+
+    <assertion id="c" testable="false">
+      <text>A portable extension may integrate with the container by providing a context implementation for a custom scope.</text>
+    </assertion>
+
+    <assertion id="f" testable="false">
+      <text>Augmenting or overriding the annotation-based metadata with metadata from some other source.</text>
+    </assertion>
+  </section>
+
+  <section id="11.1" title="The Bean interface">
+    <assertion id="aa">
+      <text>Implementations of |Bean| must also implement the inherited operations defined by the |Contextual| interface defined in Section 6.1, "The Contextual interface".</text>
+    </assertion>
+
+    <assertion id="ba">
+      <text>|getTypes()|, |getBindings()|, |getScopeType()|, |getName()| and |getStereotypes()| must return the bean types, bindings, scope type, EL name and stereotypes of the bean, as defined in Chapter 2, Concepts.</text>
+    </assertion>
+    
+    <assertion id="bb">
+      <text>|getBeanClass()| returns the bean class of the managed bean or session bean or of the bean that declares the producer method or field.</text>
+    </assertion>
+    
+    <assertion id="bc">
+      <text>|isPolicy()| must return |true| if the bean is a policy, and |false| otherwise.</text>
+    </assertion>
+
+    <assertion id="bd">
+      <text>|isNullable()| must return |true| if the method |create()| sometimes returns a |null| value, and |false| otherwise, as defined in Section 5.3.4, "Primitive types and null values".</text>
+    </assertion>
+
+    <assertion id="c">
+      <text>|getInjectionPoints()| returns a set of |InjectionPoint| objects, defined in Section 5.6.9, "Injection point metadata", representing injection points of the bean, that will be validated by the container at initialization time.</text>
+    </assertion>
+    
+    <assertion id="f">
+      <text>An instance of |Bean| exists for every enabled bean.</text>
+    </assertion>
+
+    <assertion id="g" testable="false">
+      <text>An application or portable extension may add support for new kinds of beans beyond those defined by the this specification (managed beans, session beans, producer methods and fields, resources and message destinations) by implementing |Bean| and registering beans with the container, using the mechanism defined in Section 11.5.2, "AfterBeanDiscovery event".</text>
+    </assertion>
+  </section>
+
+  <section id="11.1.1" title="The Decorator interface">
+    <assertion id="a">
+      <text>The |Bean| object for a decorator must implement the interface |javax.enterprise.inject.spi.Decorator|.</text>
+    </assertion>
+
+    <assertion id="b">
+      <text>|getDecoratedTypes()| returns the decorated types of the decorator.</text>
+    </assertion>
+
+    <assertion id="c">
+      <text>|getDelegateType()| and |getDelegateBindings()| return the delegate type and bindings of the decorator.</text>
+    </assertion>
+    
+    <assertion id="d">
+      <text>An instance of |Decorator| exists for every enabled decorator.</text>
+    </assertion>
+  </section>
+
+  <section id="11.1.2" title="The Interceptor interface">
+    <assertion id="a">
+      <text>The |Bean| object for an interceptor must implement |javax.enterprise.inject.spi.Interceptor|.</text>
+    </assertion>
+
+    <assertion id="b">
+      <text>|getInterceptorBindingTypes()| returns the interceptor bindings of the interceptor.</text>
+    </assertion>
+
+    <assertion id="c">
+      <text>|intercepts()| returns |true| if the interceptor intercepts callbacks or business methods of the given type, and |false| otherwise.</text>
+    </assertion>
+
+    <assertion id="d">
+      <text>|intercept()| invokes the specified kind of lifecycle callback or business method upon the given instance.</text>
+    </assertion>
+
+    <assertion id="e">
+      <text>An |InterceptionType| identifies the kind of lifecycle callback or business method.</text>
+    </assertion>
+    
+    <assertion id="f">
+      <text>An instance of |Interceptor| exists for every enabled interceptor.</text>
+    </assertion>
+  </section>
+  
+  <section id="11.1.3" title="The ObserverMethod interface">
+    <assertion id="a" testable="false">
+      <text>The interface |javax.enterprise.inject.spi.ObserverMethod| defines everything the container needs to know about an observer method.</text>
+    </assertion>
+    
+    <assertion id="b">
+      <text>|getBean()| returns the bean with the observer method.</text>
+    </assertion>
+    
+    <assertion id="c">
+      <text>|getObservedType()| and |getObservedBindings()| return the observed event type and bindings.</text>
+    </assertion>
+    
+    <assertion id="d">
+      <text>|getNotify()| returns |IF_EXISTS| for a conditional observer and |ALWAYS| otherwise.</text>
+    </assertion>
+    
+    <assertion id="e">
+      <text>|getTransactionPhase()| returns the appropriate transaction phase for a transactional observer method or |IN_PROGRESS| otherwise.</text>
+    </assertion>
+    
+    <assertion id="f">
+      <text>|notify()| calls the observer method, as defined in Section 5.6.8 "Invocation of observer methods".</text>
+    </assertion>
+    
+    <assertion id="g">
+      <text>An instance of |Bean| exists for every observer method of every enabled bean.</text>
+    </assertion>
+  </section>
+  
+  <section id="11.2" title="The Producer and InjectionTarget interfaces">
+    <assertion id="a" testable="false">
+      <text>The interface |javax.enterprise.inject.spi.Producer| provides a generic operation for producing an instance of a type.</text>
+      <note>Statement of intent</note>
+    </assertion>
+
+    <assertion id="ba">
+      <text>For a |Producer| that represents a class, |produce()| calls the constructor annotated |@Initializer| if it exists, or the constructor with no parameters otherwise, as defined in Section 5.6.3, "Injection using the bean constructor".</text>
+    </assertion>
+    
+    <assertion id="bb">
+      <text>For a |Producer| that represents a class, |produce()| calls the constructor annotated |@Initializer| if it exists, or the constructor with no parameters otherwise, as defined in Section 5.6.3, "Injection using the bean constructor".</text>
+    </assertion>
+    
+    <assertion id="c">
+      <text>For a |Producer| that represents a class, |dispose()| does nothing.</text>
+    </assertion>
+    
+    <assertion id="da">
+      <text>For a |Producer| that represents a class, |getInjectionPoints()| returns a set of |InjectionPoint| objects representing all _injected fields_, bean constructor parameters and initializer method parameters.</text>
+    </assertion>
+    
+    <assertion id="db">
+      <text>For a |Producer| that represents a class, |getInjectionPoints()| returns a set of |InjectionPoint| objects representing all injected fields, _bean constructor parameters_ and initializer method parameters.</text>
+    </assertion>
+    
+    <assertion id="dc">
+      <text>For a |Producer| that represents a class, |getInjectionPoints()| returns a set of |InjectionPoint| objects representing all injected fields, bean constructor parameters and _initializer method parameters_.</text>
+    </assertion>
+    
+    <assertion id="ea">
+      <text>For a Producer that represents a producer _method_ or field, |produce()| _calls the producer method on_, or accesses the producer field of, a contextual instance of the most specialized bean that specializes the bean that declares the producer method, as defined in Section 5.6.6, "Invocation of producer or disposer methods".</text>
+    </assertion>
+    
+    <assertion id="eb">
+      <text>For a Producer that represents a producer method or _field_, |produce()| calls the producer method on, _or accesses the producer field of_, a contextual instance of the most specialized bean that specializes the bean that declares the producer method, as defined in Section 5.6.6, "Invocation of producer or disposer methods".</text>
+    </assertion>
+    
+    <assertion id="fa">
+      <text>For a Producer that represents a producer _method_ or field, |dispose()| calls the disposer method, if any, on a contextual instance of the most specialized bean that specializes the bean that declares the disposer method, as defined in Section 5.6.6, "Invocation of producer or disposer methods", or performs any additional required cleanup, if any, to destroy state associated with a resource.</text>
+    </assertion>
+    
+    <assertion id="fb">
+      <text>For a Producer that represents a producer method or _field_, |dispose()| calls the disposer method, if any, on a contextual instance of the most specialized bean that specializes the bean that declares the disposer method, as defined in Section 5.6.6, "Invocation of producer or disposer methods", or performs any additional required cleanup, if any, to destroy state associated with a resource.</text>
+    </assertion>
+    
+    <assertion id="g">
+      <text>For a Producer that represents a producer method, |getInjectionPoints()| returns the set of |InjectionPoint| objects representing all parameters of the producer method.</text>
+    </assertion>
+    
+    <assertion id="h" testable="false">
+      <text>The subinterface |javax.enterprise.inject.spi.InjectionTarget| provides operations for performing dependency injection and lifecycle callbacks on an instance of a type.</text>
+      <note>Statement of intent</note>
+    </assertion>
+    
+    <assertion id="i">
+      <text>|inject()| performs dependency injection upon the given object. First, the container performs Java EE component environment injection according to the semantics required by the Java EE platform specification. Next, it sets the value of all injected fields, and then calls all initializer methods, as defined in Section 5.6.4, "Injection of fields and initializer methods".</text>
+    </assertion>
+    
+    <assertion id="j">
+      <text>|postConstruct()| calls the |@PostConstruct| callback, if it exists, according to the semantics required by the Java EE platform specification.</text>
+    </assertion>
+    
+    <assertion id="k">
+      <text>|preDestroy()| calls the |@PreDestroy| callback, if it exists, according to the semantics required by the Java EE platform specification.</text>
+    </assertion>
+  </section>
+
+  <section id="11.3" title="The BeanManager object">
+    <assertion id="aa">
+      <text>The container provides a built-in bean with bean type |BeanManager|~, scope |@Dependent| and binding |@Current|~.</text>
+    </assertion>
+
+    <assertion id="ab">
+      <text>The container provides a built-in bean with ~bean type |BeanManager|,~ scope |@Dependent|~ and binding |@Current|~.</text>
+    </assertion>
+
+    <assertion id="ac">
+      <text>The container provides a built-in bean with ~bean type |BeanManager|, scope |@Dependent| and~ binding |@Current|.</text>
+    </assertion>
+
+    <assertion id="b">
+      <text>The built-in implementation must be a passivation capable dependency, as defined in Section 6.6.2, "Passivation capable dependencies".</text>
+    </assertion>
+
+    <assertion id="c">
+      <text>Any bean may obtain an instance of |BeanManager| by injecting it.</text>
+    </assertion>
+
+    <assertion id="da">
+      <text>Java EE components may obtain an instance of |BeanManager| from JNDI by looking up the name |java:comp/BeanManager|.</text>
+    </assertion>    
+
+    <assertion id="e">
+      <text>Any operation of |BeanManager| may be called at any time during the execution of the application.</text>
+      <note>This does not appear to be testable</note>
+    </assertion>
+  </section>
+
+  <section id="11.3.1" title="Obtaining a contextual reference for a bean">
+    <assertion id="a">
+      <text>The method |BeanManager.getReference()| returns a contextual reference for a given bean and bean type, as defined in Section 6.5.3, "Contextual reference for a bean".</text>
+    </assertion>
+
+    <assertion id="b">
+      <text>The first parameter is the |Bean| object representing the bean. The second parameter represents the bean type that must be implemented by any client proxy that is returned.</text>
+    </assertion>
+  </section>
+
+  <section id="11.3.2" title="Obtaining an injectable reference">
+    <assertion id="a">
+      <text>The method |BeanManager.getInjectableReference()| returns an injectable reference for a given injection point, as defined in Section 5.6.1, "Injectable references".</text>
+    </assertion>
+    
+    <assertion id="b">
+      <text>If the |InjectionPoint| represents a decorator delegate injection point, |getInjectableReference()| returns a delegate, as defined in Section 8.1.2, "Decorator delegate injection points".</text>
+    </assertion>
+    
+    <assertion id="bb">
+      <text>If typesafe resolution results in an unsatisfied dependency, the container must throw an |UnsatisfiedResolutionException|.</text>
+    </assertion>
+    
+    <assertion id="bc">
+      <text>If typesafe resolution results in an unresolvable ambiguous dependency, the container must throw an |AmbiguousResolutionException|.</text>
+    </assertion>
+
+    <assertion id="c">
+      <text>Implementations of |Bean| usually maintain a reference to an instance of |BeanManager|. When the |Bean| implementation performs dependency injection, it must obtain the contextual instances to inject by calling |BeanManager.getInjectableReference()|, passing an instance of  |InjectionPoint| that represents the injection point and the instance of |CreationalContext| that was passed to |Bean.create()|.</text>
+      <note>This cannot be well tested at the moment.</note>
+    </assertion>
+  </section>
+  
+  <section id="11.3.3" title="Obtaining a CreationalContext">
+    <assertion id="a">
+      <text>An instance of |CreationalContext| may be obtained by calling |BeanManager.createCreationalContext()|.</text>
+    </assertion>
+  </section>
+
+  <section id="11.3.4" title="Obtaining a Bean by type">
+    <assertion id="aa">
+      <text>The method |BeanManager.getBeans()| returns the set of beans which match the given required type and bindings and are accessible to the class into which the |BeanManager| was injected, or to the Java EE component from whose JNDI environment namespace the |BeanManager| was obtained, according to the rules of typesafe resolution defined in Section 5.3, "Typesafe resolution".</text>
+    </assertion>
+
+    <assertion id="b">
+      <text>The first parameter is a required bean type. The remaining parameters are required bindings.</text>
+    </assertion>
+
+    <assertion id="c">
+      <text>If no bindings are passed to |getBeans()|, the default binding |@Current| is assumed.</text>
+    </assertion>
+
+    <assertion id="da">
+      <text>If the given type represents a type variable, an |IllegalArgumentException| is thrown.</text>
+    </assertion>
+
+    <assertion id="e">
+      <text>If two instances of the same binding type are given, an |IllegalArgumentException| is thrown.</text>
+    </assertion>
+
+    <assertion id="f">
+      <text>If an instance of an annotation that is not a binding type is given, an |IllegalArgumentException| is thrown.</text>
+    </assertion>
+  </section>
+
+  <section id="11.3.5" title="Obtaining a Bean by name">
+    <assertion id="aa">
+      <text>The method |BeanManager.getBeans()| which accepts a string returns the set of beans which match the given EL name and are accessible to the class into which the |BeanManager| was injected, or to the Java EE component from whose JNDI environment namespace the |BeanManager| was obtained, according to the rules of EL name resolution defined in Section 5.4, "EL name resolution".</text>
+    </assertion>
+
+    <assertion id="b">
+      <text>The parameter is an EL name.</text>
+    </assertion>
+  </section>
+
+  <section id="11.3.6" title="Obtaining the most specialized bean">
+    <assertion id="a">
+      <text>The method |BeanManager.getMostSpecializedBean()| returns the |Bean| object representing the most specialized enabled bean that specializes the given bean, as defined in Section 4.3.2, "Most specialized enabled bean for a bean".</text>
+    </assertion>
+  </section>
+  
+  <section id="11.3.7" title="Obtaining a passivation capable bean by identifier">
+    <assertion id="a">
+      <text>The method |BeanManager.getPassivationCapableBean()| returns the |PassivationCapableBean| with the given identifier.</text>
+    </assertion>
+  </section>
+  
+  <section id="11.3.8" title="Resolving an ambiguous dependency">
+    <assertion id="a">
+      <text>The method |BeanManager.resolve()| applies the ambiguous dependency resolution rules defined in Section 5.3.1, "Unsatisfied and ambiguous dependencies" to a set of |Beans|.</text>
+    </assertion>
+    
+    <assertion id="b">
+      <text>If the ambiguous dependency resolution rules fail, the container must throw an |AmbiguousResolutionException|.</text>
+    </assertion>
+  </section>
+  
+  <section id="11.3.9" title="Validating a dependency">
+    <assertion id="a">
+      <text>The |BeanManager.validate()| operation validates a dependency.</text>
+      <note>Statement of intent</note>
+    </assertion>
+
+    <assertion id="b">
+      <text>The method |validate()| validates the dependency and throws an |InjectionException| if there is a deployment problem (for example, an unsatisfied or unresolvable ambiguous dependency) associated with the injection point.</text>
+    </assertion>
+  </section>
+  
+  <section id="11.3.10" title="Firing an event">
+    <assertion id="a">
+      <text>The method |BeanManager.fireEvent()| fires an event and notifies observers, according to Section 10.5, "Observer notification".</text>
+    </assertion>
+    
+    <assertion id="b">
+      <text>The first argument is the event object.  The remaining parameters are event bindings.</text>
+    </assertion>
+    
+    <assertion id="c">
+      <text>If the runtime type of the event object contains a type variable, an |IllegalArgumentException| is thrown.</text>
+    </assertion>
+    
+    <assertion id="d">
+      <text>If two instances of the same binding type are given, an |IllegalArgumentException| is thrown.</text>
+    </assertion>
+    
+    <assertion id="e">
+      <text>If an instance of an annotation that is not a binding type is given, an |IllegalArgumentException| is thrown.</text>
+    </assertion>
+  </section>
+  
+  <section id="11.3.11" title="Observer method resolution">
+    <assertion id="a">
+      <text>The method |BeanManager.resolveObserverMethods()| resolves observer methods for an event according to the rules of observer resolution defined in Section 10.2, "Observer resolution".</text>
+    </assertion>
+
+    <assertion id="b">
+      <text>The first parameter of |resolveObserverMethods()| is the event object. The remaining parameters are event bindings.</text>
+    </assertion>
+    
+    <assertion id="c">
+      <text>If the runtime type of the event object contains a type variable, an |IllegalArgumentException| is thrown.</text>
+    </assertion>
+    
+    <assertion id="d">
+      <text>If two instances of the same binding type are given, an |IllegalArgumentException| is thrown.</text>
+    </assertion>
+    
+    <assertion id="e">
+      <text>If an instance of an annotation that is not a binding type is given, an |IllegalArgumentException| is thrown.</text>
+    </assertion>
+  </section>
+  
+  <section id="11.3.12" title="Decorator resolution">
+    <assertion id="a">
+      <text>The method |BeanManager.resolveDecorators()| returns the ordered list of decorators for a set of bean types and a set of bindings, as defined in Section 8.3, "Decorator resolution".</text>
+    </assertion>
+    
+    <assertion id="b">
+      <text>The first argument is the set of bean types of the decorated bean. The annotations are bindings declared by the decorated bean.</text>
+    </assertion>
+    
+    <assertion id="c">
+      <text>If two instances of the same binding type are given, an |IllegalArgumentException| is thrown.</text>
+    </assertion>
+    
+    <assertion id="d">
+      <text>If an instance of an annotation that is not a binding type is given, an |IllegalArgumentException| is thrown.</text>
+    </assertion>
+    
+    <assertion id="e">
+      <text>If the set of bean types is empty, an |IllegalArgumentException| is thrown.</text>
+    </assertion>
+  </section>
+  
+  <section id="11.3.13" title="Interceptor resolution">
+    <assertion id="a">
+      <text>The method |BeanManager.resolveInterceptors()| returns the ordered list of interceptors for a set of interceptor bindings, as defined in Section 9.5, "Interceptor resolution".</text>
+    </assertion>
+    
+    <assertion id="b">
+      <text>If two instances of the same interceptor binding type are given, an |IllegalArgumentException| is thrown.</text>
+    </assertion>
+    
+    <assertion id="c">
+      <text>If no interceptor binding type instance is given, an |IllegalArgumentException| is thrown.</text>
+    </assertion>
+    
+    <assertion id="d">
+      <text>If an instance of an annotation that is not an interceptor binding type is given, an |IllegalArgumentException| is thrown.</text>
+    </assertion>
+  </section>
+  
+  <section id="11.3.14" title="Determining if an annotation is a binding type, scope type, stereotype or interceptor binding type">
+    <assertion id="aa">
+      <text>A portable extension may test an annotation to determine if it is a _binding type_, scope type, stereotype or interceptor binding type, obtain the set of meta-annotations declared by a stereotype or interceptor binding type, or obtain a |ScopeType| representing a scope type.</text>
+    </assertion>
+
+    <assertion id="ab">
+      <text>A portable extension may test an annotation to determine if it is a binding type, _scope type_, stereotype or interceptor binding type, obtain the set of meta-annotations declared by a stereotype or interceptor binding type, or obtain a |ScopeType| representing a scope type.</text>
+    </assertion>
+
+    <assertion id="ac">
+      <text>A portable extension may test an annotation to determine if it is a binding type, scope type, _stereotype_ or interceptor binding type, obtain the set of meta-annotations declared by a stereotype or interceptor binding type, or obtain a |ScopeType| representing a scope type.</text>
+    </assertion>
+
+    <assertion id="ad">
+      <text>A portable extension may test an annotation to determine if it is a binding type, scope type, stereotype or _interceptor binding type_, obtain the set of meta-annotations declared by a stereotype or interceptor binding type, or obtain a |ScopeType| representing a scope type.</text>
+    </assertion>
+
+    <assertion id="ae">
+      <text>A portable extension may test an annotation to determine if it is a binding type, scope type, stereotype or interceptor binding type, obtain the set of meta-annotations declared by a _stereotype_ or interceptor binding type, or obtain a |ScopeType| representing a scope type.</text>
+    </assertion>
+
+    <assertion id="af">
+      <text>A portable extension may test an annotation to determine if it is a binding type, scope type, stereotype or interceptor binding type, obtain the set of meta-annotations declared by a stereotype or _interceptor binding type_, or obtain a |ScopeType| representing a scope type.</text>
+    </assertion>
+
+    <assertion id="ag">
+      <text>A portable extension may test an annotation to determine if it is a binding type, scope type, stereotype or interceptor binding type, obtain the set of meta-annotations declared by a stereotype or interceptor binding type, or obtain a _|ScopeType| representing a scope type_.</text>
+    </assertion>
+  </section>
+  
+  <section id="11.3.15" title="Obtaining the active Context for a scope">
+    <assertion id="a">
+      <text>The method |BeanManager.getContext()| retrieves an active context object associated with the a given scope, as defined in Section 6.5.1, "The active context object for a scope".</text>
+    </assertion>
+  </section>
+  
+  <section id="11.3.16" title="Obtaining the ELResolver">
+    <assertion id="a">
+      <text>The method |BeanManager.getELResolver()| returns the |javax.el.ELResolver| specified in Section 5.8, "Integration with Unified EL".</text>
+    </assertion>
+  </section>
+  
+  <section id="11.3.17" title="Obtaining an AnnotatedType for a class">
+    <assertion id="a">
+      <text>The method |BeanManager.createAnnotatedType()| returns an |AnnotatedType| for the given Java class.</text>
+    </assertion>
+  </section>
+  
+  <section id="11.3.18" title="Obtaining an InjectionTarget">
+    <assertion id="aa">
+      <text>The method |BeanManager.createInjectionTarget()| returns a container provided implementation of |InjectionTarget| for a given |AnnotatedType| ~or throws an |IllegalArgumentException| if there is a definition error associated with any injection point of the type~.</text>
+    </assertion>
+
+    <assertion id="ab">
+      <text>The method |BeanManager.createInjectionTarget()| ~returns a container provided implementation of |InjectionTarget| for a given |AnnotatedType|~ or throws an |IllegalArgumentException| if there is a definition error associated with any injection point of the type.</text>
+    </assertion>
+  </section>
+
+  <section id="11.4" title="Alternative metadata sources">
+    <assertion id="a" testable="false">
+      <text>The interfaces |AnnotatedType|, |AnnotatedField|, |AnnotatedMethod|, |AnnotatedConstructor| and |AnnotatedParameter| in the package |javax.enterprise.inject.spi| allow a portable extension to specify metadata that overrides the annotations that exist on a bean class. The portable extension is responsible for implementing the interfaces, thereby exposing the metadata to the container.</text>
+      <note>Statement of intent</note>
+    </assertion>
+
+    <assertion id="b" testable="false">
+      <text>The interface |javax.enterprise.inject.spi.Annotated| exposes the overriding annotations and type declarations.</text>
+      <note>Statement of intent</note>
+      
+    </assertion>
+    
+    <assertion id="c">
+      <text>|getBaseType()| returns the type of the program element.</text>
+    </assertion>
+    
+    <assertion id="d">
+      <text>|getTypeClosure()| returns all types to which the base type should be considered assignable.</text>
+    </assertion>
+    
+    <assertion id="e">
+      <text>|getAnnotation()| returns the program element annotation of the given annotation type, or a null value.</text>
+    </assertion>
+    
+    <assertion id="f">
+      <text>|getAnnotations()| returns all annotations of the program element.</text>
+    </assertion>
+    
+    <assertion id="g">
+      <text>|isAnnotationPresent()| returns true if the program element has an annotation of the given annotation type, or false otherwise.</text>
+    </assertion>
+    
+    <assertion id="h">
+      <text>The container must use the operations of |Annotated| and its subinterfaces to discover program element types and annotations, instead of directly calling the Java Reflection API. In particular, the container must call |Annotated.getBaseType()| to determine the type of an injection point, event parameter or disposed parameter, call |Annotated.getTypeClosure()| to determine the bean types of any kind of bean, call |Annotated.getAnnotations()| to determine the scope, bindings, stereotypes and interceptor bindings of a bean, call |Annotated.isAnnotationPresent()| and |Annotated.getAnnotation()| to read any bean annotations defined by this specification, and call |AnnotatedType.getConstructors()|, |AnnotatedType.getMethods()| and |AnnotatedType.getFields()| to determine the members of a bean class.</text>
+    </assertion>
+  </section>
+
+  <section id="11.5" title="Container lifecycle events">
+    <assertion id="a" testable="false">
+      <text>During the application initialization process, the container fires a series of events, allowing portable extensions to integrate with the container initialization process defined in Section 12.2, "Application initialization lifecycle".</text>
+      <note>Generic statement</note>
+    </assertion>
+
+    <assertion id="b">
+      <text>Observers of these events must be service providers of the service |javax.enterprise.inject.spi.Extension| declared in |META-INF/services|.</text>
+    </assertion>
+
+    <assertion id="c">
+      <text>The container instantiates a single instance of each service provider at the beginning of the application initialization process and maintains a reference to it until the application shuts down.</text>
+    </assertion>
+    
+    <assertion id="d">
+      <text>Service providers may have observer methods, which may observe container initialization events and obtain an injected |BeanManager| reference.</text>
+    </assertion>
+    
+    <assertion id="e">
+      <text>For each service provider, the container must provide a bean of scope |@ApplicationScoped| and binding |@Current|, supporting injection of a reference to the service provider instance. The bean types of this bean include the class of the service
+provider and all superclases and interfaces.</text>
+    </assertion>
+  </section>
+
+  <section id="11.5.1" title="BeforeBeanDiscovery event">
+    <assertion id="a">
+      <text>The container must fire an event before it begins the bean discovery process. The event object must be of type |javax.enterprise.inject.spi.BeforeBeanDiscovery|.</text>
+    </assertion>
+    
+    <assertion id="ab">
+      <text>|addBindingType()| declares an annotation type as a binding type.</text>
+    </assertion>
+    
+    <assertion id="ac">
+      <text>|addScopeType()| declares an annotation type as a scope type.</text>
+    </assertion>
+    
+    <assertion id="ad">
+      <text>|addStereotype()| declares an annotation type as a stereotype, and specifies its meta-annotations.</text>
+    </assertion>
+    
+    <assertion id="ae">
+      <text>|addInterceptorBindingType()| declares an annotation type as an interceptor binding type, and specifies its meta-annotations.</text>
+    </assertion>
+    
+    <assertion id="af">
+      <text>|addAnnotatedType()| adds a given |AnnotatedType| to the set of types which will be scanned during bean discovery.</text>
+    </assertion>
+
+    <assertion id="ag">
+      <text>If any observer method of the |BeforeBeanDiscovery| event throws an exception, the exception is treated as a definition error by the container.</text>
+    </assertion>
+  </section>
+
+  <section id="11.5.2" title="AfterBeanDiscovery event">
+    <assertion id="a">
+      <text>The container must fire a second event when it has fully completed the bean discovery process, validated that there are no definition errors relating to the discovered beans, and registered |Bean| and |Observer| objects for the discovered beans, but before detecting deployment problems.  The event object must be of type |javax.enterprise.inject.spi.AfterBeanDiscovery|.</text>
+    </assertion>
+    
+    <assertion id="ca">
+      <text>|addDefinitionError()| registers a definition error with the container, causing the container to abort deployment after all observers have been notified.</text>
+    </assertion>
+
+    <assertion id="d">
+      <text>|addBean()| fires an event of type |ProcessBean| containing the given |Bean| and then registers the |Bean| with the container, thereby making it available for injection into other beans. The given |Bean| may implement |Interceptor| or |Decorator|.</text>
+    </assertion>
+    
+    <assertion id="e">
+      <text>|addObserverMethod()| fires an event of type |ProcessObserverMethod| containing the given |ObserverMethod| and then registers the |ObserverMethod| with the container, thereby making it available for event notifications.</text>
+    </assertion>
+    
+    <assertion id="f">
+      <text>|addContext()| registers a custom |Context| object with the container.
+A portable extension may take advantage of this event to register beans, interceptors, decorators, observer methods and custom context objects with the container.</text>
+    </assertion>
+    
+    <assertion id="g">
+      <text>If any observer method of the |AfterBeanDiscovery| event throws an exception, the exception is treated as a definition error by the container.</text>
+    </assertion>
+  </section>
+
+  <section id="11.5.3" title="AfterDeploymentValidation event">
+    <assertion id="a">
+      <text>The container must fire a third event after it has validated that there are no deployment problems and before creating contexts or processing requests. The event object must be of type |javax.enterprise.inject.spi.AfterDeploymentValidation|.</text>
+    </assertion>
+
+    <assertion id="b">
+      <text>|addDeploymentProblem()| registers a deployment problem with the container, causing the container to abort deployment after all observers have been notified.</text>
+    </assertion>
+
+    <assertion id="c">
+      <text>If any observer method of the |AfterDeploymentValidation| event throws an exception, the exception is treated as a deployment problem by the container.</text>
+    </assertion>
+
+    <assertion id="d">
+      <text>The container must not allow any request to be processed by the deployment until all observers of this event return.</text>
+    </assertion>
+  </section>
+
+  <section id="11.5.4" title="BeforeShutdown event">
+    <assertion id="a">
+      <text>The container must fire a final event after it has finished processing requests and destroyed all contexts. The event object must be of type |javax.enterprise.inject.spi.BeforeShutdown|.</text>
+    </assertion>
+
+    <assertion id="ba">
+      <text>If any observer method of the |BeforeShutdown| event throws an exception, the exception is ignored by the container.</text>
+    </assertion>
+  </section>
+
+  <section id="11.5.5" title="ProcessAnnotatedType event">
+    <assertion id="a">
+      <text>The container must fire an event for each Java class it discovers, before it reads the declared annotations.  The event object must be of type |javax.enterprise.inject.spi.ProcessAnnotatedType&lt;X&gt;|, where |X| is the class.</text>
+    </assertion>
+
+    <assertion id="ba">
+      <text>|getAnnotatedType()| returns the |AnnotatedType| object that will be used by the container to read the declared annotations.</text>
+    </assertion>
+    
+    <assertion id="bb">
+      <text>|setAnnotatedType()| replaces the |AnnotatedType|.</text>
+    </assertion>
+    
+    <assertion id="bc">
+      <text>|veto()| forces the container to ignore the type.</text>
+    </assertion>
+
+    <assertion id="ca">
+      <text>Any observer of this event is permitted to wrap and/or replace the |AnnotatedType|.  The container must use the final value of this property, after all observers have been called, to discover the types and read the annotations of the program elements.</text>
+    </assertion>
+    
+    <assertion id="e">
+      <text>If any observer method of a |ProcessAnnotatedType| event throws an exception, the exception is treated as a definition error by the container.</text>
+    </assertion>
+  </section>
+
+  <section id="11.5.6" title="ProcessInjectionTarget event">
+    <assertion id="a">
+      <text>The container must fire an event for each managed bean, session bean, Java EE component class supporting injection, producer method or producer field it discovers.  The event object must be of type |javax.enterprise.inject.spi.ProcessInjectionTarget&lt;X&gt;|, where |X| is the managed bean class, session bean class or Java EE component class supporting injection.</text>
+    </assertion>
+
+    <assertion id="ab">
+    <text>|getAnnotatedType()| returns the |AnnotatedType| representing the managed bean class, session bean or other Java EE component class supporting injection.</text>
+    </assertion>
+    
+    <assertion id="ba">
+      <text>|getInjectionTarget()| returns the |InjectionTarget| object that will be used by the container to perform injection.</text>
+    </assertion>
+    
+    <assertion id="bb">
+      <text>|setInjectionTarget()| replaces the |InjectionTarget|.</text>
+    </assertion>
+
+    <assertion id="da">
+      <text>|addDefinitionError()| registers a definition error with the container, causing the container to abort deployment after bean discovery is complete.</text>
+    </assertion>
+
+    <assertion id="e">
+      <text>Any observer of this event is permitted to wrap and/or replace the |InjectionTarget|.  The container must use the final value of this property, after all observers have been called, whenever it performs injection upon the managed bean, session bean or other Java EE component class supporting injection.</text>
+    </assertion>
+    
+    <assertion id="f">
+      <text>If any observer method of a |ProcessInjectionTarget| event throws an exception, the exception is treated as a definition error by the container.</text>
+    </assertion>
+  </section>
+  
+  <section id="11.5.7" title="ProcessProducer event">
+    <assertion id="a">
+      <text>The container must fire an event for each producer method or field, including resources.</text>
+    </assertion>
+    
+    <assertion id="b">
+      <text>The event object must be of type |javax.enterprise.inject.spi.ProcessProducer&lt;X, T&gt;|, where X is bean class and T is the return type of the producer method or the type of the producer field.</text>
+    </assertion>
+
+    <assertion id="c">
+      <text>|getAnnotatedMember()| returns the |AnnotatedField| representing the producer field or the |AnnotatedMethod| representing the producer method.</text>
+    </assertion>
+    
+    <assertion id="d">
+      <text>|getProducer()| returns the |Producer| object that will be used by the container to call the producer method or read the producer field.</text>
+    </assertion>
+    
+    <assertion id="e">
+      <text>|setProducer()| replaces the |Producer|.</text>
+    </assertion>
+    
+    <assertion id="f">
+      <text>|addDefinitionError()| registers a definition error with the container, causing the container to abort deployment after bean discovery is complete.</text>
+    </assertion>
+    
+    <assertion id="g">
+      <text>Any observer of this event is permitted to wrap and/or replace the |Producer|. The container must use the final value of this property, after all observers have been called, whenever it calls the producer or disposer.</text>
+    </assertion>
+    
+    <assertion id="h">
+      <text>If any observer method of a |ProcessProducer| event throws an exception, the exception is treated as a definition error by the container.</text>
+    </assertion>
+  </section>
+
+  <section id="11.5.8" title="ProcessBean event">
+    <assertion id="aa">
+    <text>The container must fire an event for each bean it discovers, before registering the |Bean| object.  The event object in the package |javax.enterprise.inject.spi| depends upon what kind of bean was discovered.</text>
+    </assertion>
+
+    <assertion id="ba">
+      <text>For a managed bean with bean class |X|, the container must raise an event of type |ProcessManagedBean&lt;X&gt;|.</text>
+    </assertion>
+
+    <assertion id="c">
+      <text>For a session bean with bean class |X|, the container must raise an event of type |ProcessSessionBean&lt;X&gt;|.</text>
+    </assertion>
+
+    <assertion id="ea">
+      <text>For a producer method if a bean class |X| with method return type |T|, the container must raise an event of type |ProcessProducerMethod&lt;X, T&gt;|.</text>
+    </assertion>
+    
+    <assertion id="eb">
+      <text>For a producer field of a bean class |X| with field type |T|, the container must raise an event of type |ProcessProducerField&lt;X&gt;|.</text>
+    </assertion>
+    
+    <assertion id="ec">
+      <text>Resources are considered to be producer fields.</text>
+    </assertion>
+    
+    <assertion id="ed">
+      <text>The interface |javax.enterprise.inject.spi.ProcessBean| is a supertype of all these event types.</text>
+    </assertion>
+
+    <assertion id="ef">
+      <text>|getAnnotated()| returns the |AnnotatedType| representing the bean class, the |AnnotatedMethod| representing the producer method, or the |AnnotatedField| representing the producer field.</text>
+    </assertion>
+
+    <assertion id="fa">
+      <text>|getBean()| returns the |Bean| object that is about to be registered.  The |Bean| may implement |Interceptor| or |Decorator|.</text>
+    </assertion>
+
+    <assertion id="h">
+      <text>|addDefinitionError()| registers a definition error with the container, causing the container to abort deployment after bean discovery is complete.</text>
+    </assertion>
+    
+    <assertion id="hb">
+      <text>|getEjbName()| returns the EJB name of the session bean.</text>
+    </assertion>
+    
+    <assertion id="hc">
+      <text>|getSessionBeanType()| returns a |javax.enterprise.inject.spi.SessionBeanType| representing the kind of session bean.</text>
+    </assertion>
+    
+    <assertion id="hd">
+      <text>If any observer method of a |ProcessBean| event throws an exception, the exception is treated as a definition error by the container.</text>
+    </assertion>
+  </section>
+
+  <section id="11.5.9" title="ProcessObserverMethod event">
+    <assertion id="aa">
+    <text>The container must fire an event for each observer method.  The event object must be of type |javax.enterprise.inject.spi.ProcessObserverMethod&lt;X, T&gt;| where |X| is bean class and |T| is the observed event type of the observer method.</text>
+    </assertion>
+
+    <assertion id="ab">
+    <text>|getAnnotatedMethod()| returns the |AnnotatedMethod| representing the observer method.</text>
+    </assertion>
+    
+    <assertion id="ba">
+      <text>|getObserverMethod()| returns the |ObserverMethod| object that will be used by the container to call the observer method.</text>
+    </assertion>
+
+    <assertion id="da">
+      <text>|addDefinitionError()| registers a definition error with the container, causing the container to abort deployment after bean discovery is complete.</text>
+    </assertion>
+    
+    <assertion id="db">
+      <text>If any observer method of a |ProcessObserverMethod| event throws an exception, the exception is treated as a definition error by the container.</text>
+    </assertion>
+  </section>
+
+  <section id="12" title="Packaging and Deployment">
+
+  </section>
+
+  <section id="12.1" title="Bean deployment archives">
+    <assertion id="aa" testable="false">
+      <text>Bean classes must be deployed in bean deployment archives.</text>
+    </assertion>
+    
+    <assertion id="ab">
+      <text>A library jar, EJB jar or rar archive is a bean deployment archive if it has a file named |beans.xml| in the |META-INF| directory.</text>
+    </assertion>
+    
+    <assertion id="ac">
+      <text>The |WEB-INF/classes| directory of a war is a bean deployment archive if there is a file named |beans.xml| in the |WEBINF| directory of the war.</text>
+    </assertion>
+    
+    <assertion id="ad">
+      <text>A directory in the JVM classpath is a bean deployment archive if it has a file named |beans.xml| in the |META-INF| directory.</text>
+    </assertion>
+
+    <assertion id="ba">
+      <text>The container searches for beans in bean deployment archives in the application classpath.</text>
+    </assertion>
+    
+    <assertion id="bb">
+      <text>In an application deployed as an ear, the container searches every bean deployment archive belonging to the ear, including bean deployment archives contained inside wars. The bean deployment archives might be library jars, EJB jars, rars or war |WEB-INF/classes| directories.</text>
+    </assertion>
+    
+    <assertion id="bc">
+      <text>In an application deployed as a war, the container searches every bean deployment archive contained in the war. The bean deployment archives might be library jars or the |WEB-INF/classes| directory.</text>
+    </assertion>
+    
+    <assertion id="bd">
+      <text>An embeddable EJB container searches each bean deployment archive in the JVM classpath that is listed in the value of the embeddable container initialization property |javax.ejb.embeddable.modules|, or every bean deployment archive in the JVM classpath if the property is not specified. The bean deployment archives might be directories, library jars or EJB jars.</text>
+    </assertion>
+    
+    <assertion id="be">
+      <text>When searching for beans, the container considers any Java class in any bean deployment archive, and any |ejb-jar.xml| file in the metadata directory of any EJB bean deployment archive.</text>
+    </assertion>
+    
+    <assertion id="ca">
+      <text>If a bean is deployed in an archive or directory that does not contain a file named |beans.xml| in the metadata directory, it will not be discovered by the container.</text>
+    </assertion>
+    
+    <assertion id="d" testable="false">
+      <text>If a bean class is deployed in two different bean deployment archives, non-portable behaviour results.  Portable applications must deploy each bean class in exactly one bean deployment archive.</text>
+      <note>Describes undefined behavior</note>
+    </assertion>
+  </section>
+
+  <section id="12.2" title="Application initialization lifecycle">
+    <assertion id="a" testable="false">
+      <text>When an application is started, the container performs the following steps.</text>
+      <note>Description</note>
+    </assertion>
+
+    <assertion id="b">
+      <text>First, the container must search for service providers for the service |javax.enterprise.inject.spi.Extension| defined in Section 11.5, "Container lifecycle events", instantiate a single instance of each service provider, and search the service provider class for observer methods of initialization events.</text>
+    </assertion>
+
+    <assertion id="c">
+      <text>Next, the container must fire an event of type |BeforeBeanDiscovery|, as defined in Section 11.5.1, "BeforeBeanDiscovery event".</text>
+    </assertion>
+
+    <assertion id="d">
+      <text>Next, the container must perform bean discovery, and abort initialization of the application if any definition errors exist, as defined in Section 12.4, "Problems detected automatically by the container".</text>
+    </assertion>
+
+    <assertion id="e">
+      <text>Next, the container must fire an event of type |AfterBeanDiscovery|, as defined in Section 11.5.2, "AfterBeanDiscovery event", and abort initialization of the application if any observer registers a definition error.</text>
+    </assertion>
+
+    <assertion id="f">
+      <text>Next, the container must detect deployment problems by validating bean dependencies and specialization and abort initialization of the application if any deployment problems exist, as defined in Section 12.4, "Problems detected automatically by the container".</text>
+    </assertion>
+
+    <assertion id="g">
+      <text>Next, the container must fire an event of type |AfterDeploymentValidation|, as defined in Section 11.5.3, "AfterDeploymentValidation event", and abort initialization of the application if any observer registers a deployment problem.</text>
+    </assertion>
+
+    <assertion id="h">
+      <text>Finally, the container begins directing requests to the application.</text>
+    </assertion>
+  </section>
+
+  <section id="12.3" title="Bean discovery">
+    <assertion id="a">
+      <text>The container automatically discovers managed beans (according to the rules of Section 3.2.1, "Which Java classes are managed beans?") and session beans in bean deployment archives and searches the bean classes for producer methods, producer fields, disposal methods and observer methods.</text>
+    </assertion>
+
+    <assertion id="b">
+      <text>For each Java class in any bean deployment archive, the container must create an |AnnotatedType| representing the class and fire an event of type |ProcessAnnotatedType|, as defined in Section 11.5.5, "ProcessAnnotatedType event".</text>
+    </assertion>
+
+    <assertion id="c">
+      <text>For each Java class in any bean deployment archive, the container must inspect the class metadata to determine if it is a bean or other Java EE component class supporting injection, or if it declares event mappings.</text>
+    </assertion>
+
+    <assertion id="d">
+      <text>For each Java class in any bean deployment archive, the container must detect definition errors by validating the class and its metadata.</text>
+    </assertion>
+
+    <assertion id="e">
+      <text>For each Java class in any bean deployment archive, the container must, if the class is a managed bean, session bean, producer method or field, or other Java EE component class supporting injection, create an |InjectionTarget| for the class, as defined in Section 11.2, "The Producer and InjectionTarget interfaces", and fire an event of type |ProcessInjectionTarget|, as defined in Section 11.5.6, "ProcessInjectionTarget event"</text>
+    </assertion>
+
+    <assertion id="fa">
+      <text>For each Java class in any bean deployment archive, the container must, if the class is a bean, create a |Bean| object that implements the rules defined in Section 7.3.1, "Lifecycle of managed beans", Section 7.3.2, "Lifecycle of stateful session beans" or Section 7.3.3, "Lifecycle of stateless session and singleton beans", and fire an event which is a subtype of |ProcessBean|, as defined in Section 11.5.8, "ProcessBean event".</text>
+    </assertion>
+    
+    <assertion id="fb">
+      <text>For each session bean declared in |ejb-jar.xml| in each EJB bean deployment archive the container must create a |Bean| object that implements the rules defined in Section 7.3.2, "Lifecycle of stateful session beans" or Section 7.3.3, "Lifecycle of  stateless session and singleton beans", and fire an event of type |ProcessSessionBean|, as defined in Section 11.5.8, "ProcessBean event".</text>
+    </assertion>
+    
+    <assertion id="fc">
+      <text>For each bean, the container must search the clas for producer methods and fields, including resources, and for each producer method or field create a |Producer|, as defined in Section 11.2, "The Producer and InjectionTarget interfaces", and fire an event of type |ProcessProducer|, as defined in Section 11.5.7, "ProcessProducer event", and then
+create a |Bean| object that implements the rules defined in Section 7.3.4, "Lifecycle of  producer methods", Section 7.3.5, "Lifecycle of producer fields" or Section 7.3.6, "Lifecycle of resources", and fire an event which is a subtype of |ProcessBean|, as defined  in Section 11.5.8, "ProcessBean event".</text>
+    </assertion>
+    
+    <assertion id="fd">
+      <text>For each bean, the container must search the class for observer methods, and for each observer method create an |ObserverMethod| object, as defined in Section 11.1.3, "The ObserverMethod interface" and fire an event of type |ProcessObserverMethod|, as defined in Section 11.5.9, "ProcessObserverMethod event".</text>
+    </assertion>
+
+    <assertion id="ka">
+      <text>The container determines which policies, interceptors and decorators are enabled, according to the rules defined in Section 5.2, "Policy enablement", Section 9.4, "Interceptor enablement and ordering" and Section 8.2, "Decorator enablement and ordering", taking into account any |&lt;enable&gt;|, |&lt;interceptors&gt;| and |&lt;Decorators&gt;| declarations in the |beans.xml| files, and registers the |Bean| and |ObserverMethod| objects.</text>
+    </assertion>
+
+    <assertion id="la">
+      <text>For each enabled bean that is not an interceptor or decorator, the container registers an instance of the |Bean| interface defined in Section 11.1, "The Bean interface".</text>
+    </assertion>
+
+    <assertion id="m">
+      <text>For each enabled interceptor, the container registers an instance of the |Interceptor| interface as defined in Section 11.1.2, "The Interceptor interface".</text>
+    </assertion>
+
+    <assertion id="n">
+      <text>For each enabled decorator, the container registers an instance of the |Decorator| interface defined in Section 11.1.1, "The Decorator interface".</text>
+    </assertion>
+
+    <assertion id="oa">
+      <text>For each observer method of an enabled bean, the container registers an instance of the |ObserverMethod| interface defined in Section 11.1.3, "The ObserverMethod interface".</text>
+    </assertion>
+  </section>
+
+  <section id="12.4" title="Problems detected automatically by the container">
+    <assertion id="a">
+      <text>Definition errors may be detected by tooling at development time, and are also detected by the container at initialization time. If a definition error exists in a deployment, initialization will be aborted by the container.</text>
+    </assertion>
+
+    <assertion id="b">
+      <text>Deployment problems are detected by the container at initialization time. If a deployment problem exists in a deployment, initialization will be aborted by the container.</text>
+    </assertion>
+    
+    <assertion id="d" testable="false">
+      <text>The container is permitted to define a non-portable mode, for use at development time, in which some definition errors and deployment problems do not cause application initialization to abort.</text>
+      <note>Specifies undefined behavior</note>
+    </assertion>
+    
+    <assertion id="e" testable="false">
+      <text>Exceptions represent problems that may not be detected until they actually occur at runtime. All exceptions defined by this specification are unchecked exceptions.</text>
+      <note>Explanatory note</note>
+    </assertion>
+    
+    <assertion id="f" testable="false">
+      <text>All exceptions defined by this specification may be safely caught and handled by the application.</text>
+      <note>Explanatory note</note>
+    </assertion>
+  </section>
+
+</specification>

Added: tck/trunk/impl/src/main/resources/tck-audit-mngbean.xml
===================================================================
--- tck/trunk/impl/src/main/resources/tck-audit-mngbean.xml	                        (rev 0)
+++ tck/trunk/impl/src/main/resources/tck-audit-mngbean.xml	2009-08-18 05:20:25 UTC (rev 3545)
@@ -0,0 +1,73 @@
+<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 /Users/pmuir/workspace/jboss-test-audit/api/src/main/resources/tck-audit.xsd"
+    name="Managed Beans"
+    id="mngbean"
+    version="1.0">
+
+  <section id="2" title="Managed Beans Definition">
+
+  </section>
+  
+  <section id="2.1" title="Basic Model">
+  
+  </section>
+  
+  <section id="2.1.1" title="Component definition">
+  
+  </section>
+  
+  <section id="2.1.2" title="Naming">
+  
+  </section>
+  
+  <section id="2.1.3" title="Lifecycle and Resource Injection">
+  
+  </section>
+  
+  <section id="2.1.4" title="Threading">
+  
+  </section>
+  
+  <section id="2.1.5" title="Interceptors">
+  
+  </section>
+  
+  <section id="2.2" title="Extensions">
+  
+  </section>
+  
+  <section id="2.2.1" title="Component Definition">
+  
+  </section>
+  
+  <section id="2.2.2" title="Naming">
+  
+  </section>
+  
+  <section id="2.2.3" title="Lifecycle and Resource Injection">
+  
+  </section>
+  
+  <section id="2.2.4" title="Threading">
+  
+  </section>
+  
+  <section id="2.2.5" title="Interceptors">
+  
+  </section>
+  
+  <section id="2.3" title="[Injection of] Managed Bean References">
+  
+  </section>
+  
+  <section id="2.3.1" title="Application Component Provider's Responsibilities">
+  
+  </section>
+  
+  <section id="2.3.2" title="Java EE Product Provider's Responsibilities">
+  
+  </section>  
+
+</specification>

Deleted: tck/trunk/impl/src/main/resources/tck-audit.xml
===================================================================
--- tck/trunk/impl/src/main/resources/tck-audit.xml	2009-08-17 22:38:44 UTC (rev 3544)
+++ tck/trunk/impl/src/main/resources/tck-audit.xml	2009-08-18 05:20:25 UTC (rev 3545)
@@ -1,5403 +0,0 @@
-<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 /Users/pmuir/workspace/jboss-test-audit/api/src/main/resources/tck-audit.xsd"
-    name="JSR-299: Java Contexts and Dependency Injection"
-    version="20090625">
-
-  <section id="2" title="Concepts">
-
-    <assertion id="a">
-      <text>A bean comprises of a (nonempty) set of bean types.</text>
-    </assertion>
-
-    <assertion id="b">
-      <text>A bean comprises of a (nonempty) set of bindings.</text>
-    </assertion>
-
-    <assertion id="c">
-      <text>A bean comprises of a scope.</text>
-    </assertion>
-
-    <assertion id="e">
-      <text>A bean comprises of an optional bean EL 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>
-  </section>
-
-  <section id="2.2" title="Bean types">
-
-    <assertion id="a">
-      <text>A bean may have multiple bean types.</text>
-    </assertion>
-
-    <assertion id="l">
-      <text>All beans have the bean type java.lang.Object</text>
-    </assertion>
-
-  </section>
-
-  <section id="2.2.1" title="Legal bean types">
-    <assertion id="a">
-      <text>A bean type may be an interface.</text>
-    </assertion>
-
-    <assertion id="b">
-      <text>A bean type may be a concrete class.</text>
-    </assertion>
-
-    <assertion id="c">
-      <text>A bean type may be an abstract class.</text>
-    </assertion>
-
-    <assertion id="d">
-      <text>A bean type may be declared final.</text>
-    </assertion>
-
-    <assertion id="e">
-      <text>A bean type may have final methods.</text>
-    </assertion>
-
-    <assertion id="f">
-      <text>A bean type may be a parameterized type with actual type parameters.</text>
-    </assertion>
-
-    <assertion id="g">
-      <text>A bean type may be a parameterized type with type variables.</text>
-    </assertion>
-
-    <assertion id="i">
-      <text>A bean type may be an array type.  Two array types are considered identical only if the element type is identical.</text>
-    </assertion>
-
-    <assertion id="j">
-      <text>A bean type may be a primitive type. Primitive types are considered to be identical to their corresponding wrapper types in java.lang.</text>
-    </assertion>
-
-    <assertion id="k">
-      <text>A bean type may be a raw type.</text>
-    </assertion>
-
-    <assertion id="la">
-      <text>A type variable is not a legal bean type</text>
-    </assertion>
-
-    <assertion id="lb">
-      <text>A parameterized type that contains a wildcard type parameter is not a legal bean type.</text>
-    </assertion>
-  </section>
-
-  <section id="2.2.2" title="Typecasting between bean types">
-    <assertion id="a">
-      <text>A client of a bean may typecast its contextual reference to a bean to any bean type of the bean which is a Java interface.  However, the client may not in general typecast its contextual reference to an arbitrary concrete bean type of the bean.</text>
-    </assertion>
-  </section>
-
-  <section id="2.3" title="Bindings">
-
-  </section>
-
-  <section id="2.3.1" title="Built-in binding types">
-
-    <assertion id="a0">
-      <text>Every bean has the built-in binding |@Any|, even if it does not explicitly declare this binding, except for beans with the built-in binding |@New| defined in Section 3.11, "Beans with the @New binding".</text>
-    </assertion>
-
-    <assertion id="aa">
-      <text>If a bean does not explicitly declare a binding, the bean has exactly one additional binding, of type |@Current|.</text>
-    </assertion>
-
-    <assertion id="b">
-      <text>The default binding is also assumed for any injection point that does not explicitly declare a binding.</text>
-    </assertion>
-  </section>
-
-  <section id="2.3.2" title="Defining new binding types">
-    <assertion id="aa" testable="false">
-      <text>A binding type is a Java annotation defined as |@Target({METHOD, FIELD, PARAMETER, TYPE})|~ and |@Retention(RUNTIME)|~.</text>
-    </assertion>
-
-    <assertion id="ab" testable="false">
-      <text>A binding type is a Java annotation defined as ~|@Target({METHOD, FIELD, PARAMETER, TYPE})| and ~|@Retention(RUNTIME)|.</text>
-      <note>Non-runtime retention annotations are discarded by the compiler</note>
-    </assertion>
-
-    <assertion id="ba">
-      <text>A binding type may be declared by specifying the |@javax.enterprise.inject.BindingType| meta-annotation.</text>
-    </assertion>
-
-    <assertion id="d" testable="false">
-      <text>A binding type may define annotation members.</text>
-      <note>This is true by default in the JLS</note>
-    </assertion>
-  </section>
-
-  <section id="2.3.3" title="Declaring the bindings of a bean">
-    <assertion id="a">
-      <text>A bean's bindings are declared by annotating the bean class with the binding types.</text>
-    </assertion>
-
-    <assertion id="b">
-      <text>A bean's bindings are declared by annotating the producer method with the binding types.</text>
-    </assertion>
-
-    <assertion id="c">
-      <text>A bean's bindings are declared by annotating the producer field with the binding types.</text>
-    </assertion>
-
-    <assertion id="d">
-      <text>Any bean may declare multiple binding types.</text>
-    </assertion>
-  </section>
-
-  <section id="2.3.4" title="Specifying bindings of an injected field">
-    <assertion id="a">
-      <text>Binding types may be applied to injected fields (see Section 3.8, "Injected fields") to determine the bean that is injected, according to the rules of typesafe resolution defined in Section 5.3, "Typesafe resolution".</text>
-    </assertion>
-
-    <assertion id="b">
-      <text>A bean may only be injected to an injection point if it has all the bindings of the injection point.</text>
-    </assertion>
-  </section>
-
-  <section id="2.3.5" title="Specifying bindings of a method or constructor parameter">
-    <assertion id="a">
-      <text>Binding types may be applied to parameters of producer methods (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="b">
-      <text>Binding types may be applied to parameters of initializer methods (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="c">
-      <text>Binding types may be applied to parameters of disposal methods (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="ca">
-      <text>Binding types may be applied to parameters of observer methods (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="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>
-  </section>
-
-  <section id="2.4" title="Scopes">
-    <assertion id="a">
-      <text>All beans have a scope.</text>
-    </assertion>
-
-    <assertion id="b" testable="false">
-      <text>A scope type is represented by an annotation type.</text>
-      <note>This is a statement of intent</note>
-    </assertion>
-
-    <assertion id="c">
-      <text>The set of scope types is extensible.</text>
-    </assertion>
-  </section>
-
-  <section id="2.4.1" title="Built-in scope types">
-    <assertion id="aa">
-      <text>There are five standard scope types defined by this specification, all defined in the package javax.enterprise.context. The |@RequestScoped|~, |@ApplicationScoped| and |@SessionScoped|~ annotations defined in Section 6.7, "Context management for built-in scopes" represent the standard scopes defined by the Java Servlets specification.</text>
-    </assertion>
-
-    <assertion id="ab">
-      <text>There are five standard scope types defined by this specification, all defined in the package javax.enterprise.context. The ~|@RequestScoped|, ~|@ApplicationScoped|~ and |@SessionScoped|~ annotations defined in Section 6.7, "Context management for built-in scopes" represent the standard scopes defined by the Java Servlets specification.</text>
-    </assertion>
-
-    <assertion id="ac">
-      <text>There are five standard scope types defined by this specification, all defined in the package javax.enterprise.context. The ~|@RequestScoped|, |@ApplicationScoped| and ~|@SessionScoped| annotations defined in Section 6.7, "Context management for built-in scopes" represent the standard scopes defined by the Java Servlets specification.</text>
-    </assertion>
-
-    <assertion id="ba">
-      <text>There are five standard scope types defined by this specification, all defined in the package javax.enterprise.context. The |@ConversationScoped| annotation represents the conversation scope defined in Section 6.7.4, "Conversation context lifecycle".</text>
-    </assertion>
-
-    <assertion id="ca">
-      <text>There are five standard scope types defined by this specification, all defined in the package javax.enterprise.context. The |@Dependent| pseudo-scope is for dependent objects, as defined in Section 6.4, "Dependent pseudo-scope"</text>
-    </assertion>
-  </section>
-
-  <section id="2.4.2" title="Defining new scope types">
-    <assertion id="aa">
-      <text>A scope type is a Java annotation defined as |@Target({TYPE, METHOD, FIELD})|~ and |@Retention(RUNTIME)|~.</text>
-    </assertion>
-
-    <assertion id="ab" testable="false">
-      <text>A scope type is a Java annotation defined as ~|@Target({TYPE, METHOD, FIELD})| and ~|@Retention(RUNTIME)|.</text>
-      <note>Non-runtime retention annotations are discarded by the compiler</note>
-    </assertion>
-
-    <assertion id="ba">
-      <text>All scope types must specify the |@javax.enterprise.context.ScopeType| meta-annotation.</text>
-    </assertion>
-
-  </section>
-
-  <section id="2.4.3" title="Declaring the bean scope">
-    <assertion id="a">
-      <text>The bean's scope is defined by annotating the bean class or producer method or field with a scope type.</text>
-    </assertion>
-
-    <assertion id="ba">
-      <text>A bean class or producer method or field may specify at most one scope type annotation. If a bean class or producer method or field specifies multiple scope type annotations, the container automatically detects the problem and treats it as a definition error, as defined in Section 12.4, "Problems detected automatically by the container".</text>
-    </assertion>
-
-    <assertion id="c">
-      <text>A scope type may be specified using a stereotype annotation, as defined in Section 2.7.2, "Declaring the stereotypes for a bean"</text>
-    </assertion>
-  </section>
-
-  <section id="2.4.4" title="Default scope">
-    <assertion id="aa">
-      <text>When no scope is explicitly declared by annotating the bean class or producer method or field the scope of a bean is defaulted.</text>
-    </assertion>
-
-    <assertion id="b">
-      <text>If the bean does not declare any stereotype with a declared default scope, the default scope for the bean is |@Dependent|.</text>
-    </assertion>
-
-    <assertion id="c">
-      <text>If all stereotypes declared by the bean that have some declared default scope have the same default scope, then that scope is the default scope for the bean.</text>
-    </assertion>
-
-    <assertion id="da">
-      <text>If there are two different stereotypes declared by the bean that declare different default scopes, then there is no default scope and the bean must explicitly declare a scope. If it does not explicitly declare a scope, the container automatically
-detects the problem and treats it as a definition error, as defined in Section 12.4, "Problems detected automatically by the container".</text>
-    </assertion>
-
-    <assertion id="e">
-      <text>If a bean explicitly declares a scope, any default scopes declared by stereotypes are ignored.</text>
-    </assertion>
-  </section>
-
-  <section id="2.5" title="Bean EL names">
-
-    <assertion id="a">
-      <text>A valid bean EL name is a period-separated list of valid EL identifiers</text>
-    </assertion>
-  </section>
-
-  <section id="2.5.1" title="Declaring the bean EL name">
-
-    <assertion id="a">
-      <text>To specify the EL name of a bean, the |@javax.enterprise.inject.Named| annotation is applied to the bean class.</text>
-    </assertion>
-
-    <assertion id="b">
-      <text>To specify the EL name of a bean, the |@javax.enterprise.inject.Named| annotation is applied to the producer method.</text>
-    </assertion>
-
-    <assertion id="c">
-      <text>To specify the EL name of a bean, the |@javax.enterprise.inject.Named| annotation is applied to the producer field.</text>
-    </assertion>
-
-    <assertion id="d">
-    <text>If the |@Named| annotation does not specify the value member, the default EL name is assumed.</text>
-    </assertion>
-  </section>
-
-  <section id="2.5.2" title="Default bean EL names">
-
-    <assertion id="a">
-      <text>A default EL name must be assigned by the container when a bean class declares a |@Named| annotation and no EL name is explicitly specified by the value member.</text>
-    </assertion>
-
-    <assertion id="b">
-      <text>A default EL name must be assigned by the container when a producer method of a bean declares a |@Named| annotation and EL no name is explicitly specified by the value member.</text>
-    </assertion>
-
-    <assertion id="c">
-      <text>A default EL name must be assigned by the container when a producer field of a bean declares a |@Named| annotation and no EL name is explicitly specified by the value member.</text>
-    </assertion>
-
-    <assertion id="e">
-      <text>A default EL 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 an EL name.</text>
-    </assertion>
-  </section>
-
-  <section id="2.5.3" title="Beans with no EL name">
-
-    <assertion id="a">
-      <text>If |@Named| is not declared by the bean, nor by its stereotypes, a bean has no EL name.</text>
-    </assertion>
-  </section>
-
-  <section id="2.6" title="Policies">
-    <assertion id="a">
-      <text>A policy is a bean that must be explicitly declared in the in the beans.xml file if it should be available for lookup, injection or EL resolution.</text>
-    </assertion>
-  </section>
-
-  <section id="2.6.1" title="Declaring a policy">
-    <assertion id="a">
-      <text>A policy may be declared by annotating the bean class with the |@Policy| annotation.</text>
-    </assertion>
-
-    <assertion id="b">
-      <text>A policy may be declared by annotating a bean with a stereotype that declares a |@Policy| annotation.</text>
-    </assertion>
-
-    <assertion id="c">
-      <text>A policy may be declared by annotating a producer method with a stereotype that declares a |@Policy| annotation.</text>
-    </assertion>
-
-    <assertion id="d">
-      <text>A policy may be declared by annotating a producer field with a stereotype that declares a |@Policy| annotation.</text>
-    </assertion>
-
-    <assertion id="e">
-      <text>If a bean is a policy, all producer methods and fields of the bean are also policies.</text>
-    </assertion>
-  </section>
-
-  <section id="2.7" title="Stereotypes">
-
-    <assertion id="a">
-      <text>A stereotype may specify that all beans with the stereotype have defaulted bean EL names.</text>
-    </assertion>
-
-    <assertion id="aa">
-      <text>A stereotype may specify that all beans with the stereotype are policies.</text>
-    </assertion>
-
-    <assertion id="b" testable="false">
-      <text>A bean may declare zero stereotypes.</text>
-      <note>Not testable through API</note>
-    </assertion>
-
-    <assertion id="c">
-      <text>A bean may declare one stereotype.</text>
-    </assertion>
-
-    <assertion id="d">
-      <text>A bean may declare multiple stereotypes.</text>
-    </assertion>
-
-  </section>
-
-  <section id="2.7.1" title="Defining new stereotypes">
-    <assertion id="aa" testable="false">
-      <text>A beans stereotype is a Java annotation defined as |@Target({TYPE, METHOD, FIELD})|~, |@Target(TYPE)|, |@Target(METHOD)|, |@Target(FIELD)| or |@Target({METHOD, FIELD})| and |@Retention(RUNTIME)|~.</text>
-    </assertion>
-
-    <assertion id="ab" testable="false">
-      <text>A beans stereotype is a Java annotation defined as ~|@Target({TYPE, METHOD, FIELD})|,~ |@Target(TYPE)|~, |@Target(METHOD)|, |@Target(FIELD)| or |@Target({METHOD, FIELD})| and |@Retention(RUNTIME)|~.</text>
-    </assertion>
-
-    <assertion id="ac" testable="false">
-      <text>A beans stereotype is a Java annotation defined as ~|@Target({TYPE, METHOD, FIELD})|, |@Target(TYPE)|, |@Target(METHOD)|, ~|@Target(FIELD)| ~or |@Target({METHOD, FIELD})| and |@Retention(RUNTIME)|~.</text>
-    </assertion>
-
-    <assertion id="ad" testable="false">
-      <text>A beans stereotype is a Java annotation defined as ~|@Target({TYPE, METHOD, FIELD})|, |@Target(TYPE)|, |@Target(METHOD)|, |@Target(FIELD)| or~ |@Target({METHOD, FIELD})|~ and |@Retention(RUNTIME)|~.</text>
-    </assertion>
-
-    <assertion id="ae" testable="false">
-      <text>A beans stereotype is a Java annotation defined as ~|@Target({TYPE, METHOD, FIELD})|, |@Target(TYPE)|, |@Target(METHOD)|, |@Target(FIELD)| or |@Target({METHOD, FIELD})| and~ |@Retention(RUNTIME)|.</text>
-      <note>Non-runtime retention annotations are discarded by the compiler</note>
-    </assertion>
-
-    <assertion id="b">
-      <text>A stereotype may be declared by specifying the |@javax.enterprise.inject.stereotype.Stereotype| meta-annotation.</text>
-    </assertion>
-
-    <assertion id="da">
-      <text>A stereotype may not declare any binding annotation. If a stereotype declares a binding annotation, the container automatically detects the problem and treats it as a definition error, as defined in Section 12.4, "Problems detected automatically by the container".</text>
-    </assertion>
-  </section>
-
-  <section id="2.7.1.1" title="Declaring the default scope for a stereotype">
-    <assertion id="aa">
-      <text>A stereotype may declare at most one scope. ~If a stereotype declares more than one scope, the container automatically detects the problem and treats it as a definition error, as defined in Section 12.4, "Problems detected automatically by the
-container".~</text>
-    </assertion>
-    
-    <assertion id="ab">
-      <text>A stereotype may declare at most one scope. _If a stereotype declares more than one scope, the container automatically detects the problem and treats it as a definition error, as defined in Section 12.4, "Problems detected automatically by the
-container"._</text>
-    </assertion>
-    
-  </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 bindings.</text>
-    </assertion>
-
-    <assertion id="c">
-      <text>A stereotype may declare multiple interceptor bindings.</text>
-    </assertion>
-  </section>
-
-  <section id="2.7.1.3" title="Declaring a @Named stereotype">
-    <assertion id="aaa">
-      <text>A stereotype may declare an empty |@Named| annotation, which specifies that every bean with the stereotype has a defaulted name when a name is not explicitly specified by the bean.</text>
-    </assertion>
-
-    <assertion id="aab">
-      <text>If a stereotype declares a non-empty |@Named| annotation, the container automatically detects the problem and treats it as a definition error, as defined in Section 12.4, "Problems detected automatically by the container".</text>
-    </assertion>
-  </section>
-
-  <section id="2.7.1.4" title="Declaring a @Policy stereotype">
-    <assertion id="a">
-      <text>A stereotype may declare a @Policy annotation, which specifies that every bean with the stereotype is a policy.</text>
-    </assertion>
-  </section>
-
-  <section id="2.7.1.5" title="Stereotypes with additional stereotypes">
-    <assertion id="a">
-      <text>A stereotype may declare other stereotypes.</text>
-    </assertion>
-
-    <assertion id="b">
-      <text>Stereotype declarations are transitive - a stereotype declared by a second stereotype is inherited by all beans and other stereotypes that declare the second stereotype.</text>
-    </assertion>
-
-    <assertion id="c" testable="false">
-      <text>Stereotypes declared |@Target(TYPE)| may not be applied to stereotypes declared |@Target({TYPE, METHOD, FIELD})|, |@Target(METHOD)|, |@Target(FIELD)|, |@Target({METHOD, FIELD})|.</text>
-      <note>No definition of what happens if you do this</note>
-    </assertion>
-
-  </section>
-
-  <section id="2.7.2" title="Declaring the stereotypes for a bean">
-    <assertion id="a">
-      <text>Stereotype annotations may be applied to a bean class.</text>
-    </assertion>
-
-    <assertion id="b">
-      <text>Stereotype annotations may be applied to a producer method.</text>
-    </assertion>
-
-    <assertion id="c">
-      <text>Stereotype annotations may be applied to a producer field.</text>
-    </assertion>
-
-    <assertion id="db">
-    <text>The default scope declared by the stereotype may be overridden by the bean.</text>
-    </assertion>
-
-    <assertion id="e">
-      <text>Multiple stereotypes may be applied to the same bean.</text>
-    </assertion>
-  </section>
-
-  <section id="2.7.3" title="Built-in stereotypes">
-    <assertion id="aa" testable="false">
-      <text>The built-in stereotype |@javax.enterprise.inject.stereotype.Model| is intended for use with beans that define the model layer of an MVC web application architecture such as JSF.</text>
-      <note>Tested by API signature test</note>
-    </assertion>
-  </section>
-
-  <section id="3" title="Programming model">
-
-  </section>
-
-  <section id="3.1" title="Managed beans">
-    <assertion id="f0">
-      <text>If the bean class of a managed bean is annotated with both the |@Interceptor| and |@Decorator| stereotypes, the container automatically detects the problem and treats it as a definition error, as defined in Section 12.4, "Problems detected automatically by the container".</text>
-    </assertion>
-
-    <assertion id="fa">
-      <text>If a managed 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>
-    </assertion>
-
-    <assertion id="fba">
-      <text>If a managed bean with a public field declares any scope other than |@Dependent|, the container automatically detects the problem and treats it as a definition error, as defined in Section 12.4, "Problems detected automatically by the container".</text>
-    </assertion>
-
-    <assertion id="g">
-      <text>If the managed bean class is a generic type, it must have scope |@Dependent|. If a managed bean with a parameterized bean class declares any scope other than |@Dependent|, the container automatically detects the problem and treats it as a definition error, as defined in Section 12.4, "Problems detected automatically by the  container".</text>
-    </assertion>
-  </section>
-
-  <section id="3.1.1" title="Which Java classes are managed beans?">
-    <assertion id="b">
-      <text>A top-level Java class is not a managed bean if it is a non-static inner class.</text>
-    </assertion>
-
-    <assertion id="ba">
-      <text>A top-level Java class that is a static inner class can be a managed bean.</text>
-      <note>Implied as the inverse of assertion 3.1.1.b</note>
-    </assertion>
-
-    <assertion id="ca">
-      <text>A top-level Java class is not a managed bean if it is an abstract class, unless it is annotated |@Decorator|.</text>
-    </assertion>
-
-    <assertion id="cb">
-      <text>A top-level Java class is not a managed bean if it is an interface, unless it is annotated |@Decorator|.</text>
-    </assertion>
-
-    <assertion id="f">
-      <text>A top-level Java class is not a managed bean if it is annotated with any of the EJB component-defining annotations</text>
-    </assertion>
-
-    <assertion id="n">
-      <text>A top-level Java class is not a managed bean if it is declared as an EJB bean class in |ejb-jar.xml|</text>
-    </assertion>
-
-    <assertion id="p">
-      <text>A top-level Java class is only a managed bean if it has an appropriate constructor - a constructor with no parameters.</text>
-    </assertion>
-
-    <assertion id="q">
-      <text>A top-level Java class is only a managed bean if it has an appropriate constructor - a constructor annotated |@Initializer|.</text>
-    </assertion>
-  </section>
-
-  <section id="3.1.2" title="Bean types of a managed bean">
-    <assertion id="a">
-      <text>The set of bean types for a managed bean contains the bean class, every superclass and all interfaces it implements directly or indirectly.</text>
-    </assertion>
-  </section>
-
-  <section id="3.1.3" title="Declaring a managed bean">
-    <assertion id="a">
-      <text>A managed bean with a constructor that takes no parameters does not require any special annotations</text>
-    </assertion>
-
-    <assertion id="ba">
-      <text>A bean class may also specify a scope~, name, stereotypes and/or bindings~</text>
-    </assertion>
-
-    <assertion id="bb">
-      <text>A bean class may also specify a ~scope, ~name~, stereotypes and/or bindings~</text>
-    </assertion>
-
-    <assertion id="bd">
-      <text>A bean class may also specify ~a scope, name, ~stereotypes~ and/or bindings~</text>
-    </assertion>
-
-    <assertion id="be">
-      <text>A bean class may also specify ~a scope, name, stereotypes and/or ~bindings</text>
-    </assertion>
-
-    <assertion id="c">
-      <text>A managed bean may extend another managed bean</text>
-    </assertion>
-  </section>
-
-  <section id="3.1.4" title="Bean constructors">
-    <assertion id="a">
-      <text>When the container instantiates a managed bean, it calls the bean constructor. The bean constructor is a constructor of the bean class</text>
-    </assertion>
-  </section>
-
-  <section id="3.1.4.1" title="Declaring a bean constructor">
-    <assertion id="a">
-      <text>The bean constructor may be identified by annotating the constructor |@Initializer|</text>
-    </assertion>
-
-    <assertion id="ba">
-      <text>If a managed bean does not explicitly declare a constructor using |@Initializer|, the constructor that accepts no parameters is the bean constructor</text>
-      <note>Can't check implicit constructor</note>
-    </assertion>
-
-    <assertion id="ca">
-      <text>If a managed bean has more than one constructor annotated |@Initializer|, the container automatically detects the problem and treats it as a definition error, as defined in Section 12.4, "Problems detected automatically by the container".</text>
-    </assertion>
-
-    <assertion id="da">
-      <text>If a bean constructor has a parameter annotated |@Disposes|, the container automatically detects the problem and treats it as a definition error, as defined in Section 12.4, "Problems detected automatically by the container".</text>
-    </assertion>
-
-    <assertion id="ea">
-      <text>If a bean constructor has a parameter annotated |@Observes|, the container automatically detects the problem and treats it as a definition error, as defined in Section 12.4, "Problems detected automatically by the container".</text>
-    </assertion>
-  </section>
-
-  <section id="3.1.4.2" title="Bean constructor parameters">
-    <assertion id="b">
-      <text>A bean constructor may have any number of parameters.</text>
-    </assertion>
-
-    <assertion id="c">
-      <text>All parameters of a bean constructor are injection points.</text>
-    </assertion>
-  </section>
-
-  <section id="3.1.5" title="Specializing a managed bean">
-    <assertion id="aa">
-      <text>If a bean class of a managed bean X is annotated @Specializes, then the bean class of X must directly extend the bean class of another managed bean Y. Then X directly specializes Y, as defined in Section 4.3, "Specialization".</text>
-    </assertion>
-
-    <assertion id="da">
-      <text>If the bean class of X does not directly extend the bean class of another managed bean, the container automatically detects the problem and treats it as a definition error, as defined in Section 12.4, "Problems detected automatically by the container".</text>
-    </assertion>
-  </section>
-
-  <section id="3.1.6" title="Default name for a managed bean">
-    <assertion id="a">
-      <text>The default name for a managed bean is the unqualified class name of the bean class, after converting the first character to lower case</text>
-    </assertion>
-  </section>
-
-  <section id="3.2" title="Session beans">
-    <assertion id="aa" testable="false">
-      <text>A session bean is a bean that is implemented by a session bean with an EJB 3.x client view.  The basic lifecycle and semantics of an EJB session bean are defined by the EJB specification.</text>
-      <note>This is a reference to the EJB specification</note>
-    </assertion>
-
-    <assertion id="b">
-      <text>A stateless session bean must belong to the |@Dependent| pseudo-scope</text>
-    </assertion>
-
-    <assertion id="c">
-      <text>A singleton bean must belong to either the |@ApplicationScoped| scope or to the |@Dependent| pseudo-scope</text>
-    </assertion>
-
-    <assertion id="da">
-      <text>If a session bean specifies an illegal scope, the container automatically detects the problem and treats it as a definition error, as defined in Section 12.4, "Problems detected automatically by the container".</text>
-    </assertion>
-
-    <assertion id="e">
-      <text>A stateful session bean may have any scope.</text>
-      <note>No way of testing the real intent of this statement, so we check that a SFSB may be scoped</note>
-    </assertion>
-
-    <assertion id="f" testable="false">
-      <text>When a contextual instance of a session bean is obtained via the dependency injection service, the behavior of |SessionContext.getInvokedBusinessInterface()| is specific to the container implementation. Portable applications should not rely upon the value returned by this method.</text>
-      <note>This is describing non-portable behavior</note>
-    </assertion>
-
-    <assertion id="g">
-      <text>If the bean class of a session bean is annotated |@Interceptor|, the container automatically detects the problem and treats it as a definition error, as defined in Section 12.4, "Problems detected automatically by the container".</text>
-    </assertion>
-
-    <assertion id="h">
-      <text>If the bean class of a session bean is annotated |@Decorator|, the container automatically detects the problem and treats it as a definition error, as defined in Section 12.4, "Problems detected automatically by the container".</text>
-    </assertion>
-
-    <assertion id="i">
-      <text>If the session bean class is a generic type, it must have scope |@Dependent|. If a session bean with a parameterized bean class declares any scope other than |@Dependent|, the container automatically detects the problem and treats it as a
-definition error, as defined in Section 12.4, "Problems detected automatically by the container".</text>
-    </assertion>
-  </section>
-
-  <section id="3.2.1" title="EJB remove methods of session beans">
-    <assertion id="a">
-      <text>If a session bean is a stateful session bean, and the scope is |@Dependent|, the application may call any EJB remove method of an instance of the session bean.</text>
-    </assertion>
-
-    <assertion id="b">
-      <text>If a session bean is a stateful session bean, and the scope is not |@Dependent|, the application may not directly call any EJB remove method of any instance of the session bean</text>
-    </assertion>
-
-    <assertion id="c">
-      <text>If the application directly calls an EJB remove method of an instance of a session bean that is a stateful session bean and declares any scope other than |@Dependent|, an |UnsupportedOperationException| is thrown</text>
-    </assertion>
-
-    <assertion id="da">
-      <text>If the application directly calls an EJB remove method of an instance of a session bean that is a stateful session bean and has scope |@Dependent| then no parameters are passed to the method by the container.</text>
-    </assertion>
-
-    <assertion id="dba">
-      <text>If the application directly calls an EJB remove method of an instance of a session bean that is a stateful session bean and has scope |@Dependent| then the container ignores the instance instead of destroying it when |Contextual.destroy()| is called, as defined in Section 6.5, "Lifecycle of stateful session beans"</text>
-    </assertion>
-  </section>
-
-  <section id="3.2.2" title="Bean types of a session bean">
-    <assertion id="aa">
-      <text>The set of bean types for a session bean contains all local interfaces of the bean and their superinterfaces.</text>
-    </assertion>
-
-    <assertion id="ba">
-      <text>If the session bean has a bean class local view, the set of bean types contains the bean class and all superclasses.</text>
-    </assertion>
-
-    <assertion id="c">
-      <text>|java.lang.Object| is a bean type of every session bean</text>
-    </assertion>
-
-    <assertion id="d">
-      <text>Remote interfaces are not included in the set of bean types</text>
-    </assertion>
-  </section>
-
-  <section id="3.2.3" title="Declaring a session bean">
-    <assertion id="a">
-      <text>A session bean does not require any special annotations</text>
-    </assertion>
-
-    <assertion id="ba">
-      <text>A bean class may also specify a scope~, name, stereotypes and/or bindings~</text>
-    </assertion>
-
-    <assertion id="bb">
-      <text>A bean class may also specify a ~scope, ~name~, stereotypes and/or bindings~</text>
-    </assertion>
-
-    <assertion id="bd">
-      <text>A bean class may also specify ~a scope, name, ~stereotypes~ and/or bindings~</text>
-    </assertion>
-
-    <assertion id="be">
-      <text>A bean class may also specify ~a scope, name, stereotypes and/or ~bindings</text>
-    </assertion>
-
-    <assertion id="c">
-      <text>A session bean class may extend another bean class</text>
-    </assertion>
-  </section>
-
-  <section id="3.2.4" title="Specializing a session bean">
-    <assertion id="aa">
-      <text>If a bean class of a session bean X is annotated |@Specializes|, then the bean class of X must directly extend the bean class of another session bean Y. Then X directly specializes Y, as defined in Section 4.3 "Specialization".</text>
-    </assertion>
-
-    <assertion id="da">
-      <text>If the bean class of X does not directly extend the bean class of another session bean, the container automatically detects the problem and treats it as a definition error, as defined in Section 12.4, "Problems detected automatically by the container".</text>
-    </assertion>
-  </section>
-
-  <section id="3.2.5" title="Default name for a session bean">
-    <assertion id="a">
-      <text>The default name for a managed bean is the unqualified class name of the session bean class, after converting the first character to lower case.</text>
-    </assertion>
-  </section>
-
-  <section id="3.3" title="Producer methods">
-    <assertion id="aa">
-      <text>A producer method must be a non-abstract method of a managed bean class or session bean class.</text>
-    </assertion>
-
-    <assertion id="b">
-      <text>A producer method may be static.</text>
-    </assertion>
-
-    <assertion id="c">
-      <text>A producer method may be non-static.</text>
-    </assertion>
-
-    <assertion id="d">
-      <text>If the bean is a session bean, the producer method must be either a business method of the EJB or a static method of the bean class</text>
-    </assertion>
-
-    <assertion id="e">
-      <text>If a producer method sometimes returns a null value, then the producer method must have scope |@Dependent|.</text>
-    </assertion>
-
-    <assertion id="f">
-      <text>If a producer method returns a null value at runtime, and the producer method declares scope other than |@Dependent|, an |IllegalProductException| is thrown by the container. This restriction allows the container to use a client proxy, as defined in Section 5.5, "Client proxies".</text>
-    </assertion>
-
-    <assertion id="ga">
-      <text>If the producer method return type is a parameterized type, it must specify an actual type parameter or type variable for each type parameter.</text>
-    </assertion>
-
-    <assertion id="ha">
-      <text>If a producer method return type contains a wildcard type parameter the container automatically detects the problem and treats it as a definition error, as defined in Section 12.4, "Problems detected automatically by the container".</text>
-    </assertion>
-
-    <assertion id="iaa">
-      <text>If the producer method return type is a parameterized type with a type variable, it must have scope |@Dependent|.</text>
-    </assertion>
-    
-    <assertion id="iab">
-      <text>If a producer method with a parameterized return type with a type variable declares any scope other than |@Dependent|, the container automatically detects the problem and treats it as a definition error, as defined in Section 12.4, "Problems detected automatically by the container".</text>
-    </assertion>
-
-    <assertion id="ib">
-      <text>If a producer method return type is a type variable the container automatically detects the problem and treats it as a definition error, as defined in Section 12.4, "Problems detected automatically by the container".</text>
-    </assertion>
-
-    <assertion id="j">
-      <text>The application may call producer methods directly. However, if the application calls a producer method directly, no parameters will be passed to the producer method by the container; the returned object is not bound to any context; and its lifecycle is not managed by the container.</text>
-    </assertion>
-
-    <assertion id="k">
-      <text>A bean may declare multiple producer methods.</text>
-    </assertion>
-  </section>
-
-  <section id="3.3.1" title="Bean types of a producer method">
-    <assertion id="a">
-      <text>If the return type of a producer method is an interface, the set of bean types contains the return type, all interfaces it extends directly or indirectly and |java.lang.Object|</text>
-    </assertion>
-
-    <assertion id="ba">
-      <text>If a return type of a producer method is primitive ~or is a Java array type~, the set of bean types contains exactly two types: the method return type and |java.lang.Object|.</text>
-    </assertion>
-    
-    <assertion id="bb">
-      <text>If a return type of a producer method is ~primitive or is~ a Java array type, the set of bean types contains exactly two types: the method return type and |java.lang.Object|.</text>
-    </assertion>
-
-    <assertion id="c">
-      <text>If the return type of a producer method is a class, the set of bean types contains the return type, every superclass and all interfaces it implements directly or indirectly.</text>
-    </assertion>
-  </section>
-
-  <section id="3.3.2" title="Declaring a producer method">
-    <assertion id="a">
-      <text>A producer method may be declared by annotating a method with the |@javax.enterprise.inject.Produces| annotation</text>
-    </assertion>
-
-    <assertion id="ba">
-      <text>A producer method may specify a scope</text>
-    </assertion>
-
-    <assertion id="bb">
-      <text>A producer method may specify a name</text>
-    </assertion>
-
-    <assertion id="bd">
-      <text>A producer method may specify stereotypes</text>
-    </assertion>
-
-    <assertion id="be">
-      <text>A producer method may specify a binding type</text>
-    </assertion>
-
-    <assertion id="ca">
-      <text>If a producer method is annotated |@Initializer|, the container automatically detects the problem and treats it as a definition error, as defined in Section 12.4, "Problems detected automatically by the container".</text>
-    </assertion>
-
-    <assertion id="da">
-      <text>If a producer method has a parameter annotated |@Disposes|, the container automatically detects the problem and treats it as a definition error, as defined in Section 12.4, "Problems detected automatically by the container".</text>
-    </assertion>
-
-    <assertion id="ea">
-      <text>If a producer method has a parameter annotated |@Observes|, the container automatically detects the problem and treats it as a definition error, as defined in Section 12.4, "Problems detected automatically by the container".</text>
-    </assertion>
-
-    <assertion id="fa">
-      <text>If a non-static method of a session bean class is annotated |@Produces|, and the method is not a business method of the session bean, the container automatically detects the problem and treats it as a definition error, as defined in Section 12.4, "Problems detected automatically by the container".</text>
-    </assertion>
-
-    <assertion id="ga">
-      <text>Interceptors ~and decorators~ may not declare producer methods. If an interceptor ~or decorator~ has a method annotated |@Produces|, the container automatically detects the problem and treats it as a definition error, as defined in Section 12.4, "Problems detected automatically by the container".</text>
-    </assertion>
-    
-    <assertion id="gb">
-      <text>~Interceptors and~ decorators may not declare producer methods. If an ~interceptor or~ decorator has a method annotated |@Produces|, the container automatically detects the problem and treats it as a definition error, as defined in Section 12.4, "Problems detected automatically by the container".</text>
-    </assertion>
-  </section>
-
-  <section id="3.3.3" title="Producer method parameters">
-    <assertion id="b">
-      <text>A producer method may have any number of parameters.</text>
-    </assertion>
-
-    <assertion id="c">
-      <text>All producer method parameters are injection points.</text>
-    </assertion>
-  </section>
-
-  <section id="3.3.4" title="Specializing a producer method">
-    <assertion id="aa">
-      <text>If a producer method X is annotated |@Specializes|, then it must be non-static and directly override another producer method Y. Then X directly specializes Y, as defined in Section 4.3 "Specialization".</text>
-    </assertion>
-
-    <assertion id="ba">
-      <text>If a producer method is static, the container automatically detects the problem and treats it as a definition error, as defined in Section 12.4 "Problems detected automatically by the container".</text>
-    </assertion>
-
-    <assertion id="ca">
-      <text>If a producer method does not directly override another producer method, the container automatically detects the problem and treats it as a definition error, as defined in Section 12.4 "Problems detected automatically by the container".</text>
-    </assertion>
-  </section>
-
-  <section id="3.3.5" title="Disposer methods">
-    <assertion id="a">
-      <text>A disposer method must be a method of a managed bean class or session bean class.</text>
-    </assertion>
-
-    <assertion id="b">
-      <text>A disposer method may be static.</text>
-    </assertion>
-
-    <assertion id="c">
-      <text>A disposer method may be non-static.</text>
-    </assertion>
-
-    <assertion id="d">
-      <text>If the bean is a session bean, the disposer method must be a business method of the EJB or a static method of the bean class.</text>
-    </assertion>
-
-    <assertion id="e">
-      <text>A bean may declare multiple disposer methods.</text>
-    </assertion>
-  </section>
-
-  <section id="3.3.6" title="Disposed parameter of a disposer method">
-    <assertion id="a">
-      <text>Each disposer method must have exactly one disposed parameter, of the same type as the corresponding producer method return type.</text>
-    </assertion>
-
-    <assertion id="ba">
-      <text>When searching for disposer methods for a producer method, the container considers the type and bindings of the disposed parameter. If a disposed parameter resolves to a producer method declared by the same bean class, according to the rules of typesafe resolution defined in Section 5.3 "Typesafe resolution", the container must call this method when destroying an instance returned by that producer method.</text>
-    </assertion>
-
-    <assertion id="da">
-      <text>A disposer method may resolve to multiple producer methods declared by the bean class, in which case the container must call it when destroying any instance returned by any of these producer methods.</text>
-    </assertion>
-  </section>
-
-  <section id="3.3.7" title="Declaring a disposer method">
-    <assertion id="a">
-      <text>A disposer method may be declared by annotating a parameter |@javax.enterprise.inject.Disposes|. That parameter is the disposed parameter</text>
-    </assertion>
-
-    <assertion id="b0">
-      <text>Bindings may be declared by annotating the disposed parameter.</text>
-    </assertion>
-
-    <assertion id="ba">
-  <text>If a method has more than one parameter annotated |@Disposes|, the container automatically detects the problem and treats it as a definition error, as defined in Section 12.4 "Problems detected automatically by the container".</text>
-    </assertion>
-
-    <assertion id="ca">
-      <text>If a disposal method is annotated |@Produces|, the container automatically detects the problem and treats it as a definition error, as defined in Section 12.4 "Problems detected automatically by the container".</text>
-    </assertion>
-
-    <assertion id="da">
-      <text>If a disposal method is annotated |@Initializer|, the container automatically detects the problem and treats it as a definition error, as defined in Section 12.4 "Problems detected automatically by the container".</text>
-    </assertion>
-
-    <assertion id="ea">
-      <text>If a disposal method has a parameter annotated |@Observes|, the container automatically detects the problem and treats it as a definition error, as defined in Section 12.4 "Problems detected automatically by the container".</text>
-    </assertion>
-
-    <assertion id="fa">
-      <text>If a non-static method of a session bean class has a parameter annotated |@Disposes|, and the method is not a business method of the session bean, the container automatically detects the problem and treats it as a definition error, as defined in Section 12.4 "Problems detected automatically by the container".</text>
-    </assertion>
-  </section>
-
-  <section id="3.3.8" title="Disposer method parameters">
-    <assertion id="a">
-      <text>In addition to the disposed parameter, a disposer method may declare additional parameters, which may also specify bindings. These additional parameters are injection points.</text>
-    </assertion>
-  </section>
-
-  <section id="3.3.9" title="Disposer method resolution">
-    <assertion id="aa">
-      <text>When searching for disposer methods for a producer method, the container searches for disposer methods which are declared by the same bean class as the producer method, and for which the disposed parameter resolves to the producer method, according to the typesafe resolution algorithm defined in Section 5.3, "Typesafe resolution".</text>
-    </assertion>
-
-    <assertion id="ba">
-      <text>If there are multiple disposer methods for a single producer method, the container automatically detects the problem and treats it as a definition error, as defined in Section 12.4, "Problems detected automatically by the container".</text>
-    </assertion>
-
-    <assertion id="ca">
-      <text>If the disposed parameter of a disposer method does not resolve to any producer method declared by the bean class, the container automatically detects the problem and treats it as a definition error, as defined in Section 12.4, "Problems detected automatically by the container".</text>
-    </assertion>
-  </section>
-
-  <section id="3.3.10" title="Default name for a producer method">
-    <assertion id="a">
-      <text>The default name for a producer method is the method name, unless the method follows the JavaBeans property getter naming convention, in which case the default name is the JavaBeans property name</text>
-    </assertion>
-  </section>
-
-  <section id="3.4" title="Producer fields">
-    <assertion id="aa">
-      <text>A producer field must be a field of a managed bean class ~or session bean class~</text>
-      <note>Just test that a producer field on these works</note>
-    </assertion>
-    
-    <assertion id="ab">
-      <text>A producer field must be a field of a ~managed bean class or~ session bean class</text>
-      <note>Just test that a producer field on these works</note>
-    </assertion>
-
-    <assertion id="b">
-      <text>A producer field may be static.</text>
-    </assertion>
-
-    <assertion id="c">
-      <text>A producer field may be non-static.</text>
-    </assertion>
-    
-    <assertion id="ca">
-      <text> If the bean is a session bean, the producer field must be a static field of the bean class.</text>
-    </assertion>
-
-    <assertion id="d">
-      <text>If a producer field sometimes contains a null value when accessed, then the producer field must have scope |@Dependent|</text>
-    </assertion>
-
-    <assertion id="e">
-      <text>If a producer method contains a null value at runtime, and the producer field declares any other scope, an |IllegalProductException| is thrown by the container. This restriction allows the container to use a client proxy, as defined in Section 5.5, "Client proxies"</text>
-    </assertion>
-
-    <assertion id="fa">
-      <text>If the producer field type is a parameterized type, it must specify an _actual type parameter_ or type variable for each type parameter</text>
-    </assertion>
-    
-    <assertion id="fb">
-      <text>If the producer field type is a parameterized type, it must specify an actual type parameter or _type variable_ for each type parameter</text>
-    </assertion>
-
-    <assertion id="ga">
-      <text>If a producer field type contains a wildcard type parameter the container automatically detects the problem and treats it as a definition error, as defined in Section 12.4, "Problems detected automatically by the container".</text>
-    </assertion>
-
-    <assertion id="gb">
-      <text>If the producer field type is a parameterized type with a type variable, it must have scope |@Dependent|. If a producer field with a parameterized type with a type variable declares any scope other than |@Dependent|, the container automatically detects the problem and treats it as a definition error, as defined in Section 12.4, "Problems detected automatically by the container".</text>
-    </assertion>
-
-    <assertion id="ha">
-      <text>If a producer field type is a type variable the container automatically detects the problem and treats it as a definition error, as defined in Section 12.4, "Problems detected automatically by the container".</text>
-    </assertion>
-
-    <assertion id="i" testable="false">
-      <text>The application may access producer fields directly. However, if the application accesses a producer field directly, the returned object is not bound to any context; and its lifecycle is not managed by the container</text>
-      <note>This is a statement of intent</note>
-    </assertion>
-
-    <assertion id="j">
-      <text>A bean may declare multiple producer fields</text>
-    </assertion>
-  </section>
-
-  <section id="3.4.1" title="Bean types of a producer field">
-    <assertion id="a">
-      <text>The bean types of a producer field depend upon the field type.  If the field type is an interface, the set of bean types contains the field type, all interfaces it extends directly or indirectly and java.lang.Object</text>
-    </assertion>
-
-    <assertion id="ba">
-      <text>The bean types of a producer field depend upon the field type.  If a field type is primitive ~or is a Java array type,~ the set of bean types contains exactly two types: the field type and java.lang.Object</text>
-    </assertion>
-    
-    <assertion id="bb">
-      <text>The bean types of a producer field depend upon the field type.  If a field type is ~primitive or is~ a Java array type, the set of bean types contains exactly two types: the field type and java.lang.Object</text>
-    </assertion>
-
-    <assertion id="c">
-      <text>The bean types of a producer field depend upon the field type.  If the field type is a class, the set of bean types contains the field type, every superclass and all interfaces it implements directly or indirectly</text>
-    </assertion>
-  </section>
-
-  <section id="3.4.2" title="Declaring a producer field">
-    <assertion id="a">
-      <text>A producer field may be declared by annotating a field with the |@javax.enterprise.inject.Produces| annotation</text>
-    </assertion>
-
-    <assertion id="b">
-      <text>A producer field may specify a scope.</text>
-    </assertion>
-
-    <assertion id="c">
-      <text>A producer field may specify a name.</text>
-    </assertion>
-
-    <assertion id="e">
-      <text>A producer field may specify stereotypes.</text>
-    </assertion>
-
-    <assertion id="f">
-      <text>A producer field may specify bindings.</text>
-    </assertion>
-  </section>
-
-  <section id="3.4.3" title="Default name for a producer field">
-    <assertion id="a">
-      <text>The default name for a producer field is the field name</text>
-    </assertion>
-  </section>
-
-  <section id="3.5" title="Resources">
-    <assertion id="ka" testable="false">
-      <text>The container is not required to support resources with scope other than |@Dependent|.</text>
-      <note>Statement about non-portable behavior</note>
-    </assertion>
-
-    <assertion id="l" testable="false">
-      <text>A resource may not declare a bean EL name</text>
-      <note>Doesn't mention the consequences of this</note>
-    </assertion>
-  </section>
-
-  <section id="3.5.1" title="Declaring a resource">
-    <assertion id="aa" testable="false">
-      <text>A resource may be declared by specifying a Java EE component environment injection annotation as part of a producer field declaration.</text>
-      <note>Introductory text for the folloiwing assertions</note>
-    </assertion>
-
-    <assertion id="bb">
-      <text>For a Java EE resource, |@Resource| must be specified.</text>
-    </assertion>
-
-    <assertion id="cc">
-      <text>For a persistence context, |@PersistenceContext| must be specified.</text>
-    </assertion>
-
-    <assertion id="dd">
-      <text>For a persistence unit, |@PersistenceUnit| must be specified.</text>
-    </assertion>
-
-    <assertion id="ee">
-      <text>For a remote EJB, |@EJB| must be specified.</text>
-    </assertion>
-
-    <assertion id="ff">
-      <text>For a web service, |@WebServiceRef| must be specified.</text>
-    </assertion>
-
-    <assertion id="gg" testable="false">
-      <text>The injection annotation specifies the metadata needed to obtain the resources, entity manager, entity manager factory, remote EJB instance or web service reference from the component environment.</text>
-      <note>This is defined in other specs</note>
-    </assertion>
-
-    <assertion id="hh">
-      <text>The bean type and bindings of the resource are determined by the producer field declaration.</text>
-    </assertion>
-
-  </section>
-
-  <section id="3.5.2" title="Bean types of a resource">
-    <assertion id="a">
-      <text>The bean types of a resource are the declared type of the field declaration, together with |java.lang.Object|.</text>
-    </assertion>
-  </section>
-
-  <section id="3.6" title="Additional built-in beans">
-    <assertion id="a">
-      <text>A Java EE or embeddable EJB container must provide a bean with binding |@Current| and bean type |javax.transaction.UserTransaction|, allowing injection of a reference to the JTA |UserTransaction|.</text>
-    </assertion>
-
-    <assertion id="b">
-      <text>A Java EE or embeddable EJB container must provide a bean with binding |@Current| and bean type |javax.security.Principal|, allowing injection of a |Principal| representing the current caller identity.</text>
-    </assertion>
-
-    <assertion id="c">
-      <text>A Java EE or embeddable EJB container must provide a bean with binding |@Current| and bean type |javax.validation.ValidationFactory|, allowing injection of the default Bean Validation |ValidationFactory|.</text>
-    </assertion>
-
-    <assertion id="d">
-      <text>A Java EE or embeddable EJB container must provide a bean with binding |@Current| and bean type |javax.validation.Validator|, allowing injection of a |Validator| for the default Bean Validation |ValidationFactory|.</text>
-    </assertion>
-
-    <assertion id="e">
-      <text>If a Java EE component class has an injection point of type |UserTransaction| and binding |@Current|, and may not validly make use of the JTA |UserTransaction| according to the Java EE platform specification, the container automatically detects the problem and treats it as a definition error, as defined in Section 12.4, "Problems detected automatically by the container".</text>
-    </assertion>
-  </section>
-
-  <section id="3.7" title="Injected fields">
-    <assertion id="aa">
-      <text>An injected field is a non-static~, non-final~ field of a bean class.</text>
-    </assertion>
-
-    <assertion id="ab">
-      <text>An injected field is a ~non-static, ~non-final field of a bean class.</text>
-    </assertion>
-
-    <assertion id="ba">
-      <text>An injected field is a non-static, ~non-final~ field of any Java EE component class supporting injection.</text>
-    </assertion>
-
-    <assertion id="bb">
-      <text>An injected field is a ~non-static~, non-final field of any Java EE component class supporting injection.</text>
-    </assertion>
-
-    <assertion id="ea">
-      <text>Injected fields are initialized by the container before initializer methods are called, and before the |@PostConstruct| callback occurs.</text>
-    </assertion>
-
-    <assertion id="h">
-      <text>If a field is a producer field, it is not an injected field</text>
-    </assertion>
-  </section>
-
-  <section id="3.7.1" title="Declaring an injected field">
-    <assertion id="a">
-      <text>An injected field may be declared by annotating the field with any binding type.</text>
-    </assertion>
-  </section>
-
-  <section id="3.8" title="Initializer methods">
-    <assertion id="aa">
-      <text>An initializer method is a non-static method of a bean class.</text>
-    </assertion>
-
-    <assertion id="ca">
-      <text>An initializer method is a non-static method of any Java EE component class supporting injection.</text>
-    </assertion>
-
-    <assertion id="e">
-      <text>If the bean is a session bean, the initializer method is not required to be a business method of the session bean</text>
-    </assertion>
-
-    <assertion id="f">
-      <text>Method interceptors are never called when the container calls an initializer method</text>
-    </assertion>
-    
-    <assertion id="g">
-      <text>A bean class may declare multiple (or zero) initializer methods</text>
-    </assertion>
-
-    <assertion id="ea">
-      <text>Initializer methods are called by the container after injected fields are initialized, and before the |@PostConstruct| callback occurs.</text>
-    </assertion>
-
-    <assertion id="h" testable="false">
-      <text>The application may call initializer methods directly, but then no parameters will be passed to the method by the container</text>
-      <note>This is a statement of intent</note>
-    </assertion>
-  </section>
-
-  <section id="3.8.1" title="Declaring an initializer method">
-    <assertion id="a">
-      <text>An initializer method may be declared by annotating the method |@javax.enterprise.inject.Initializer|</text>
-    </assertion>
-
-    <assertion id="ab">
-      <text>If a generic method of a bean is annotated |@Initializer|, the container automatically detects the problem and treats it as a definition error, as defined in Section 12.4, "Problems detected automatically by the container".</text>
-    </assertion>
-
-    <assertion id="ba">
-      <text>If an initializer method is annotated |@Produces|, the container automatically detects the problem and treats it as a definition error, as defined in Section 12.4, "Problems detected automatically by the container".</text>
-    </assertion>
-
-    <assertion id="ca">
-      <text>If an initializer method has a parameter annotated |@Disposes|, the container automatically detects the problem and treats it as a definition error, as defined in Section 12.4, "Problems detected automatically by the container".</text>
-    </assertion>
-
-    <assertion id="da">
-      <text>If an initializer method has a parameter annotated |@Observes|, the container automatically detects the problem and treats it as a definition error, as defined in Section 12.4, "Problems detected automatically by the container".</text>
-    </assertion>
-
-  </section>
-
-  <section id="3.8.2" title="Initializer method parameters">
-    <assertion id="aa">
-      <text>An initializer method may have any number of parameters.</text>
-    </assertion>
-
-    <assertion id="b">
-      <text>All initializer method parameters are injection points.</text>
-    </assertion>
-  </section>
-
-  <section id="3.9" title="The default binding at injection points">
-    <assertion id="a">
-      <text>If an injection point declares no binding, the default binding |@Current| is assumed.</text>
-    </assertion>
-  </section>
-
-  <section id="3.10" title="Beans with the @New binding">
-    <assertion id="d">
-      <text>For each managed bean, a second bean exists which has the same bean class.</text>
-    </assertion>
-
-    <assertion id="e">
-      <text>For each managed bean, a second bean exists which has the same bean types.</text>
-    </assertion>
-
-    <assertion id="f">
-      <text>For each managed bean, a second bean exists which has the same bean constructor.</text>
-    </assertion>
-
-    <assertion id="g">
-      <text>For each managed bean, a second bean exists which has the same initializer methods.</text>
-    </assertion>
-
-    <assertion id="h">
-      <text>For each managed bean, a second bean exists which has the same injected fields.</text>
-    </assertion>
-
-    <assertion id="i">
-      <text>For each managed bean, a second bean exists which has the same interceptor bindings.</text>
-    </assertion>
-
-    <assertion id="j">
-      <text>For each session bean, a second bean exists which has the same bean class.</text>
-    </assertion>
-
-    <assertion id="k">
-      <text>For each session bean, a second bean exists which has the same bean types.</text>
-    </assertion>
-
-    <assertion id="l">
-      <text>For each session bean, a second bean exists which has the same bean constructor.</text>
-    </assertion>
-
-    <assertion id="m">
-      <text>For each session bean, a second bean exists which has the same initializer methods.</text>
-    </assertion>
-
-    <assertion id="n">
-      <text>For each session bean, a second bean exists which has the same injected fields.</text>
-    </assertion>
-
-    <assertion id="o">
-      <text>For each session bean, a second bean exists which has the same interceptor bindings.</text>
-    </assertion>
-
-    <assertion id="p">
-      <text>This second bean has scope |@Dependent|.</text>
-    </assertion>
-
-    <assertion id="r">
-      <text>This second bean has exactly one binding: |@javax.enterprise.inject.New(X.class)| where |x| is the bean class.</text>
-    </assertion>
-
-    <assertion id="s">
-      <text>This second bean has no bean EL name.</text>
-    </assertion>
-
-    <assertion id="t">
-      <text>This second bean has no stereotypes.</text>
-    </assertion>
-
-    <assertion id="u">
-      <text>This second bean has no observer methods.</text>
-    </assertion>
-
-    <assertion id="v">
-      <text>This second bean has no producer methods.</text>
-    </assertion>
-
-    <assertion id="w">
-      <text>This second bean has no producer fields.</text>
-    </assertion>
-
-    <assertion id="x">
-      <text>This second bean has no disposer methods.</text>
-    </assertion>
-
-    <assertion id="xb">
-      <text>This second bean is not a policy.</text>
-    </assertion>
-
-    <assertion id="z">
-      <text>When the binding |@New| is specified at an injection point and no value member is explicitly specified, the container defaults the value to the declared type of the injection point.</text>
-    </assertion>
-  </section>
-
-  <section id="4" title="Inheritance and specialization">
-
-  </section>
-
-  <section id="4.1" title="Inheritance of type-level metadata">
-    <group>
-      <text>Suppose a class X is extended directly or indirectly by the bean class of a managed bean or session bean Y.  If X is annotated with a binding type, stereotype or interceptor binding type Z then Y inherits the annotation if and only if Z declares the |@Inherited| meta-annotation and neither Y nor any intermediate class that is a subclass of X and a superclass of Y declares an annotation of type Z.</text>
-  
-      <assertion id="aa">
-        <text>Test binding type for directly extended managed bean annotated |@Inherited| is inherited.</text>
-      </assertion>
-      
-      <assertion id="aaa">
-        <text>Test binding type for directly extended managed bean not annotated |@Inherited| is not inherited.</text>      
-      </assertion>
-
-      <assertion id="ab">
-        <text>Test stereotype for directly extended managed bean annotated |@Inherited| is inherited.</text>
-      </assertion>
-      
-      <assertion id="aba">
-        <text>Test stereotype for directly extended managed bean not annotated |@Inherited| is not inherited.</text>      
-      </assertion>
-
-      <assertion id="ad">
-        <text>Test interceptor binding type for directly extended managed bean annotated |@Inherited| is inherited.</text>
-      </assertion>
-      
-      <assertion id="ada">
-        <text>Test interceptor binding type for directly extended managed bean not annotated |@Inherited| is not inherited.</text>
-      </assertion>
-      
-      <assertion id="ag">
-        <text>Test binding type for indirectly extended managed bean annotated |@Inherited| is inherited.</text>      
-      </assertion>
-      
-      <assertion id="aga">
-        <text>Test binding type for indirectly extended managed bean not annotated |@Inherited| is not inherited.</text>            
-      </assertion>
-
-      <assertion id="ah">
-        <text>Test stereotype for indirectly extended managed bean annotated |@Inherited| is inherited.</text>
-      </assertion>
-      
-      <assertion id="aha">
-        <text>Test stereotype for indirectly extended managed bean not annotated |@Inherited| is not inherited.</text>
-      </assertion>
-
-      <assertion id="aj">
-        <text>Test interceptor binding type for indirectly extended managed bean annotated |@Inherited| is inherited.</text>
-      </assertion>
-      
-      <assertion id="aja">
-        <text>Test interceptor binding type for indirectly extended managed bean not annotated |@Inherited| is not inherited.</text>
-      </assertion>
-      
-      <assertion id="al">
-        <text>Test binding type for directly extended session bean annotated |@Inherited| is inherited.</text>
-      </assertion>
-      
-      <assertion id="ala">
-        <text>Test binding type for directly extended session bean not annotated |@Inherited| is not inherited.</text>
-      </assertion>
-
-      <assertion id="am">
-        <text>Test stereotype for directly extended session bean annotated |@Inherited| is inherited.</text>      
-      </assertion>
-      
-      <assertion id="ama">
-        <text>Test stereotype for directly extended session bean not annotated |@Inherited| is not inherited.</text>
-      </assertion>
-
-      <assertion id="an">
-        <text>Test interceptor binding type for directly extended session bean annotated |@Inherited| is inherited.</text>      
-      </assertion>
-      
-      <assertion id="ana">
-        <text>Test interceptor binding type for directly extended session bean not annotated |@Inherited| is not inherited.</text>      
-      </assertion>      
-
-      <assertion id="ap">
-        <text>Test binding type for indirectly extended session bean annotated |@Inherited| is inherited.</text>
-      </assertion>
-
-      <assertion id="apa">
-        <text>Test binding type for indirectly extended session bean not annotated |@Inherited| is not inherited.</text>            
-      </assertion>      
-
-      <assertion id="aq">
-        <text>Test stereotype for indirectly extended session bean annotated |@Inherited| is inherited.</text>
-      </assertion>
-
-      <assertion id="aqa">
-        <text>Test stereotype for indirectly extended session bean not annotated |@Inherited| is not inherited.</text>
-      </assertion>
-      
-      <assertion id="ar">
-        <text>Test interceptor binding type for indirectly extended session bean annotated |@Inherited| is inherited.</text>
-      </assertion>
-      
-      <assertion id="ara">
-        <text>Test interceptor binding type for indirectly extended session bean not annotated |@Inherited| is not inherited.</text>
-      </assertion>      
-    </group>
-
-    <group>
-      <text>Suppose a class X is extended directly or indirectly by the bean class of a managed bean or session bean Y.  If X is annotated with a scope type Z then Y inherits the annotation if and only if Z declares the |@Inherited| meta-annotation and neither Y nor any intermediate class that is a subclass of X and a superclass of Y declares a scope type.</text>
-      
-      <assertion id="ba">
-        <text>Test scope type for directly extended managed bean annotated |@Inherited| is inherited.</text>
-      </assertion>
-      
-      <assertion id="baa">
-        <text>Test scope type for directly extended managed bean not annotated |@Inherited| is not inherited.</text>
-      </assertion>      
-
-      <assertion id="bc">
-        <text>Test scope type for indirectly extended managed bean annotated |@Inherited| is inherited.</text>
-      </assertion>
-
-      <assertion id="bca">
-        <text>Test scope type for indirectly extended managed bean not annotated |@Inherited| is not inherited.</text>
-      </assertion>
-      
-      <assertion id="be">
-        <text>Test scope type for directly extended session bean annotated |@Inherited| is inherited.</text>      
-      </assertion>
-      
-      <assertion id="bea">
-        <text>Test scope type for directly extended session bean not annotated |@Inherited| is not inherited.</text>
-      </assertion>      
-
-      <assertion id="bh">
-        <text>Test scope type for indirectly extended session bean annotated |@Inherited| is inherited.</text>
-      </assertion>
-      
-      <assertion id="bha">
-        <text>Test scope type for indirectly extended session bean not annotated |@Inherited| is not inherited.</text>
-      </assertion>      
-    </group>
-
-    <assertion id="hhh">
-      <text>For class X which is extended _directly_ by the bean class of a _managed_ bean Y, a scope type explicitly declared by X and inherited by Y from X takes precedence over default scopes of stereotypes declared or inherited by Y.</text>
-    </assertion>
-    
-    <assertion id="hhi">
-      <text>For class X which is extended _indirectly_ by the bean class of a _managed_ bean Y, a scope type explicitly declared by X and inherited by Y from X takes precedence over default scopes of stereotypes declared or inherited by Y.</text>
-    </assertion>    
-    
-    <assertion id="hhj">
-      <text>For class X which is extended _directly_ by the bean class of a _session_ bean Y, a scope type explicitly declared by X and inherited by Y from X takes precedence over default scopes of stereotypes declared or inherited by Y.</text>
-    </assertion>
-    
-    <assertion id="hhk">
-      <text>For class X which is extended _indirectly_ by the bean class of a _session_ bean Y, a scope type explicitly declared by X and inherited by Y from X takes precedence over default scopes of stereotypes declared or inherited by Y.</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>
-    </assertion>
-
-    <assertion id="j" testable="false">
-      <text>For annotations defined by the bean specification, all built-in _stereotypes_ are declared |@Inherited|</text>
-      <note>sigtest</note>
-    </assertion>
-
-    <assertion id="k" testable="false">
-      <text>For annotations defined by the bean specification, _no built-in binding type is declared |@Inherited|_</text>
-      <note>sigtest</note>
-    </assertion>
-
-    <assertion id="m" testable="false">
-      <text>The |@Named| annotation is not declared |@Inherited| and bean EL names are not inherited unless specialization is used</text>
-      <note>sigtest</note>
-    </assertion>
-
-  </section>
-
-  <section id="4.2" title="Inheritance of member-level metadata">
-
-    <assertion id="aa">
-      <text>For class X which is extended _directly_ by the bean class of a _managed_ bean Y, if X declares an injected field x then Y inherits x.</text>
-    </assertion>
-
-    <assertion id="ab">
-      <text>For class X which is extended _directly_ by the bean class of a _session_ bean Y, if X declares an injected field x then Y inherits x.</text>
-    </assertion>
-
-    <assertion id="ac">
-      <text>For class X which is extended _indirectly_ by the bean class of a _managed_ bean Y, if X declares an injected field x then Y inherits x.</text>
-    </assertion>
-
-    <assertion id="ad">
-      <text>For class X which is extended _indirectly_ by the bean class of a _session_ bean Y, if X declares an injected field x then Y inherits x.</text>
-    </assertion>
-
-    <assertion id="baa">
-      <text>For class X which is extended _directly_ by the bean class of a _managed_ bean Y, if X declares a _|@PostConstruct|_ method x() then Y inherits x() if and only if Y does not override the method x()</text>
-    </assertion>
-
-    <assertion id="bab">
-      <text>For class X which is extended _directly_ by the bean class of a _session_ bean Y, if X declares a _|@PostConstruct|_ method x() then Y inherits x() if and only if Y does not override the method x()</text>
-    </assertion>
-
-    <assertion id="bac">
-      <text>For class X which is extended _indirectly_ by the bean class of a _managed_ bean Y, if X declares a _|@PostConstruct|_ method x() then Y inherits x() if and only if neither Y nor any intermediate class that is a subclass of X and a superclass of Y overrides the method x()</text>
-    </assertion>
-
-    <assertion id="bad">
-      <text>For class X which is extended _indirectly_ by the bean class of a _session_ bean Y, if X declares a _|@PostConstruct|_ method x() then Y inherits x() if and only if neither Y nor any intermediate class that is a subclass of X and a superclass of Y overrides the method x()</text>
-    </assertion>
-
-    <assertion id="bba">
-      <text>For class X which is extended _directly_ by the bean class of a _managed_ bean Y, if X declares a _|@PreDestroy|_ method x() then Y inherits x() if and only if Y does not override the method x()</text>
-    </assertion>
-
-    <assertion id="bbb">
-      <text>For class X which is extended _directly_ by the bean class of a _session_ bean Y, if X declares a _|@PreDestroy|_ method x() then Y inherits x() if and only if Y does not override the method x()</text>
-    </assertion>
-
-    <assertion id="bbc">
-      <text>For class X which is extended _indirectly_ by the bean class of a _managed_ bean Y, if X declares a _|@PreDestroy|_ method x() then Y inherits x() if and only if neither Y nor any intermediate class that is a subclass of X and a superclass of Y overrides the method x()</text>
-    </assertion>
-
-    <assertion id="bbd">
-      <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="da">
-      <text>For class X which is extended _directly_ by the bean class of a _managed_ bean Y, if X declares a _non-static producer method_ x() then Y does not inherit this method unless Y is explicitly declared to specialize X</text>
-    </assertion>
-
-    <assertion id="db">
-      <text>For class X which is extended _directly_ by the bean class of a _managed_ bean Y, if X declares a _non-static disposer method_ x() then Y does not inherit this method unless Y is explicitly declared to specialize X</text>
-    </assertion>
-
-    <assertion id="dc">
-      <text>For class X which is extended _directly_ by the bean class of a _managed_ bean Y, if X declares a _non-static observer method_ x() then Y does not inherit this method unless Y is explicitly declared to specialize X</text>
-    </assertion>
-
-    <assertion id="dd">
-      <text>For class X which is extended _directly_ by the bean class of a _session_ bean Y, if X declares a _non-static producer method_ x() then Y does not inherit this method unless Y is explicitly declared to specialize X</text>
-    </assertion>
-
-    <assertion id="de">
-      <text>For class X which is extended _directly_ by the bean class of a _session_ bean Y, if X declares a _non-static disposer method_ x() then Y does not inherit this method unless Y is explicitly declared to specialize X</text>
-    </assertion>
-
-    <assertion id="df">
-      <text>For class X which is extended _directly_ by the bean class of a _session_ bean Y, if X declares a _non-static observer method_ x() then Y does not inherit this method unless Y is explicitly declared to specialize X</text>
-    </assertion>
-
-    <assertion id="dg">
-      <text>For class X which is extended _indirectly_ by the bean class of a _managed_ bean Y, if X declares a _non-static producer method_ x() then Y does not inherit this method unless Y is explicitly declared to specialize X</text>
-    </assertion>
-
-    <assertion id="dh">
-      <text>For class X which is extended _indirectly_ by the bean class of a _managed_ bean Y, if X declares a _non-static disposer method_ x() then Y does not inherit this method unless Y is explicitly declared to specialize X</text>
-    </assertion>
-
-    <assertion id="di">
-      <text>For class X which is extended _indirectly_ by the bean class of a _managed_ bean Y, if X declares a _non-static observer method_ x() then Y does not inherit this method unless Y is explicitly declared to specialize X</text>
-    </assertion>
-
-    <assertion id="dj">
-      <text>For class X which is extended _indirectly_ by the bean class of a _session_ bean Y, if X declares a _non-static producer method_ x() then Y does not inherit this method unless Y is explicitly declared to specialize X</text>
-    </assertion>
-
-    <assertion id="dk">
-      <text>For class X which is extended _indirectly_ by the bean class of a _session_ bean Y, if X declares a _non-static disposer method_ x() then Y does not inherit this method unless Y is explicitly declared to specialize X</text>
-    </assertion>
-
-    <assertion id="dl">
-      <text>For class X which is extended _indirectly_ by the bean class of a _session_ bean Y, if X declares a _non-static observer method_ x() then Y does not inherit this method unless Y is explicitly declared to specialize X</text>
-    </assertion>
-
-    <assertion id="ea">
-      <text>For class X which is extended _directly_ by the bean class of a _managed_ bean Y, if X declares a _non-static producer field_ x then Y does not inherit this field unless Y is explicitly declared to specialize X.</text>
-      <note>We don't test session beans, as they can't have non-static producer fields</note>
-    </assertion>
-
-    <assertion id="ec">
-      <text>For class X which is extended _indirectly_ by the bean class of a _managed_ bean Y, if X declares a _non-static producer field_ x then Y does not inherit this field unless Y is explicitly declared to specialize X.</text>
-      <note>We don't test session beans, as they can't have non-static producer fields</note>
-    </assertion>
-
-    <assertion id="f">
-      <text>If X is a generic type, and an injection point declared by X is inherited by Y, and the declared type of the injection point contains type variables declared by X, the type of the injection point inherited in Y is the declared type, after substitution of actual type arguments declared by Y or any intermediate class that is a subclass of X and a superclass of Y.</text>
-    </assertion>
-
-    <assertion id="g">
-      <text>If X is a generic type, and a producer method declared by X is inherited by Y, and the declared type of the producer method contains type variables declared by X, the type of the producer method inherited in Y is the declared type, after substitution of actual type arguments declared by Y or any intermediate class that is a subclass of X and a superclass of Y.</text>
-    </assertion>
-
-    <assertion id="h">
-      <text>If X is a generic type, and a producer field declared by X is inherited by Y, and the declared type of the producer field contains type variables declared by X, the type of the producer field inherited in Y is the declared type, after substitution of actual type arguments declared by Y or any intermediate class that is a subclass of X and a superclass of Y.</text>
-    </assertion>
-
-    <assertion id="i">
-      <text>If X is a generic type, and a disposer method declared by X is inherited by Y, and the declared type of the disposed parameter contains type variables declared by X, the type of the disposed parameter inherited in Y is the declared type, after substitution of actual type arguments declared by Y or any intermediate class that is a subclass of X and a superclass of Y.</text>
-    </assertion>
-
-    <assertion id="j">
-      <text>If X is a generic type, and an observer method declared by X is inherited by Y, and the declared type of the event parameter contains type variables declared by X, the type of the event parameter inherited in Y is the declared type, after substitution of actual type arguments declared by Y or any intermediate class that is a subclass of X and a superclass of Y.</text>
-    </assertion>
-  </section>
-
-  <section id="4.3" title="Specialization">
-    <assertion id="a" testable="false">
-      <text>If two beans both support a certain bean type, and share at least one binding, then they are both eligible for injection to any injection point with that declared type and binding.</text>
-    </assertion>
-
-    <assertion id="ca">
-      <text>When an enabled bean specializes a second bean, we can be certain that the second bean is never instantiated or called by the container.</text>
-    </assertion>
-    
-    <assertion id="cb">
-      <text>When an enabled bean specializes a second bean, we can be certain ~that the second bean is never instantiated or called by the container.~ Even if the second bean defines a producer or observer method, the method will be called upon an instance of the first bean. </text>
-    </assertion>
-
-  </section>
-
-  <section id="4.3.1" title="Direct and indirect specialization">
-    <assertion id="ia">
-      <text>A bean X is said to specialize another bean Y if X directly specializes Y.</text>
-    </assertion>
-
-    <assertion id="ib">
-      <text>A bean X is said to specialize another bean Y if a bean Z exists, such that X directly specializes Z and Z specializes Y.</text>
-    </assertion>
-
-    <assertion id="j">
-      <text>A bean X that specializes bean Y will include all bindings of Y, together with all bindings declared explicitly by X.</text>
-    </assertion>
-
-    <assertion id="k">
-      <text>A bean X that specializes bean Y will have the same name as Y if Y has a name.</text>
-    </assertion>
-
-    <group>
-      <text>If X declares a name explicitly, using @Named, the container automatically detects the problem and treats it as a definition error, as defined in Section 12.4, "Problems detected automatically by the container".</text>
-            
-      <assertion id="la">
-        <text>Test that a specializing producer method with a name throws a deployment exception.</text>
-      </assertion>
-      
-      <assertion id="lb">
-        <text>Test that a specializing managed bean with a name throws a deployment exception.</text>
-      </assertion>
-      
-      <assertion id="lc">
-        <text>Test that a specializing enterprise bean with a name throws a deployment exception.</text>
-      </assertion>            
-    </group>
-
-    <assertion id="m">
-      <text>X must have all the bean types of Y. If X does not support some bean type of Y, the container automatically detects the problem and treats it as a definition error, as defined in Section 12.4, "Problems detected automatically by the container".</text>
-    </assertion>
-  </section>
-
-  <section id="4.3.2" title="Most specialized enabled bean for a bean">
-    <group>
-      <text>Non-static producer methods, producer fields, disposal methods and observer methods of a bean are invoked upon an instance of the most specialized enabled bean that specializes the bean, as defined by Section 5.6.6, "Invocation of producer or disposal methods", Section 5.6.7, "Access to producer field values" and Section 5.6.8, "Invocation of observer methods".</text>
-            
-      <assertion id="aa">
-        <text>Test with non-static producer method on an enterprise bean.</text>
-      </assertion>
-      
-      <assertion id="ab">
-        <text>Test with non-static producer method on a managed bean.</text>
-      </assertion>      
-        
-      <assertion id="b">
-        <text>Test with non-static producer field.</text>
-      </assertion>       
-      
-      <assertion id="c">
-        <text>Test with non-static disposal method.</text>
-      </assertion>
-      
-      <assertion id="d">
-        <text>Test with non-static observer method.</text>
-      </assertion>
-    </group>
-
-  </section>
-
-  <section id="4.3.3" title="Inconsistent specialization">
-    <assertion id="c">
-      <text>If, for an enabled bean X that directly specializes a second bean Y, there is another enabled bean that directly specializes Y, we say that inconsistent specialization exists.  The container automatically detects inconsistent specialization and treats it as a deployment problem, as defined in Section 12.4, "Problems detected automatically by the container".</text>
-    </assertion>
-
-    <assertion id="d">
-      <text>If, for an enabled bean X that directly specializes a second bean Y, there is an injection point that matches Y and not X, according to the typesafe resolution algorithm defined in Section 5.3 "Typesafe resolution", we say that inconsistent specialization exists.  The container automatically detects inconsistent specialization and treats it as a deployment problem, as defined in Section 12.4, "Problems detected automatically by the container".</text>
-    </assertion>
-  </section>
-
-  <section id="5" title="Dependency injection, lookup, and EL">
-
-    <assertion id="b">
-      <text>The container is required to support circularities in the bean dependency graph.</text>
-      <note>The RI has unit tests for this atm</note>
-    </assertion>
-  </section>
-
-  <section id="5.1" title="Inter-module accessibility in Java EE">
-    <group>
-      <text>Beans packaged in a certain Java EE _module or library are available for injection, lookup and EL resolution to classes and JSP/JSF pages packaged in some other Java EE module or library if and only if the first module or library is required to be accessible to the other module or library by the Java EE platform specification.</text>
-            
-      <assertion id="aa">
-        <text>Test with injection.</text>
-      </assertion>
-      
-      <assertion id="ab">
-        <text>Test with lookup.</text>
-      </assertion>
-      
-      <assertion id="ac">
-        <text>Test with EL resolution.</text>
-      </assertion>
-    </group>
-
-    <assertion id="b">
-      <text>For a custom implementation of the |Bean| interface defined in Section 11.1, "The Bean interface", the container calls |getBeanClass()| to determine the bean class of the bean.</text>
-    </assertion>
-    
-    <assertion id="c">
-      <text>For a custom implementation of |Bean|, defined in Section 11.2, "The Producer and InjectionTarget interfaces", the container calls |InjectionPoint.getMember()| and then |Member.getDeclaringClass()| to determine the class that declares an injection point.</text>
-    </assertion>
-
-    <assertion id="d">
-      <text>For a custom implementation of |InjectionTarget|, defined in Section 11.2, "The Producer and InjectionTarget interfaces", the container calls |InjectionPoint.getMember()| and then |Member.getDeclaringClass()| to determine the class that declares an injection point.</text>
-    </assertion>
-
-  </section>
-
-  <section id="5.2" title="Policy enablement">
-    <assertion id="a">
-      <text>A policy is never available for injection, lookup or EL resolution in a Java EE module or library that is not a bean deployment archive (a module or library with no beans.xml file).</text>
-    </assertion>
-    
-    <assertion id="b">
-      <text>Nor is a policy available for injection, lookup or EL resolution in every bean deployment archive. A policy must be explicitly enabled in every bean deployment archive in which the policy should be available for injection, lookup and EL resolution.</text>
-    </assertion>
-
-    <assertion id="c">
-      <text>By default, a bean deployment archive has no enabled policies. A policy must be explicitly declared using the &lt;policies&gt; element of the |beans.xml| file of the bean deployment archive.</text>
-    </assertion>
-
-    <assertion id="d" testable="false">
-      <text>The &lt;policies&gt; element contains a list of bean classes and stereotypes. </text>
-    </assertion>
-
-    <group>
-      <text>A policy is enabled for the bean deployment archive if the policy is a managed bean or session bean and the bean class of the bean is listed.</text>
-            
-      <assertion id="ea">
-        <text>Test with a managed bean.</text>
-      </assertion>
-      
-      <assertion id="eb">
-        <text>Test with a session bean.</text>
-      </assertion>
-    </group>
-
-    <group>
-	    <text>A policy is enabled for the bean deployment archive if the policy is a producer method, field or resource, and the bean class that declares the method or field is listed.</text>
-	   
-	   <assertion id="fa">
-       <text>Test for enablement of a producer method and field.</text>
-     </assertion>
-       
-	   <assertion id="fb">
-       <text>Test for enablement of a resource.</text>
-     </assertion>
-  	</group>
-
-    <assertion id="g">
-      <text>A policy is enabled for the bean deployment archive if any |@Policy| stereotype of the policy is listed.</text>
-    </assertion>
-
-    <assertion id="h">
-      <text>Each child &lt;class&gt; element must specify the name of a policy bean class.  If there is no class with the specified name, or if the class with the specified name is not a policy bean class, the container automatically detects the problem and treats it as a deployment problem, as defined in Section 12.4, "Problems detected automatically by the container".</text>
-    </assertion>
-
-    <assertion id="i">
-      <text>Each child &lt;stereotype&gt; element must specify the name of a |@Policy| stereotype annotation. If there is no annotation with the specified name, or the annotation is not a |@Policy| stereotype, the container automatically detects the problem and treats it as a deployment problem, as defined in Section 12.4, "Problems detected automatically by the container".</text>
-    </assertion>
-
-    <assertion id="j">
-      <text>If the same type is listed twice under the &lt;policies&gt; element, the container automatically detects the problem and treats it as a deployment problem, as defined in Section 12.4, "Problems detected automatically by the container".</text>
-    </assertion>
-
-    <assertion id="k">
-      <text>For a custom implementation of the |Bean| interface defined in Section 11.1, "The Bean interface", the container calls |isPolicy()| to determine whether the bean is a policy, and |getBeanClass()| and |getStereotypes()| to determine whether a policy is enabled in a certain bean deployment archive.</text>
-    </assertion>
-
-    <assertion id="l" testable="false">
-      <text>A bean is said to be enabled if it is not a policy, or if it is enabled in at least one bean deployment archive.</text>
-    </assertion>
-  </section>
-
-  <section id="5.3" title="Typesafe resolution">
-    <assertion id="hq">
-      <text>When resolving beans that are eligible for injection to an injection point, the container identifies the set of matching beans which are not _interceptors_ or decorators and which have a bean type that matches the required type.</text>
-    </assertion>
-    
-    <assertion id="hb">
-      <text>When resolving beans that are eligible for injection to an injection point, the container identifies the set of matching beans which are not interceptors or _decorators_ and which have a bean type that matches the required type.</text>
-    </assertion>
-    
-    <assertion id="hc">
-      <text>When resolving beans that are eligible for injection to an injection point, the container identifies the set of matching beans which are not interceptors or decorators and which have a _bean type that matches the required type_.</text>
-    </assertion>
-    
-    <group>
-      <text>When resolving beans that are eligible for injection to an injection point, the container identifies the set of matching beans which are not interceptors or decorators and which have a bean type that matches the required type. For this purpose, primitive types are considered to match their corresponding wrapper types in |java.lang| and array types are considered to match only if their element types are identical. Parameterized and raw types are considered to match if they are identical or if the bean type is assignable to the required type, as defined in Section 5.3.3, "Assignability of raw and parameterized types".</text>
-              
-      <assertion id="i">
-        <text>Test with a primitive type.</text>
-      </assertion>
-
-      <assertion id="j">
-        <text>Test with an array type.</text>
-      </assertion>
-
-      <assertion id="ka">
-        <text>Test with a parameterized type.</text>
-      </assertion>
-    
-      <assertion id="kb">
-        <text>Test with a raw type.</text>
-      </assertion>
-    </group>
-
-    <group>
-      <text>When resolving beans that are eligible for injection to an injection point, the container identifies the set of matching beans which are not interceptors or decorators and which have the required bindings. If no required bindings were explicitly specified, the container assumes the required binding |@Current|. The container narrows the set of matching beans to just those where for each required binding, the bean declares a matching binding with (a) the same type and (b) the same annotation member value for each member which is not annotated |@javax.enterprise.inject.NonBinding| (see Section 5.3.5, "Binding annotations with members").</text>
-            
-      <assertion id="la">
-        <text>Test with beans with required bindings.</text>
-      </assertion>
-      
-      <assertion id="lb">
-        <text>Test with beans without required bindings.</text>
-      </assertion>
-      
-      <assertion id="lc">
-        <text>Test with matching beans with matching binding with same type.</text>
-      </assertion>
-      
-      <assertion id="ld">
-        <text>Test with matching beans with matching binding with same annotation member value for each member which is not annotated |@javax.enterprise.inject.NonBinding|.</text>
-      </assertion>
-    </group>
-    
-    <assertion id="m">
-      <text>When resolving beans that are eligible for injection to an injection point, the container identifies the set of matching beans which are not interceptors or decorators.  In a Java EE or servlet container, the bean class is required to be accessible to the class that declares the injection point, according to the class loading requirements of the Java EE platform and Java Servlet specifications.</text>
-    </assertion>
-
-    <group>
-      <text>When resolving beans that are eligible for injection to an injection point, the container identifies the set of matching beans which are not interceptors or decorators and which are not a policy, or is an enabled policy of the bean deployment archive of the class that declares the injection point. For a custom implementation of the |Bean| interface defined in Section 11.1, "The Bean interface", the container calls |getTypes()| and |getBindings()| to determine the bean types and bindings.</text>
-            
-      <assertion id="na">
-        <text>Test |getTypes()| determines bean types.</text>
-      </assertion>
-      
-      <assertion id="nb">
-        <text>Test |getBindings()| determines bindings.</text>
-      </assertion>
-    </group>
-  </section>
-
-  <section id="5.3.1" title="Unsatisfied and ambiguous dependencies">
-    <assertion id="aa">
-      <text>The container must validate all injection points of all enabled beans when the application is initialized to ensure that there are no unsatisfied or ambiguous dependencies. If an unsatisfied or ambiguous dependency exists, the container automatically detects the problem and treats it as a deployment problem, as defined in Section 12.4, "Problems detected automatically by the container".</text>
-      <note>These need expanding out - one for each assertion that results in an exception in 5.7.1</note>
-    </assertion>
-
-    <assertion id="b">
-      <text>For a custom implementation of the Bean interface defined in Section 11.1, "The Bean interface", the container calls  |getInjectionPoints()| to determine the injection points of the bean.</text>
-    </assertion>
-  </section>
-  
-  <section id="5.3.2" title="Legal injection point types">
-    <assertion id="a">
-      <text>Any legal bean type, as defined in Section 2.2.1, "Legal bean types" may be the required type of an injection point.</text>
-    </assertion>
-    
-    <assertion id="b">
-  <text>The required type of an injection point may contain a wildcard type parameter.  However, a type variable is not a legal injection point type.</text>
-    </assertion>
-    
-    <assertion id="c">
-      <text>If an injection point type is a type variable, the container automatically detects the problem and treats it as a definition error, as defined in Section 12.4, "Problems detected automatically by the container".</text>
-    </assertion>    
-  </section>
-
-  <section id="5.3.3" title="Assignability of raw and parameterized types">
-    <assertion id="a">
-      <text>A parameterized bean type is considered assignable to a raw required type if the raw types are identical and all type parameters of the bean type are either unbounded type variables or |java.lang.Object|.</text>
-    </assertion>
-
-    <assertion id="b">
-      <text>A parameterized bean type is considered assignable to a parameterized required type if they have identical raw type and for each parameter the required type parameter and the bean type parameter are actual types with identical raw type, and, if the type is parameterized, the bean type parameter is assignable to the required type according to these rules.</text>
-    </assertion>
-
-    <assertion id="c">
-      <text>A parameterized bean type is considered assignable to a parameterized required type if they have identical raw type and for each parameter the required type parameter is a wildcard, the bean type parameter is an actual type and the actual type is assignable to the upper bound, if any, of the wildcard and assignable from the lower bound, if any, of the wildcard.</text>
-    </assertion>
-
-    <assertion id="d">
-    <text>A parameterized bean type is considered assignable to a parameterized required type if they have identical raw type and for each parameter the required type parameter is a wildcard, the bean type parameter is a type variable and the upper bound of the type variable is assignable to the upper bound, if any, of the wildcard and assignable from the lower bound, if any, of the wildcard.</text>
-    </assertion>
-
-    <assertion id="e">
-      <text>A parameterized bean type is considered assignable to a parameterized required type if they have identical raw type and for each parameter the required type parameter is an actual type, the bean type parameter is a type variable and the actual type is assignable to the upper bound, if any, of the type variable.</text>
-    </assertion>
-
-    <assertion id="f">
-      <text>A parameterized bean type is considered assignable to a parameterized required type if they have identical raw type and for each parameter the required type parameter and the bean type parameter are both type variables and the upper bound of the required type parameter is assignable to the upper bound, if any, of the bean type parameter.</text>
-    </assertion>
-  </section>
-
-  <section id="5.3.4" title="Primitive types and null values">
-    <group>
-      <text>If necessary, the container performs boxing or unboxing when it injects a value to a field or parameter of primitive or wrapper type.</text>
-            
-      <assertion id="aa">
-        <text>Test boxing.</text>
-      </assertion>
-      
-      <assertion id="ab">
-        <text>Test unboxing.</text>
-      </assertion>
-    </group>
-
-    <assertion id="aa">
-      <text>If an injection point of primitive type resolves to a bean that may have null values, such as a producer method with a nonprimitive return type or a producer field with a non-primitive type, the container automatically detects the problem and treats it as a deployment problem, as defined in Section 12.4 "Problems detected automatically by the container".</text>
-    </assertion>
-
-    <assertion id="ba">
-      <text>For a custom implementation of the Bean interface defined in Section 11.1, "The Bean interface", the container calls |isNullable()| to determine whether the bean may have null values.</text>
-    </assertion>
-  </section>
-
-  <section id="5.3.5" title="Binding annotations with members">
-    <assertion id="a" testable="false">
-      <text>Binding types with members are supported</text>
-      <note>A statement of intent</note>
-    </assertion>
-
-    <assertion id="b">
-      <text>An annotation member may be excluded from consideration using the |@NonBinding| annotation</text>
-    </assertion>
-
-    <assertion id="ca">
-  <text>Array-valued ~or annotation-valued~ members of a binding type must be annotated |@NonBinding|. If an array-valued ~or annotation-valued~ member of a binding type is not annotated |@NonBinding|, the container automatically detects the problem and treats it as a definition error, as defined in Section 12.4, "Problems detected automatically by the container".</text>
-    </assertion>
-
-    <assertion id="cb">
-      <text>~Array-valued or ~annotation-valued members of a binding type must be annotated |@NonBinding|. If an ~array-valued or ~annotation-valued member of a binding type is not annotated |@NonBinding|, the container automatically detects the problem and treats it as a definition error, as defined in Section 12.4, "Problems detected automatically by the container".</text>
-    </assertion>
-  </section>
-
-  <section id="5.3.6" title="Multiple bindings">
-    <assertion id="a">
-      <text>A bean class may declare multiple bindings</text>
-    </assertion>
-
-    <assertion id="b">
-      <text>A producer method may declare multiple bindings</text>
-    </assertion>
-
-    <assertion id="c">
-      <text>A producer field may declare multiple bindings</text>
-    </assertion>
-
-    <assertion id="d">
-      <text>A bean must declare all of the bindings that are specified at the injection point to be considered a candidate for injection</text>
-    </assertion>
-  </section>
-
-  <section id="5.4" title="EL Name resolution">
-
-    <assertion id="ba">
-  <text>When resolving a bean by name, the container identifies the set of matching beans which have the given EL name, and are accessible to classes in the war containing the JSP or JSF page with the EL expression, according to the class loading requirements of the Java EE platform and Java Servlet specifications, and which are not a policy or an enabled policy of the war containing the JSP or JSF page with the EL expression.</text>
-    </assertion>
-
-    <assertion id="e">
-      <text>For a custom implementation of the Bean interface defined in Section 11.1, "The Bean interface", the container calls |getName()| to determine the bean EL name.</text>
-    </assertion>
-  </section>
-
-  <section id="5.4.1" title="Ambiguous EL names">
-    <assertion id="c">
-      <text>An ambiguous EL name exists in an EL expression when there are multiple beans which match the given EL name.  When an ambiguous EL name exists, the container attempts to resolve the ambiguity - if any matching beans are policies, the container eliminates all matching beans that are not policies.  The container eliminates all matching beans that are specialized by some other matching bean. If there is exactly one bean remaining, the container will select this bean, and the ambiguous name is called resolvable.</text>
-    </assertion>
-
-    <assertion id="da">
-      <text>All unresolvable ambiguous EL names are detected by the container when the application is initialized. Suppose two beans are both accessible to classes in a certain war, according to the class loading requirements of the Java EE platform and Java Servlet specifications. If each bean is either not a policy, or is an enabled policy of the war, and either _the two beans have the same EL name and the name is not resolvable_, or the EL name of one bean is of the form x.y, where y is a valid bean EL name, and x is the EL name of the other bean, the container automatically detects the problem and treats it as a deployment problem, as defined in Section 12.4, "Problems detected automatically by the container".</text>
-    </assertion>
-    
-    <assertion id="db">
-      <text>All unresolvable ambiguous EL names are detected by the container when the application is initialized. Suppose two beans are both accessible to classes in a certain war, according to the class loading requirements of the Java EE platform and Java Servlet specifications. If each bean is either not a policy, or is an enabled policy of the war, and either the two beans have the same EL name and the name is not resolvable, _or the EL name of one bean is of the form x.y, where y is a valid bean EL name, and x is the EL name of the other bean_, the container automatically detects the problem and treats it as a deployment problem, as defined in Section 12.4, "Problems detected automatically by the container".</text>
-    </assertion>
-  </section>
-
-  <section id="5.5" title="Client proxies">
-    <assertion id="a" testable="false">
-      <text>Client proxies are never required for a bean whose scope is a pseudo-scope such as |@Dependent|</text>
-    </assertion>
-
-    <assertion id="b">
-      <text>A contextual reference to a bean with a normal scope, as defined in Section 6.3, “Normal scopes and pseudo-scopes”, is not a direct reference to a contextual instaContextual.create()textual reference is a client proxy object.</text>
-    </assertion>
-    
-    <assertion id="c" implied="true">
-      <text>Client proxies are serializable</text>
-      <note>For "client proxies are may be passivated, even when the bean itself may not be. Therefore the container must use a client proxy whenever a bean with normal scope is injected into a bean with a passivating scope" to hold true the client proxy must be serializable</note>
-    </assertion>
-
-    <assertion id="d">
-      <text>The container must guarantee that when any valid injected reference to a bean of normal scope is invoked, the invocation is always processed by the current instance of the injected bean.</text>
-    </assertion>
-  </section>
-
-  <section id="5.5.1" title="Unproxyable bean types">
-    <assertion id="aa">
-      <text>Classes which don't have a non-private constructor with no parameters cannot be proxied by the container. If an injection point whose declared type cannot be proxied by the container resolves to a bean with a normal scope, the container automatically detects the problem and treats it as a deployment problem, as defined in Section 12.4, "Problems detected automatically by the container".</text>
-    </assertion>
-
-    <assertion id="baa">
-      <text>Classes which are declared final ~or have final methods~ cannot be proxied by the container. If an injection point whose declared type cannot be proxied by the container resolves to a bean with a normal scope, the container automatically detects the problem and treats it as a deployment problem, as defined in Section 12.4, "Problems detected automatically by the container".</text>
-    </assertion>
-
-    <assertion id="bba">
-      <text>Classes which ~are declared final or ~have final methods cannot be proxied by the container. If an injection point whose declared type cannot be proxied by the container resolves to a bean with a normal scope, the container automatically detects the problem and treats it as a deployment problem, as defined in Section 12.4, "Problems detected automatically by the container".</text>
-    </assertion>
-
-    <assertion id="ca">
-      <text>Primitive types cannot be proxied by the container. If an injection point whose declared type cannot be proxied by the container resolves to a bean with a normal scope, the container automatically detects the problem and treats it as a deployment problem, as defined in Section 12.4, "Problems detected automatically by the container".</text>
-    </assertion>
-
-    <assertion id="da">
-      <text>Array types cannot be proxied by the container. If an injection point whose declared type cannot be proxied by the container resolves to a bean with a normal scope, the container automatically detects the problem and treats it as a deployment problem, as defined in Section 12.4, "Problems detected automatically by the container".</text>
-    </assertion>
-  </section>
-
-  <section id="5.5.2" title="Client proxy invocation">
-    <assertion id="aa">
-  <text>Every time a method of the bean is invoked upon a client proxy, the client proxy must obtain a contextual instance of the bean, as defined in Section 6.5.2, "Contextual instance of a bean", and invoke the method upon this instance.</text>
-    </assertion>
-
-    <assertion id="ab">
-      <text>If the scope is not active, as specified in Section 6.5.1, "The active context object for a scope", the client proxy rethrows |ContextNotActiveException| or |IllegalStateException|.</text>
-    </assertion>
-
-    <assertion id="b" testable="false">
-      <text>The behavior of all methods declared by |java.lang.Object|, except for |toString()|, is undefined for a client proxy</text>
-    </assertion>
-
-  </section>
-
-  <section id="5.6" title="Dependency injection">
-    <assertion id="a">
-      <text>The container is required to perform dependency injection whenever it creates a contextual instance of a session bean.</text>
-    </assertion>
-
-    <assertion id="b">
-      <text>The container is required to perform dependency injection whenever it creates a contextual instance of a managed bean.</text>
-    </assertion>
-
-    <assertion id="c">
-      <text>The container is required to perform dependency injection whenever it instantiates non-contextual instances of session beans (for example, session beans obtained by the application from JNDI or injected using |@EJB|).</text>
-    </assertion>
-
-    <assertion id="d">
-      <text>The container is required to perform dependency injection whenever it instantiates non-contextual instances of managed beans.</text>
-    </assertion>
-
-    <assertion id="e">
-      <text>The container is required to perform dependency injection whenever it instantiates instances of any other Java EE component class supporting injection.</text>
-    </assertion>
-
-    <assertion id="f" testable="false">
-      <text>In a Java EE 5 environment, the container is not required to support injection for non-contextual objects.</text>
-    </assertion>
-
-    <assertion id="g">
-      <text>The container interacts with instances of beans and other Java EE component classes supporting injection by calling methods and getting and setting the field values.</text>
-    </assertion>
-  </section>
-
-  <section id="5.6.1" title="Injectable references">
-    <assertion id="aa">
-  <text>To obtain an injectable reference for an injection point, the container must identify a bean according to the rules defined in Section 5.3, "Typesafe resolution" and resolving ambiguities according to Section 5.3.1, "Unsatisfied and ambiguous dependencies", then obtain a contextual reference for this bean and the type of the injection point according to Section 6.5.3, "Contextual reference for a bean".</text>
-    </assertion>
-
-    <assertion id="g">
-      <text>For certain combinations of scopes, the container is permitted to optimize the above procedure by directly injecting a contextual instance of the bean, as defined in Section 6.5.2, "Contextual instance of a bean". If an incompletely initialized instance of the bean is registered with the current |CreationalContext|, as defined in Section
-6.1, "The Contextual interface", the container is permitted to directly inject this instance.  However, in performing these optimizations, the container must respect the rules of injected reference validity.</text>
-    </assertion>
-  </section>
-
-  <section id="5.6.2" title="Injected reference validity">
-    <assertion id="d">
-      <text>A reference to a bean injected into a field, bean constructor or initializer method is valid until the object into which it was injected is destroyed.</text>
-    </assertion>
-
-    <assertion id="e">
-      <text>A reference to a bean injected into a producer method is valid until the producer method bean instance that is being produced is destroyed.</text>
-    </assertion>
-
-    <assertion id="f">
-      <text>A reference to a bean injected into a disposer method or observer method is valid until the invocation of the method completes.</text>
-    </assertion>
-
-    <assertion id="g" testable="false">
-      <text>The application should not invoke a method of an invalid reference. If the application invokes a method of an invalid injected reference, the behavior is undefined.</text>
-    </assertion>
-  </section>
-
-  <section id="5.6.3" title="Injection using the bean constructor">
-    <assertion id="a">
-      <text>When the container instantiates a managed bean with a constructor annotated |@Initializer|, the container calls this constructor, passing an injectable reference to each parameter. If there is no constructor annotated |@Initializer|, the container calls the constructor with no parameters.</text>
-    </assertion>
-  </section>
-
-  <section id="5.6.4" title="Injection of fields and initializer methods">
-    <assertion id="a">
-  <text>When the container creates a new instance of a managed bean, session bean, or of any other Java EE component class supporting injection, the container must initialize the values of all injected fields after injection of Java EE component environment resources has been performed and before the |@PostConstruct| callback occurs and before the servlet |init()| method is called.  The container sets the value of each injected field to an injectable reference.</text>
-    </assertion>
-
-    <assertion id="b">
-      <text>After the container initializes the values of the injected fields, it must call all initializer methods, passing an injectable reference to each parameter.</text>
-    </assertion>
-  </section>
-
-  <section id="5.6.5" title="Destruction of dependent objects">
-    <assertion id="a">
-      <text>When the container destroys an instance of a bean or of any Java EE component class supporting injection, the container destroys all dependent objects, as defined in Section 6.4.2, "Dependent object destruction", after the |@PreDestroy| callback completes and after the servlet |destroy()| method is called.</text>
-    </assertion>
-  </section>
-
-  <section id="5.6.6" title="Invocation of producer or disposal methods">
-    <assertion id="a">
-      <text>When the container calls a producer method, if the method is static, the container must invoke the method.</text>
-    </assertion>
-
-    <assertion id="b">
-      <text>When the container calls a disposal method, if the method is static, the container must invoke the method.</text>
-    </assertion>
-
-    <assertion id="c">
-      <text>When the container calls a producer method, if the method is non-static the container must determine the most specialized enabled bean that specializes the bean which declares the method, as defined in Section 4.3.2 "Most specializaed enabled bean for a bean", then obtain a contextual instance of the most specialized bean, as defined by Section 6.5.2 "Contextual instance of a bean", then invoke the method upon this instance.</text>
-    </assertion>
-
-    <assertion id="d">
-      <text>When the container calls a disposal method, if the method is non-static the container must determine the most specialized enabled bean that specializes the bean which declares the method, as defined in Section 4.3.2 "Most specializaed enabled bean for a bean", then obtain a contextual instance of the most specialized bean, as defined by Section 6.5.2 "Contextual instance of a bean", then invoke the method upon this instance.</text>
-    </assertion>
-
-    <assertion id="e">
-      <text>The container passes an injectable reference to each injected method parameter.  The container is also responsible for destroying dependent objects created during this invocation, as defined in Section 6.4.3 "Dependent object destruction".</text>
-    </assertion>
-  </section>
-
-  <section id="5.6.7" title="Access to producer field values">
-    <assertion id="a">
-      <text>When the container accesses the value of a producer field, if the producer field is static, the container must access the field value.</text>
-    </assertion>
-
-    <assertion id="b">
-      <text>When the container accesses the value of a producer field, if the producer field is non-static, the container must determine the most specialized enabled bean that specializes the bean which declares the producer field, as defined in Section 4.3.2 "Most specialized enabled bean for a bean", then obtain a contextual instance of the most specialized bean, as defined by Section 6.5.2 "Contextual instance of a bean", then access the field value of this instance.</text>
-    </assertion>
-  </section>
-
-  <section id="5.6.8" title="Invocation of observer methods">
-    <assertion id="a">
-      <text>When the container calls an observer method (defined in Section 10.4 "Observer methods"), if the observer method is static, the container must invoke the method.</text>
-    </assertion>
-
-    <assertion id="ba">
-      <text>When the container calls an observer method (defined in Section 10.5 "Observer methods"), if the observer method is non-static, the container must determine the most specialized enabled bean that specializes the bean which declares the observer method, as defined in Section 4.3.2 "Most specialized enabled bean for a bean", then obtain a contextual instance of the bean according to Section 6.5.2 "Contextual instance of a bean".  If this observer method is a conditional observer method, obtain the contextual instance that already exists, without creating a new contextual instance.  Finally, the container must invoke the observer method on the resulting instance, if any, as a business method invocation, as defined in Section 7.2 "Container invocations and interception".</text>
-    </assertion>
-
-    <assertion id="c">
-      <text>The container must pass the event object to the event parameter and an injectable instance to each injected method parameter.</text>
-    </assertion>
-
-    <assertion id="d">
-      <text>The container is also responsible for destroying dependent objects created during this invocation, as defined in Section 6.4.2, "Dependent object destruction".</text>
-    </assertion>
-  </section>
-
-  <section id="5.6.9" title="Injection point metadata">
-    <assertion id="aa">
-  <text>The |javax.enterprise.inject.spi.InjectionPoint.getBean()| method returns the Bean object representing the bean that defines the injection point.  If the injection point does not belong to a bean, |getBean()| returns a null value.</text>
-    </assertion>
-
-    <assertion id="ba">
-      <text>The |javax.enterprise.inject.spi.InjectionPoint.getType()| method returns the declared type of the injection point.</text>
-    </assertion>
-
-    <assertion id="bc">
-      <text>The |javax.enterprise.inject.spi.InjectionPoint.getBindings()| method returns the declared bindings of the injection point.</text>
-    </assertion>
-
-    <assertion id="ca">
-  <text>The |javax.enterprise.inject.spi.InjectionPoint.getMember()| method returns the |Field| object in the case of field injection.</text>
-    </assertion>
-
-    <assertion id="cb">
-      <text>The |javax.enterprise.inject.spi.InjectionPoint.getMember()| method returns the |Method| object in the case of method parameter injection.</text>
-    </assertion>
-
-    <assertion id="cc">
-      <text>The |javax.enterprise.inject.spi.InjectionPoint.getMember()| method returns the |Constructor| object in the case of constructor parameter injection</text>
-    </assertion>
-
-    <assertion id="daa">
-      <text>The |getAnnotated()| method returns an instance of |javax.enterprise.inject.spi.AnnotatedField| or |javax.enterprise.inject.spi.AnnotatedParameter|, depending upon whether the injection point is an injected field or a constructor/method parameter.</text>
-    </assertion>
-
-    <assertion id="dba">
-      <text>The |isDelegate()| method returns true if the injection point is a decorator delegate injection point, and false otherwise.</text>
-    </assertion>
-
-    <assertion id="dca">
-      <text>The |isTransient()| method returns true if the injection point is a transient field, and false otherwise.</text>
-    </assertion>
-
-    <assertion id="ea">
-      <text>The container must provide a bean with scope |@Dependent|, bean type |InjectionPoint| and binding |@Current|, allowing dependent objects, as defined in Section 6.4.2, "Dependent objects", to obtain information about the injection point to which they belong.</text>
-    </assertion>
-
-	<assertion id="eb">
-	   <text>The built-in implementation must be a passivation capable dependency, as defined in Section 6.6.2, "Passivation capable dependencies".</text>
-	</assertion>
-
-    <assertion id="f">
-      <text>If a bean that declares any scope other than |@Dependent| has an injection point of type |InjectionPoint| and binding |@Current|, the container automatically detects the problem and treats it as a definition error, as defined in Section 12.4, "Problems detected automatically by the container".</text>
-    </assertion>
-
-    <assertion id="g">
-      <text>If an object that is not a bean has an injection point of type |InjectionPoint| and binding |@Current|, the container automatically detects the problem and treats it as a definition error, as defined in Section 12.4, "Problems detected automatically by the container".</text>
-    </assertion>
-  </section>
-
-  <section id="5.7" title="Programmatic lookup">
-    <assertion id="aa">
-      <text>An instance of the |javax.enterprise.inject.Instance| interface may be injected.</text>
-    </assertion>
-
-    <assertion id="ba">
-      <text>The method |javax.enterprise.inject.Instance.get()| returns a contextual reference.</text>
-    </assertion>
-
-    <assertion id="ca">
-      <text>Any combination of bindings may be specified at the injection point.</text>
-    </assertion>
-
-    <assertion id="da">
-      <text>The |@Any| binding may be used to allow the application to specify bindings dynamically.</text>
-    </assertion>
-  </section>
-
-  <section id="5.7.1" title="The Instance interface">
-    <assertion id="aa">
-      <text>The |Instance| interface provides a method for obtaining instances of beans with a specified combination of required type and bindings, and inherites the ability to iterate beans with that combination of required type and bindings from |java.lang.Iterable|.</text>
-    </assertion>
-
-    <assertion id="ab">
-      <text>For an injected |Instance|, the required type is the type parameter specified at the injection point, and the required bindings are the bindings specified at the injection point.</text>
-    </assertion>
-
-    <assertion id="ba">
-    <text>The |select()| method returns a child |Instance| for a given required type and additional required bindings.  If no required type is given, the required type is the same as the parent.</text>
-    </assertion>
-
-    <assertion id="da">
-      <text>If two instances of the same binding type are passed to |select()|, an |IllegalArgumentException| is thrown.</text>
-    </assertion>
-
-    <assertion id="e">
-      <text>If an instance of an annotation that is not a binding type is passed to |select()|, an |IllegalArgumentException| is thrown.</text>
-    </assertion>
-
-    <assertion id="fa">
-      <text>The |get()| method must identify a bean that matches the required type and required bindings and is accessible to the class into which the parent |Instance| was injected, according to the rules of typesafe resolution, as defined in Section 5.3, "Typesafe resolution" and resolving ambiguities according to Section 5.3.1, "Unsatisfied and ambiguous dependencies".</text>
-    </assertion>
-
-    <assertion id="fba">
-      <text>If typesafe resolution results in an unsatisfied dependency, throw an |UnsatisfiedResolutionException|.</text>
-    </assertion>
-    
-    <assertion id="fbb">
-      <text>If typesafe resolution results in an unresolvable ambiguous dependency, throw an |AmbiguousResolutionException|.</text>
-    </assertion>
-
-    <assertion id="fc">
-      <text>Otherwise, obtain a contextual reference for the bean and the required type, as defined in Section 6.5.3, "Contextual reference for a bean".</text>
-    </assertion>
-
-    <assertion id="ja">
-      <text>The |iterator()| method must identify the set of beans that match the required type and required bindings and are accessible to the class into which the parent |Instance| was injected, according to the rules of typesafe resolution, as defined in Section 5.3, "Typesafe resolution".</text>
-    </assertion>
-
-    <assertion id="ka">
-      <text>The |iterator()| method must return an |Iterator|, that iterates over the set of contextual references for the resulting beans and required type, as defined in Section 6.5.3, "Contextual reference for a bean".</text>
-    </assertion>
-
-    <assertion id="l">
-      <text>The method |isUnsatisfied()| returns true if there is no bean that matches the required type and bindings, or false otherwise.</text>
-    </assertion>
-
-    <assertion id="m">
-      <text>The method |isAmbiguous()| returns true if there is more than one bean that matches the required type and bindings, or false otherwise.</text>
-    </assertion>
-  </section>
-
-  <section id="5.7.2" title="The built-in Instance">
-    <assertion id="a">
-      <text>The container must provide a built-in bean with |Instance&lt;X&gt;| for every legal bean type X in its set of bean types</text>
-    </assertion>
-
-    <assertion id="b">
-      <text>The container must provide a built-in bean with every binding type in its set of binding types.</text>
-    </assertion>
-
-    <assertion id="d">
-      <text>The container must provide a built-in bean with scope @Dependent.</text>
-    </assertion>
-
-    <assertion id="e">
-      <text>The container must provide a built-in bean with no bean EL name.</text>
-    </assertion>
-
-    <assertion id="f">
-      <text>The container must provide a built-in bean with an implementation provided automatically by the container. </text>
-    </assertion>
-
-    <assertion id="g">
-    <text>The built-in implementation must be a passivation capable dependency, as defined in Section 6.6.2, "Passivation capable dependencies".</text>
-    </assertion>
-  </section>
-
-  <section id="5.7.3" title="Using AnnotationLiteral and TypeLiteral">
-
-  </section>
-
-  <section id="5.8" title="Integration with Unified EL">
-    <assertion id="aaa">
-  <text>The container must provide a Unified EL ELResolver to the servlet engine ~and JSF implementation~ that resolves bean EL names using the rules of name resolution algorithm defined in Section 5.4 "EL name resolution" and resolving ambiguities according to Section 5.4.1, "Ambiguous EL names".</text>
-      <note>This is testable implicitly by trying to resolve using EL from a servlet</note>
-    </assertion>
-
-    <assertion id="aba">
-      <text>The container must provide a Unified EL |ELResolver| to the ~servlet engine~ and JSF implementation that resolves bean EL names using the rules of name resolution algorithm defined in Section 5.4 "EL name resolution" and resolving ambiguities according to Section 5.4.1, "Ambiguous EL names".</text>
-      <note>This is testable implicitly by trying to resolve using EL from a JSF view</note>
-    </assertion>
-
-    <assertion id="bb">
-      <text>If a name used in an EL expression does not resolve to any bean, the |ELResolver| must return a null value.</text>
-    </assertion>
-
-    <assertion id="bc">
-      <text>Otherwise, if a name used in an EL expression resolves to exactly one bean, the |ELResolver| must return a contextual instance of the bean, as defined in Section 6.5.2, "Contextual instance of a bean".</text>
-    </assertion>
-
-    <assertion id="c">
-      <text>For each distinct name that appears in the EL expression, the resolver must be called at most once. Even if a name appears more than once in the same expression, the container may not call the resolver multiple times with that name. This restriction ensures that there is a unique instance of each bean with scope |@Dependent| in any EL evaluation.</text>
-    </assertion>
-  </section>
-
-  <section id="6" title="Scopes and contexts">
-
-  </section>
-
-  <section id="6.1" title="The Contextual interface">
-    <assertion id="a0">
-      <text>If an exception occurs while creating an instance, the exception is rethrown by the |create()| method. If the exception is a checked exception, it must be wrapped and rethrown as an (unchecked) |CreationException|.</text>
-    </assertion>
-
-    <assertion id="a1">
-      <text>If an exception occurs while destroying an instance, the exception must be caught by the |destroy()| method.</text>
-    </assertion>
-
-    <assertion id="a2" testable="false">
-      <text>If the application invokes a contextual instance after it has been destroyed, the behavior is undefined.</text>
-      <note>A statement about container specific behavior which is not spec defined</note>
-    </assertion>
-
-    <assertion id="a" testable="false">
-      <text>The container and portable extensions may define implementations of the |Contextual| interface that do not extend |Bean|, but it is not recommended that applications directly implement |Contextual|.</text>
-      <note>Advice only</note>
-    </assertion>
-  </section>
-
-  <section id="6.1.1" title="The CreationalContext interface">
-    <assertion id="ca" testable="false">
-      <text>The interface |javax.enterprise.context.spi.CreationalContext| provides operations that are used by the |Contextual| implementation during instance creation and destruction.</text>
-      <note>introductory text</note>
-    </assertion>
-
-    <assertion id="d">
-  <text>|push()| registers an incompletely initialized contextual instance with the container.  A contextual instance is considered incompletely initialized until it is returned by the |create()| method.</text>
-    </assertion>
-
-    <assertion id="e">
-      <text>|release()| destroys all dependent objects, as defined in Section 6.4.1, "Dependent objects", of the instance which is being destroyed, by passing each dependent object to the |destroy()| method of its |Contextual| object.</text>
-    </assertion>
-
-    <assertion id="f" testable="false">
-      <text>The implementation of |Contextual| is not required to call |push()|. However, for certain bean scopes, invocation of |push()| between instantiation and injection helps the container minimize the use of client proxy objects (which would otherwise be required to allow circular dependencies).</text>
-    </assertion>
-
-    <assertion id="g">
-      <text>If |Contextual.create()| calls |push()|, it must also return the instance passed to |push()|.</text>
-    </assertion>
-
-    <assertion id="h" testable="false">
-      <text>|Contextual.create()| should use the given |CreationalContext| when obtaining contextual references to inject, as defined in Section 6.5.3, "Contextual reference for a bean", in order to ensure that any dependent objects are associated with the contextual instance that is being created.</text>
-      <note>Advice</note>
-    </assertion>
-
-    <assertion id="i" testable="false">
-      <text>|Contextual.destroy()| should call |release()| to allow the container to destroy dependent objects of the contextual instance.</text>
-      <note>Advice</note>
-    </assertion>
-  </section>
-
-  <section id="6.2" title="The Context interface">
-    <assertion id="aa" testable="false">
-      <text>The |javax.enterprise.context.spi.Context| interface provides an operation for obtaining contextual instances with a particular scope of any contextual type.</text>
-      <note>Introductory text</note>
-    </assertion>
-
-    <assertion id="ab">
-      <text>The method |getScopeType()| returns the scope type of the context object.</text>
-    </assertion>
-
-    <assertion id="ha">
-      <text>When a context object is active the |isActive()| method returns |true|. Otherwise, we say that the context object is inactive and the |isActive()| method returns false.</text>
-    </assertion>
-
-    <assertion id="j">
-      <text>The |Context.get()| method may either return an existing instance of the given contextual type, ~or if no |CreationalContext| is given, return a null value, or if a |CreationalContext| is given, create a new instance of the given contextual type by calling |Contextual.create()| and return the new instance~.</text>
-    </assertion>
-
-    <assertion id="k">
-      <text>The |Context.get()| method may either ~return an existing instance of the given contextual type~, or if no |CreationalContext| is given, return a null value, ~or if a |CreationalContext| is given, create a new instance of the given contextual type by calling |Contextual.create()| and return the new instance~.</text>
-    </assertion>
-
-    <assertion id="l">
-      <text>The |Context.get()| method may either ~return an existing instance of the given contextual type, or if no |CreationalContext| is given, return a null value~, or if a |CreationalContext| is given, create a new instance of the given contextual type by calling |Contextual.create()| and return the new instance.</text>
-    </assertion>
-
-    <assertion id="m">
-      <text>If the context object is inactive, the |get()| method must throw a |ContextNotActiveException|.</text>
-    </assertion>
-
-    <assertion id="na">
-      <text>The |get()| method may not return a null value _unless no |CreationalContext| is given_, or |Contextual.create()| returns a null value.</text>
-    </assertion>
-
-    <assertion id="nb">
-      <text>The |get()| method may not return a null value unless no |CreationalContext| is given, or _|Contextual.create()| returns a null value_.</text>
-    </assertion>
-
-    <assertion id="o">
-      <text>The |get()| method may not create a new instance of the given contextual type unless a |CreationalContext| is given.</text>
-    </assertion>
-
-    <assertion id="p">
-      <text>The context object is responsible for destroying any contextual instance it creates by passing the instance to the |destroy()| method of the Contextual object representing the contextual type.</text>
-    </assertion>
-
-    <assertion id="q">
-      <text>A destroyed instance must not subsequently be returned by the |get()| method.</text>
-    </assertion>
-
-    <assertion id="r">
-      <text>The context object must pass the same instance of |CreationalContext| to |Contextual.destroy()| that it passed to |Contextual.create()| when it created the instance.</text>
-    </assertion>
-  </section>
-
-  <section id="6.3" title="Normal scopes and pseudo-scopes">
-    <assertion id="a" testable="false">
-      <text>There may be no more than one mapped instance of a context object per contextual type per thread</text>
-      <note>Not testable through API</note>
-    </assertion>
-
-    <assertion id="b" testable="false">
-      <text>A context may be associated with one or more threads</text>
-      <note>A statement of intent</note>
-    </assertion>
-
-    <assertion id="c">
-      <text>The |get()| operation of the |Context| object for an active normal scope returns the current instance of the given contextual type.</text>
-    </assertion>
-
-    <assertion id="d">
-    <text>When a context is destroyed, all mapped instances belonging to that context are destroyed by passing them to the |Contextual.destroy()| method.</text>
-    </assertion>
-
-    <assertion id="e">
-      <text>Contexts with normal scopes must obey the following rule: Suppose beans A, B and Z all have normal scopes. Suppose A has an injection point x, and B has an injection point y. Suppose further that both x and y resolve to bean Z according to the typesafe resolution algorithm. If a is the current instance of A, and b is the current instance of B, then both a.x and b.y refer to the same instance of Z. This instance is the current instance of Z.</text>
-    </assertion>
-
-    <assertion id="f" testable="false">
-      <text>All pseudo-scopes must be explicitly declared |@ScopeType(normal=false)|, to indicate to the container that no client proxy is required</text>
-      <note>A statement of intent</note>
-    </assertion>
-
-    <assertion id="g" testable="false">
-      <text>All scopes defined by this specification, except for the |@Dependent| pseudo-scope, are normal scopes</text>
-      <note>A statement of intent</note>
-    </assertion>
-  </section>
-
-  <section id="6.4" title="Dependent pseudo-scope">
-    <assertion id="a">
-      <text>When a bean is declared to have |@Dependent| scope, no injected instance of the bean is ever shared between multiple injection points</text>
-    </assertion>
-
-    <assertion id="b">
-      <text>When a bean is declared to have |@Dependent| scope, any injected instance of the bean is bound to the lifecycle of the bean, servlet or EJB into which it is injected</text>
-    </assertion>
-
-    <assertion id="c">
-      <text>When a bean is declared to have |@Dependent| scope, any instance of the bean that is used to evaluate a Unified EL expression exists to service that evaluation only</text>
-    </assertion>
-
-    <assertion id="da">
-      <text>When a bean is declared to have |@Dependent| scope, any instance of the bean that receives a producer method~, producer field, disposer method or observer method~ invocation exists to service that invocation only</text>
-    </assertion>
-
-    <assertion id="db">
-      <text>When a bean is declared to have |@Dependent| scope, any instance of the bean that receives a ~producer method,~ producer field~, disposer method or observer method~ invocation exists to service that invocation only</text>
-    </assertion>
-
-    <assertion id="dc">
-      <text>When a bean is declared to have |@Dependent| scope, any instance of the bean that receives a ~producer method, producer field,~ disposer method ~or observer method~ invocation exists to service that invocation only</text>
-    </assertion>
-
-    <assertion id="dd">
-      <text>When a bean is declared to have |@Dependent| scope, any instance of the bean that receives a ~producer method, producer field, disposer method or~ observer method invocation exists to service that invocation only</text>
-    </assertion>
-
-    <assertion id="e">
-      <text>Every invocation of the |get()| operation of the |Context| object for the |@Dependent| scope with a |CreationalContext| returns a new instance of the given bean</text>
-    </assertion>
-
-    <assertion id="f">
-      <text>Every invocation of the |get()| operation of the |Context| object for the |@Dependent| scope with no |CreationalContext| returns a null value</text>
-    </assertion>
-
-    <assertion id="g">
-      <text>The |@Dependent| scope is always active.</text>
-    </assertion>
-  </section>
-
-  <section id="6.4.1" title="Dependent objects">
-    <group>
-      <text>Instances of interceptors or decorators with scope |@Dependent| are dependent objects of the bean instance they decorate.</text>
-      <assertion id="aa">
-        <text>Test with a |@Dependent|-scoped interceptor.</text>
-      </assertion>
-      
-      <assertion id="ab">
-        <text>Test with a |@Dependent|-scoped decorator.</text>
-      </assertion>
-    </group>
-
-    <group>
-      <text>An instance of a bean with scope |@Dependent| injected into a field, bean constructor or initializer method is a dependent object of the bean or Java EE component class instance into which it was injected.</text>
-            
-      <assertion id="ga">
-        <text>Test with |@Dependent|-scoped bean injected into field.</text>
-      </assertion>
-      
-      <assertion id="gb">
-        <text>Test with |@Dependent|-scoped bean injected into bean constructor.</text>
-      </assertion>
-      
-      <assertion id="gc">
-        <text>Test with |@Dependent|-scoped bean injected into initializer method.</text>
-      </assertion>      
-    </group>
-    
-    <assertion id="h">
-      <text>An instance of a bean with scope |@Dependent| injected into a producer method is a dependent object of the producer method bean instance that is being produced.</text>
-    </assertion>
-    
-    <assertion id="i">
-      <text>An instance of a bean with scope |@Dependent| obtained by direct invocation of an |Instance| is a dependent object of the instance of |Instance|.</text>
-    </assertion>
-  </section>
-
-  <section id="6.4.2" title="Dependent object destruction">
-  
-    <group>
-      <text>The container must ensure that all dependent objects of a non-contextual instance of a bean or other Java EE component class are destroyed when the instance is destroyed by the container.</text>
-            
-      <assertion id="aaaa">
-        <text>Test with a managed bean.</text>
-      </assertion>
-    
-      <assertion id="aaab">
-        <text>Test with a Java EE component.</text>
-      </assertion>
-    </group>
-    
-    <assertion id="bbb">
-      <text>The container must ensure that all |@Dependent| scoped contextual instances injected into method parameters of an observer method of any container lifecycle event, as defined in Section 11.5, "Container lifecycle events", are destroyed after all observers of the |BeforeShutdown| event complete.</text>
-    </assertion>
-    
-    <group>
-      <text>The container must ensure that all |@Dependent| scoped contextual instances injected into method parameters of a disposer method or observer method of any other event are destroyed when the invocation completes.</text>
-      <assertion id="ccc">
-         <text>Check disposer method</text>
-      </assertion>
-      
-      <assertion id="ccd">
-         <text>Check observer method</text>
-      </assertion>
-    </group>
-    
-    <group>
-      <text>The container must ensure that any |@Dependent| scoped contextual instance created to receive a producer method, producer field, disposer method or observer method invocation is destroyed when the invocation completes.</text>
-      
-      <assertion id="ddd">
-         <text>Check producer method</text>
-      </assertion>
-      
-      <assertion id="dde">
-         <text>Check producer field</text>
-      </assertion>
-      
-      <assertion id="ddf">
-         <text>Check disposer method</text>
-      </assertion>
-      
-      <assertion id="ddg">
-         <text>Check observer method</text>
-      </assertion>
-    </group>
-    
-    
-    <assertion id="eee">
-      <text>The container must ensure that all |@Dependent| scoped contextual instances created during an EL expression evaluation are destroyed when the evaluation completes.</text>
-    </assertion>
-
-    <assertion id="e" testable="false">
-      <text>The container is permitted to destroy any |@Dependent| scoped contextual instance at any time if the instance is no longer referenced by the application (excluding weak, soft and phantom references)</text>
-      <note>In other words this is unspecified</note>
-    </assertion>
-  </section>
-
-  <section id="6.5" title="Contextual instances and contextual references">
-
-  </section>
-
-  <section id="6.5.1" title="The active context object for a scope">
-    <assertion id="a">
-      <text>From time to time, the container must obtain an active context object for a certain scope type. The container must search for an active instance of |Context| associated with the scope type. If no active context object exists for the scope type, the container throws a |ContextNotActiveException|.</text>
-    </assertion>
-
-    <assertion id="b">
-      <text>If more than one active context object exists for the given scope type, the container must throw an |IllegalStateException|.</text>
-    </assertion>
-  </section>
-
-  <section id="6.5.2" title="Contextual instance of a bean">
-    <assertion id="a">
-      <text>From time to time, the container must obtain a contextual instance of a bean.  The container must obtain the active context object for the bean scope, then obtain an instance of the bean by calling |Context.get()|, passing the |Bean| instance representing the bean and an instance of |CreationalContext|.</text>
-    </assertion>
-
-    <assertion id="b">
-      <text>From time to time, the container attempts to obtain a contextual instance of a bean that already exists, without creating a new contextual instance. The container must determine if the scope of the bean is active and if it is, obtain the active context object for the bean scope, then attempt to obtain an instance of the bean by calling |Context.get()|, passing the |Bean| instance representing the bean without passing any instance of |CreationalContext|.</text>
-    </assertion>
-    
-    <assertion id="c" testable="false">
-      <text>If the scope is not active, or if |Context.get()| returns a null value, there is no contextual instance that already exists.</text>
-      <note>Statement of intent</note>
-    </assertion>
-    
-    <assertion id="e">
-      <text>For a custom implementation of the |Bean| interface defined in Section 11.1, "The Bean interface", the container calls |getScopeType()| to determine the bean scope.</text>
-    </assertion>
-  </section>
-
-  <section id="6.5.3" title="Contextual reference for a bean">
-    <assertion id="a0">
-      <text>Contextual references must be obtained with a given |CreationalContext|, allowing any instance of scope |@Dependent| that is created to be later destroyed.</text>
-    </assertion>
-    
-    <assertion id="a">
-      <text>If the bean has a normal scope and the given bean type cannot be proxied by the container, as defined in Section 5.5.1, "Unproxyable bean types", the container throws an |UnproxyableResolutionException|.</text>
-    </assertion>
-
-    <assertion id="b">
-      <text>If the bean has a normal scope, then the contextual reference for the bean is a client proxy, as defined in Section 5.5, "Client proxies", created by the container, that implements the given bean type and all bean types of the bean which are Java interfaces.</text>
-    </assertion>
-
-    <assertion id="c">
-  <text>If the bean has a pseudo-scope, the container must obtain a contextual instance of the bean. If the bean has scope |@Dependent|, the container must associate it with the |CreationalContext|.</text>
-    </assertion>
-
-    <assertion id="d">
-      <text>The container must ensure that every injection point of type |InjectionPoint| and binding |@Current| of any dependent object instantiated during this process receives an instance of |InjectionPoint| representing the injection point into which the dependent object will be injected, or a null value if it is not being injected into any injection point.</text>
-    </assertion>
-  </section>
-
-  <section id="6.5.4" title="Contextual reference validity">
-    <assertion id="a">
-      <text>Any reference to a bean with a normal scope is valid as long as the application maintains a hard reference to it. However, it may only be invoked when the context associated with the normal scope is active. If it is invoked when the context is inactive, a |ContextNotActiveException| is thrown by the container.</text>
-    </assertion>
-
-    <assertion id="b" testable="false">
-      <text>
-         Any reference to a bean with a pseudo-scope (such as |@Dependent|) is valid until the bean instance to which it refers is destroyed. It may be invoked even if the context associated with the pseudo-scope is not active. If the application invokes a method of a reference to an instance that has already been destroyed, the behavior is undefined.
-      </text>
-      <note>Describes unspecified behavior</note>
-    </assertion>
-  </section>
-
-  <section id="6.6" title="Passivation and passivating scopes">
-    <assertion id="a" implied="true">
-      <text>Test passivation occurs</text>
-    </assertion>
-  </section>
-
-  
-
-  <section id="6.6.1" title="Passivation capable beans">
-    <assertion id="a" testable="false">
-      <text>As defined by the EJB specification, all stateful session beans are passivation capable. Stateless and singleton session beans are not passivation capable.</text>
-      <note>Defined by EJB spec</note>
-    </assertion>
-
-    <group>
-      <text>A managed bean is passivation capable if and only if the bean class is serializable and all interceptors and decorators of the bean are serializable.</text>
-      
-      <assertion id="ba">
-        <text>Tests with a serializable bean class.</text>
-      </assertion>
-      
-      <assertion id="bb">
-        <text>Tests with a serializable interceptor.</text>
-      </assertion>
-      
-      <assertion id="bc">
-        <text>Tests with a serializable decorator.</text>
-      </assertion>
-    </group>
-
-    <group>
-      <text>A producer method is passivation capable if and only if it never returns a value which is not passivation capable at runtime. A producer method with a return type that implements or extends serializable is passivation capable. A producer method with a return type that is declared |final| and does not implement |Serializable| is not passivation capable.</text>
-          
-      <assertion id="ca">
-        <text>Test that a producer method with a serializable return type is passivation capable.</text>
-      </assertion>
-      
-      <assertion id="cb">
-        <text>Test that a producer method with a final, non-serializable return type is not passivation capable.</text>
-      </assertion>
-    </group>
-
-    <group>
-      <text>A producer field is passivation capable if and only if it never refers to a value which is not passivation capable at runtime. A producer field with a type that implements or extends |Serializable| is passivation capable. A producer field with a type that is declared |final| and does not implement |Serializable| is not passivation capable.</text>
-    
-      <assertion id="da">
-        <text>Test that a producer field with a serializable type is passivation capable.</text>
-      </assertion>
-      
-      <assertion id="db">
-        <text>Test that a producer field with a final, non-serializable type is not passivation capable.</text>
-      </assertion>
-    </group>
-
-    <assertion id="ea">
-      <text>A custom implementation of Bean is passivation capable if it implements the interface |PassivationCapable|.</text>
-    </assertion>
-    
-    <assertion id="f">
-      <text>An implementation of |Contextual| that is not a bean is passivation capable if it implements both |PassivationCapable| and |Serializable|.</text>
-    </assertion>
-    
-    <assertion id="g" testable="false">
-      <text>The |getId()| method of the |PassivationCapable| implementation must return a value that uniquely identifies the instance of |Bean| or |Contextual|.</text>
-      <note>This is a requirement of the implementation</note>
-    </assertion>
-    
-    <assertion id="h" testable="false">
-      <text>The |getId()| ~method of the |PassivationCapable| implementation must return a value that uniquely identifies the instance of |Bean| or |Contextual|.  It~ is recommended that the string contain the package name of the class that implements |Bean| or |Contextual|.</text>
-      <note>Recommendation only</note>
-    </assertion>
-  </section><section id="6.6.2" title="Passivation capable dependencies">
-    <assertion id="a">
-      <text>The container must guarantee that all session beans are passivation capable dependencies.</text>
-    </assertion>
-
-    <assertion id="b">
-      <text>The container must guarantee that all beans with normal scope are passivation capable dependencies.</text>
-    </assertion>
-
-    <assertion id="c">
-      <text>The container must guarantee that all passivation capable beans with scope |@Dependent| are passivation capable dependencies.</text>
-    </assertion>
-
-    <assertion id="da">
-      <text>The container must guarantee that all resources are passivation capable dependencies.</text>
-    </assertion>
-
-    <assertion id="e">
-      <text>The container must guarantee that the built-in beans of type |Instance|, |Event|, |InjectionPoint| and |BeanManager| are passivation capable dependencies.</text>
-    </assertion>
-
-    <assertion id="fa">
-      <text>A custom implementation of |Bean| is a passivation capable dependency if it implements |PassivationCapable| or if |getScopeType()| returns a normal scope type.</text>
-    </assertion>
-  </section>
-
-  <section id="6.6.3" title="Passivating scopes">
-    <group>
-      <text>A passivating scope requires that beans with the scope are passivation capable, and implementations of |Contextual| passed to any context object for the scope are passivation capable.</text>
-            
-      <assertion id="a">
-        <text>Test that a bean with the scope is passivation capable.</text>
-      </assertion>
-      
-      <assertion id="b">
-        <text>Test that an implementation of |Contextual| passed to the context object for the scope is passivation capable.</text>
-      </assertion>
-    </group>
-    
-    <assertion id="b" testable="false">
-      <text>Passivating scopes must be explicitly declared |@ScopeType(passivating=true)|.</text>
-      <note>A statement of intent</note>
-    </assertion>
-  </section>
-
-  <section id="6.6.4" title="Validation of passivation capable beans and dependencies">
-    <assertion id="aaa">
-      <text>If a managed bean which declares a passivating scope is not passivation capable, then the container automatically detects the problem and treats it as a deployment problem, as defined in Section 12.4, "Problems detected automatically by the container".</text>
-      <note>Here we check the class, as interceptors and decorators are tested below</note>
-    </assertion>
-    
-    <group>
-      <text>If a managed bean which declares a passivating scope has a non-transient injected field, bean constructor parameter or initializer method parameter that does not resolve to a passivation capable dependency, then the container automatically detects the problem and treats it as a deployment problem, as defined in Section 12.4, "Problems detected automatically by the container".</text>    
-      <assertion id="aaba">
-        <text>Test with injected field.</text>
-      </assertion>
-      
-      <assertion id="aabb">
-        <text>Test with bean constructor parameter.</text>
-      </assertion>
-      
-      <assertion id="aabc">
-        <text>Test with initializer method parameter.</text>
-      </assertion>
-    </group>
-    
-    <group>
-      <text>If a managed bean which declares a passivating scope has an interceptor or decorator with a non-transient injected field, bean constructor parameter or initializer method parameter that does not resolve to a passivation capable dependency, then the container automatically detects the problem and treats it as a deployment problem, as defined in Section 12.4, "Problems detected automatically by the container".</text>
-    
-      <assertion id="aac">
-        <text>Test interceptor with injected field.</text>
-      </assertion>
-      
-      <assertion id="aad">
-        <text>Test interceptor with bean constructor parameter.</text>
-      </assertion>
-      
-      <assertion id="aae">
-        <text>Test interceptor with initializer method parameter.</text>
-      </assertion>
-      
-      <assertion id="aaf">
-        <text>Test decorator with injected field.</text>
-      </assertion>
-      
-      <assertion id="aag">
-        <text>Test decorator with bean constructor parameter.</text>
-      </assertion>
-      
-      <assertion id="aah">
-        <text>Test decorator with initializer method parameter.</text>
-      </assertion>
-    </group>
-
-    <group>
-      <text>If a stateful session bean has a non-transient injected field, bean constructor parameter or initializer method parameter that does not resolve to a passivation capable dependency, then the container automatically detects the problem and treats it as a deployment problem, as defined in Section 12.4, "Problems detected automatically by the container".</text>    
-      
-      <assertion id="ba">
-        <text>Test with an injected field.</text>
-      </assertion>
-
-      <assertion id="bb" testable="false">
-        <text>Test with a bean constructor parameter.</text>
-        <note>Session beans don't have bean constructors</note>
-      </assertion>
-
-      <assertion id="bc">
-        <text>Test with an initializer method parameter.</text>
-      </assertion>
-    </group>
-    
-    <group>
-      <text>If a stateful session bean has an interceptor or decorator with a non-transient injected field, bean constructor parameter or initializer method parameter that does not resolve to a passivation capable dependency, then the container automatically detects the problem and treats it as a deployment problem, as defined in Section 12.4, "Problems detected automatically by the container".</text>
-            
-      <assertion id="bda">
-        <text>Test an interceptor with an injected field.</text>
-      </assertion>
-      
-      <assertion id="bdb">
-        <text>Test an interceptor with a bean constructor parameter.</text>
-      </assertion>
-      
-      <assertion id="bdc">
-        <text>Test an interceptor with an initializer method parameter.</text>
-      </assertion>
-      
-      <assertion id="bdd">
-        <text>Test a decorator with an injected field.</text>
-      </assertion>
-      
-      <assertion id="bde">
-        <text>Test a decorator with a bean constructor parameter.</text>
-      </assertion>
-      
-      <assertion id="bdf">
-        <text>Test a decorator with an initializer method parameter.</text>
-      </assertion>
-    </group>
-
-    <group>
-      <text>If a producer method declares a passivating scope and the container is able to determine that it is not passivation capable by inspecting its return type, or has a parameter that does not resolve to a passivation capable dependency, then the container automatically detects the problem and treats it as a deployment problem, as defined in Section 12.4, "Problems detected automatically by the container".</text>
-            
-      <assertion id="ca">
-        <text>Test a producer method with a non passivation-capable return type.</text>
-      </assertion>
-
-      <assertion id="cb">
-        <text>Test a producer method with a parameter that does not resolve to a passivation capable dependency.</text>
-      </assertion>
-    </group>
-
-    <assertion id="d">
-      <text>If a producer field declares a passivating scope and the container is able to determine that it is not passivation capable by inspecting its type, then the container automatically detects the problem and treats it as a deployment problem, as defined in Section 12.4,
-"Problems detected automatically by the container".</text>
-    </assertion>
-
-    <group>
-      <text>If a producer method or field which declares a passivating scope returns an unserializable object at runtime, the container must throw an |IllegalProductException|.</text>
-      
-      <assertion id="ea">
-        <text>Test with a producer method.</text>
-      </assertion>
-      
-      <assertion id="eb">
-        <text>Test with a producer field.</text>
-      </assertion>
-    </group>
-
-    <group>
-      <text>If a producer method or field of scope |@Dependent| returns an unserializable object for injection into an injection point that requires a passivation capable dependency, the container must throw an |IllegalProductException|</text>
-      
-      <assertion id="fa">
-        <text>Test for a deployment exception with a producer method.</text>
-      </assertion>
-      
-      <assertion id="fab">
-        <text>Test for a runtime exception with a producer method.</text>
-      </assertion>
-      
-      <assertion id="fb">
-        <text>Test for a deployment exception with a producer field.</text>
-      </assertion>
-      
-      <assertion id="fbb">
-        <text>Test for a runtime exception with a producer field.</text>
-      </assertion>
-    </group>
-
-    <group>
-      <text>For a custom implementation of |Bean|, the container calls |getInjectionPoints()| to determine the injection points, and |InjectionPoint.isTransient()| to determine whether the injected point is a transient field.</text>    
-    
-      <assertion id="ga">
-        <text>Test calling |getInjectionPoints()|.</text>
-      </assertion>
-      
-      <assertion id="gb">
-        <text>Test calling |InjectionPoint.isTransient()|.</text>
-      </assertion>
-    </group>
-
-    <group>
-      <text>If a bean which declares a passivating scope type, or any stateful session bean, has a decorator which is not a passivation capable dependency, the container automatically detects the problem and treats it as a deployment problem, as defined in Section 12.4, "Problems detected automatically by the container".</text>    
-      
-      <assertion id="ha">
-        <text>Test with a bean which declares a passivating scope type.</text>
-      </assertion>
-      
-      <assertion id="hb">
-        <text>Test with a stateful session bean.</text>
-      </assertion>
-    </group>
-  </section>
-
-  <section id="6.7" title="Context management for built-in scopes">
-    <group>
-      <text>The built-in context object is active during servlet, web service and EJB invocations, or in the case of the conversation context object, for JSF requests.</text>
-    </group>
-    
-  </section>
-
-  <section id="6.7.1" title="Request context lifecycle">
-    <assertion id="aa">
-      <text>The request scope is active during the |service()| method of any servlet in the web application~, during the |doFilter()| method of any servlet filter and when the container calls any |ServletRequestListener| or |AsyncListener|.~</text>
-    </assertion>
-
-    <assertion id="ab">
-      <text>The request scope is active ~during the |service()| method of any servlet in the web application~, during the |doFilter()| method of any servlet filter and when the container calls any |ServletRequestListener| or |AsyncListener|.</text>
-    </assertion>
-
-    <assertion id="c">
-      <text>The request scope is active during any Java EE web service invocation.</text>
-    </assertion>
-    
-    <assertion id="e">
-      <text>The request scope is active during any asynchronous observer method notification.</text>
-    </assertion>
-    
-    <group>
-      <text>The request scope is active during any remote method invocation of any EJB, during any asynchronous method invocation of any EJB, during any call to an EJB timeout method and during message delivery to any EJB message-driven bean.</text>
-    
-      <assertion id="ga" testable="false">
-        <text>Test the request scope is active during a remote method invocation of any EJB.</text>
-      </assertion>    
-
-      <assertion id="gb" testable="false">
-        <text>Test the request scope is active during any asynchronous method invocation of any EJB.</text>
-      </assertion>
-
-      <assertion id="gc">
-        <text>Test the request scope is active during any call to an EJB timeout method.</text>
-      </assertion>
-
-      <assertion id="gd">
-        <text>Test the request scope is active during message delivery to any EJB message-driven bean.</text>
-      </assertion>
-    </group>
-      
-    <assertion id="ge">
-      <text>The request scope is active during any message delivery to a |MessageListener| for a JMS topic or queue obtained from the Java EE component environment.</text>
-    </assertion>        
-            
-    <group>
-      <text>The request context is destroyed at the end of the servlet request, after the |service()| method and all |doFilter()| methods, and all |requestDestroyed()| and |onComplete()| notifications return.</text>
-            
-      <assertion id="baa">
-        <text>Test the request context is destroyed at the end of the servlet request, after the |service()| method.</text>
-      </assertion>
-
-      <assertion id="bba">
-        <text>Test the request context is destroyed after all |doFilter()| methods, and all |requestDestroyed()| and |onComplete()| notifications return.</text>
-      </assertion>
-    </group>
-
-    <assertion id="d">
-      <text>The request context is destroyed after the web service invocation completes.</text>
-    </assertion>
-
-    <assertion id="fa">
-      <text>The request context is destroyed after the asynchronous observer notification completes</text>
-    </assertion>
-    
-    <group>
-      <text>The request context is destroyed after the EJB remote method invocation, asynchronous method invocation, timeout or message delivery completes.</text>
-            
-      <assertion id="ha" testable="false">
-        <text>Test the request context is destroyed after an EJB remote method invocation.</text>
-      </assertion>
-
-      <assertion id="hb">
-        <text>Test the request context is destroyed after an EJB asynchronous method invocation.</text>
-      </assertion>
-
-      <assertion id="hc">
-        <text>Test the request context is destroyed after the EJB timeout.</text>
-      </assertion>
-
-      <assertion id="hd">
-        <text>Test the request context is destroyed after the message delivery completes.</text>
-      </assertion>
-    </group>
-
-    <assertion id="i">
-      <text>The request context is destroyed after the message delivery to the |MessageListener| completes.</text>
-    </assertion>
-  </section>
-
-  <section id="6.7.2" title="Session context lifecycle">
-    <assertion id="aa">
-      <text>The session scope is active during the |service()| method of any servlet in the web application ~, during the |doFilter()| method of any servlet filter~ and when the container calls any |HttpSessionListener|, |AsyncListener| or |ServletRequestListener|.</text>
-    </assertion>
-
-    <assertion id="ab">
-      <text>The session scope is active ~during the |service()| method of any servlet in the web application~, during the |doFilter()| method of any servlet filter and when the container calls any |HttpSessionListener|, |AsyncListener| or |ServletRequestListener|.</text>
-    </assertion>
-
-    <assertion id="b">
-      <text>The session context is shared between all servlet requests that occur in the same HTTP servlet session.</text>
-    </assertion>
-
-    <assertion id="ca">
-      <text>The session context is destroyed when the ~|HTTPSession| times out, after all |HttpSessionListener|s have been called~, and at the very end of any request in which |invalidate()| was called, after all filters and |ServletRequestListeners| have been called.</text>
-    </assertion>
-    
-    <assertion id="cb">
-      <text>The session context is destroyed when the |HTTPSession| times out, ~after all |HttpSessionListener|s have been called, and at the very end of any request in which |invalidate()| was called~, after all filters and |ServletRequestListeners| have been called.</text>
-    </assertion>
-  </section>
-
-  <section id="6.7.3" title="Application context lifecycle">
-    <assertion id="aa">
-      <text>The application scope is active during the |service()| method of any servlet in the web application ~, during the |doFilter()| method of any servlet filter and when the container calls any |ServletContextListener|, |HttpSessionListener|, |AsyncListener| or |ServletRequestListener|.~</text>
-    </assertion>
-
-    <assertion id="ab">
-      <text>The application scope is active during ~the |service()| method of any servlet in the web application, during~ the |doFilter()| method of any servlet filter and when the container calls any |ServletContextListener|, |HttpSessionListener|, |AsyncListener| or |ServletRequestListener|.~</text>
-    </assertion>
-
-    <assertion id="b">
-      <text>The application scope is active during any Java EE web service invocation.</text>
-    </assertion>
-
-    <assertion id="c">
-      <text>The application scope is active during any asynchronous observer method notification.</text>
-    </assertion>
-
-    <assertion id="da">
-      <text>The application scope is also active during any remote method invocation of any EJB~, during any asynchronous method invocation of any EJB, during any call to an EJB timeout method and during message delivery to any EJB message-driven bean.</text>
-    </assertion>
-
-    <assertion id="db">
-      <text>The application scope is also active ~during any remote method invocation of any EJB~, during any asynchronous method invocation of any EJB~, during any call to an EJB timeout method and during message delivery to any EJB message-driven bean.~</text>
-    </assertion>
-
-    <assertion id="dc">
-      <text>The application scope is also active ~during any remote method invocation of any EJB, during any asynchronous method invocation of any EJB,~ during any call to an EJB timeout method~ and during message delivery to any EJB message-driven bean.~</text>
-    </assertion>
-
-    <assertion id="dd">
-      <text>The application scope is also active ~during any remote method invocation of any EJB, during any asynchronous method invocation of any EJB, during any call to an EJB timeout method and~ during message delivery to any EJB message-driven bean.</text>
-    </assertion>
-    
-    <assertion id="de">
-      <text>The application scope is active during any message delivery to a |MessageListener| for a JMS topic or queue obtained from the Java EE component environment.</text>
-    </assertion>
-    
-    <assertion id="df">
-      <text>The application scope is active when the disposer method or |@PreDestroy| callback of any bean with any normal scope other than |@ApplicationScoped| is called.</text>
-    </assertion>
-
-    <assertion id="ea">
-      <text>The application context is shared between all servlet requests~, asynchronous observer method notifications, web service invocations, EJB remote method invocations, EJB asynchronous method invocations, EJB timeouts and message deliveries to message driven beans ~that execute within the same application.</text>
-    </assertion>
-
-    <assertion id="eb">
-      <text>The application context is shared between all ~servlet requests,~ asynchronous observer method notifications~, web service invocations, EJB remote method invocations, EJB asynchronous method invocations, EJB timeouts and message deliveries to message driven beans ~that execute within the same application.</text>
-    </assertion>
-
-    <assertion id="ec">
-      <text>The application context is shared between all ~servlet requests, asynchronous observer method notifications,~ web service invocations~, EJB remote method invocations, EJB asynchronous method invocations, EJB timeouts and message deliveries to message driven beans ~that execute within the same application~.</text>
-    </assertion>
-
-    <assertion id="ed">
-      <text>The application context is shared between all ~servlet requests, asynchronous observer method notifications, web service invocations,~ EJB remote method invocations~, EJB asynchronous method invocations, EJB timeouts and message deliveries to message driven beans ~that execute within the same application~.</text>
-    </assertion>
-
-    <assertion id="ee">
-      <text>The application context is shared between all ~servlet requests, asynchronous observer method notifications, web service invocations, EJB remote method invocations,~ EJB asynchronous method invocations~, EJB timeouts and message deliveries to message driven beans ~that execute within the same application.</text>
-    </assertion>
-
-    <assertion id="ef">
-      <text>The application context is shared between all ~servlet requests, asynchronous observer method notifications, web service invocations, EJB remote method invocations, EJB asynchronous method invocations,~ EJB timeouts ~and message deliveries to message driven beans ~that execute within the same application.</text>
-    </assertion>
-
-    <assertion id="eg">
-      <text>The application context is shared between all ~servlet requests, asynchronous observer method notifications, web service invocations, EJB remote method invocations, EJB asynchronous method invocations, EJB timeouts and~ message deliveries to message driven beans ~that execute within the same application.</text>
-    </assertion>
-
-    <assertion id="f">
-      <text>The application context is destroyed when the application
-is undeployed.</text>
-    </assertion>
-  </section>
-
-  <section id="6.7.4" title="Conversation context lifecycle">
-    <assertion id="a">
-      <text>The conversation scope is active during all standard lifecycle phases of any JSF faces or non-faces request.</text>
-    </assertion>
-
-    <assertion id="c">
-      <text>Any JSF request has exactly one associated conversation.</text>
-    </assertion>
-
-    <assertion id="da">
-    <text>The conversation associated with a JSF request is determined at the beginning of the restore view phase and does not change during the request.</text>
-    </assertion>
-
-    <assertion id="e">
-      <text>By default, a conversation is transient.</text>
-    </assertion>
-
-    <assertion id="f">
-      <text>A transient conversation may be marked long-running by calling |Conversation.begin()|</text>
-    </assertion>
-
-    <assertion id="g">
-      <text>A long-running conversation may be marked transient by calling |Conversation.end()|</text>
-    </assertion>
-
-    <assertion id="ha">
-      <text>All long-running conversations have a string-valued unique identifier, _which may be set by the application_ when the conversation is marked long-running~, or generated by the container~</text>
-    </assertion>
-
-    <assertion id="hb">
-      <text>All long-running conversations have a string-valued unique identifier, _which may be_ ~set by the application when the conversation is marked long-running, or~ _generated by the container_</text>
-    </assertion>
-        
-    <assertion id="j">
-      <text>If the conversation associated with the current JSF request is in the transient state at the end of a JSF request, it is destroyed, and the conversation context is also destroyed.</text>
-    </assertion>
-
-    <assertion id="k">
-      <text>If the conversation associated with the current JSF request is in the long-running state at the end of a JSF request, it is not destroyed.</text>
-    </assertion>
-
-    <assertion id="l">
-      <text>The long-running conversation context associated with a request that renders a JSF view is automatically propagated to any faces request (JSF form submission) that originates from that rendered page.</text>
-    </assertion>
-
-    <assertion id="m">
-      <text>The long-running conversation context associated with a request that results in a JSF redirect (via a navigation rule) is automatically propagated to the resulting non-faces request, and to any other subsequent request to the same URL. This is accomplished via use of a GET request parameter named cid containing the unique identifier of the conversation.</text>
-    </assertion>
-
-    <assertion id="n">
-      <text>The long-running conversation associated with a request may be propagated to any non-faces request via use of a GET request parameter named |cid| containing the unique identifier of the conversation. In this case, the application must manage this request parameter.</text>
-    </assertion>
-
-    <assertion id="o">
-      <text>When no conversation is propagated to a JSF request, the request is associated with a new transient conversation.</text>
-    </assertion>
-
-    <assertion id="p">
-      <text>All long-running conversations are scoped to a particular HTTP servlet session and may not cross session boundaries.</text>
-    </assertion>
-
-    <assertion id="qa">
-  <text>When the HTTP servlet session is invalidated, all long-running conversation contexts created during the current session are destroyed, after the servlet |service()| method completes.</text>
-    </assertion>
-
-    <assertion id="r" testable="false">
-      <text>The container is permitted to arbitrarily destroy any long-running conversation that is associated with no current JSF request, in order to conserve resources</text>
-      <note>In other words, this is unspecified</note>
-    </assertion>
-
-    <assertion id="ta" testable="false">
-      <text>The conversation timeout, which may be specified by calling |Conversation.setTimeout()| is a hint to the container that a conversation should not be destroyed if it has been active within the last given interval in milliseconds.</text>
-      <note>Not required</note>
-    </assertion>
-    
-    <assertion id="tb">
-  <text>If the propagated conversation cannot be restored, the container must associate the request with a new transient conversation and throw an exception of type |javax.context.NonexistentConversationException| from the restore view phase of the JSF lifecycle.  The application may handle this exception using the JSF |ExceptionHandler|.</text>
-    </assertion>    
-
-    <assertion id="ua">
-  <text>The container ensures that a long-running conversation may be associated with at most one request at a time, by blocking or rejecting concurrent requests.  If the container rejects a request, it must associate the request with a new transient conversation and throw an exception of type |javax.context.BusyConversationException| from the restore view phase of the JSF lifecycle.  The application may handle this exception using the JSF |ExceptionHandler|.</text>
-    </assertion>
-  </section>
-  
-  <section id="6.7.5" title="The Conversation interface">
-    <group>
-      <text>The container provides a built-in bean with bean type |Conversation|, scope |@RequestScoped|, and binding |@Current|, named |javax.enterprise.context.conversation|.</text>      
-      <assertion id="iaa">
-        <text>Test the bean type is correct.</text>
-      </assertion>
-
-      <assertion id="ib">
-        <text>Test the scope is correct.</text>
-      </assertion>
-
-      <assertion id="id">
-        <text>Test the binding type is correct.</text>
-      </assertion>
-
-      <assertion id="ie">
-        <text>Test the bean name is correct.</text>
-      </assertion>          
-    </group>
-    
-    <assertion id="j">
-      <text>|begin()| marks the current transient conversation long-running.  A conversation identifier may, optionally, be specified.  If no conversation identifier is specified, an identifier is generated by the container.</text>
-    </assertion>
-    
-    <assertion id="k">
-      <text>|end()| marks the current long-running conversation transient.</text>
-    </assertion>
-    
-    <assertion id="l">
-      <text>|getId()| returns the identifier of the current long-running conversation, or a null value of the current conversation is transient.</text>
-    </assertion>
-    
-    <assertion id="m">
-      <text>|getTimeout()| returns the timeout, in milliseconds, of the current conversation.</text>
-    </assertion>
-    
-    <assertion id="n">
-      <text>|setTimeout()| sets the timeout of the current conversation.</text>
-    </assertion>
-    
-    <assertion id="o">
-      <text>|isTransient()| returns |true| if the conversation is marked transient, or |false| if it is marked long-running.</text>
-    </assertion>
-    
-    <assertion id="p">
-      <text>If any method of |Conversation| is called when the conversation scope is not active, a |ContextNotActiveException| is thrown.</text>
-    </assertion>
-    
-    <assertion id="q">
-      <text>If |end()| is called, and the current conversation is marked transient, an |IllegalStateException| is thrown.</text>
-    </assertion>
-    
-    <assertion id="r">
-      <text>If |begin()| is called, and the current conversation is already marked long-running, an |IllegalStateException| is thrown.</text>
-    </assertion>
-    
-    <assertion id="s">
-      <text>If |begin()| is called with an explicit conversation identifier, and a long-running conversation with that identifier already exists, an |IllegalArgumentException| is thrown.</text>
-    </assertion>
-  </section>
-
-  <section id="7" title="Lifecycle of contextual instances">
-    
-  </section>
-  
-  <section id="7.1" title="Restriction upon bean instantiation">
-    
-  </section>
-  
-  <section id="7.2" title="Container invocations and interception">
-    <group>
-      <text>When the container invokes a method of a bean, if, and only if, the invocation is a business method invocation it passes through the method interceptor and decorator stacks, and in the case of a session bean, it is subject to EJB services such a declarative transaction management, concurrency, security and asynchronicity, as defined by the EJB specification.</text>
-      
-      <assertion id="a">
-        <text>Verify that a managed bean's business methods are intercepted</text>
-      </assertion>
-      
-      <assertion id="b">
-        <text>Verify that a managed bean's business methods are decorated</text>
-      </assertion>
-      
-      <assertion id="c">
-        <text>Verify that a session bean's business methods are intercepted</text>
-      </assertion>
-      
-      <assertion id="d">
-        <text>Verify that a session bean's business methods are decorated</text>
-      </assertion>
-    
-      <assertion id="f" testable="false">
-        <text>Verify that a session bean's business methods receive EJB services</text>
-        <note>This is tested by the EJB TCK</note>
-      </assertion>
-    </group>
-    
-    <assertion id="g">
-      <text>If the invocation is not a business method invocation, it is treated as a normal Java method call and is not intercepted by the container.</text>
-    </assertion>
-    
-    <group>
-      <text>Invocations of initializer methods by the container are not business method invocations.</text>
-      <assertion id="ha">
-        <text>Check initializer methods aren't decorated</text>
-      </assertion>
-      <assertion id="hb">
-        <text>Check initializer methods aren't intercepted</text>
-      </assertion>
-    </group>
-    
-    
-    <group>
-      <text>Invocations of producer, disposer and observer methods by the container are business method invocations are are intercepted by method interceptors and decorators.</text>
-      
-      <assertion id="ia">
-        <text>Verify producer methods are intercepted</text>
-      </assertion>
-      
-      <assertion id="ib">
-        <text>Verify producer methods are decorated</text>
-      </assertion>
-      
-      <assertion id="ic">
-        <text>Verify disposer methods are intercepted</text>
-      </assertion>
-      
-      <assertion id="id">
-        <text>Verify disposer methods are decorated</text>
-      </assertion>
-      
-      <assertion id="ie">
-        <text>Verify observer methods are intercepted</text>
-      </assertion>
-      
-      <assertion id="if">
-        <text>Verify observer methods are decorated</text>
-      </assertion>
-    </group>
-    
-    
-    <assertion id="j">
-      <text>Invocation of lifecycle callbacks by the container are not business method invocations, but are intercepted by interceptors for lifecycle callbacks.</text>
-    </assertion>
-    
-    <group>
-      <text>Invocations of interceptors and decorator methods during method or lifecycle callback interception are not business method invocations, and therefore no recursive interception occurs.</text>
-      <assertion id="ka">
-         <text>Verify decorators callbacks are not intercepted</text>
-      </assertion>
-      
-      <assertion id="kb">
-         <text>Verify decorators callbacks are not decorated</text>
-      </assertion>
-      
-      <assertion id="kc">
-         <text>Verify interceptor callbacks are not intercepted</text>
-      </assertion>
-      
-      <assertion id="kd">
-         <text>Verify interceptor callbacks are not decorated</text>
-      </assertion>
-    </group>
-  </section>
-  
-  <section id="7.3" title="Lifecycle of contextual instances">
-    
-  </section>
-
-  <section id="7.3.1" title="Lifecycle of managed beans">
-    <assertion id="aa">
-      <text>When the |create()| method of the |Bean| object that represents a managed bean is called, the container obtains an instance of the bean, as defined by the Managed Beans specification, calling the bean constructor as defined by Section 5.6.3, "Injection using the bean constructor", and performing dependency injection as defined in Section 5.6.4, "Injection of fields and initializer methods".</text>
-    </assertion>
-    
-    <assertion id="ba">
-      <text>When the |destroy()| method is called, the container destroys the instance, as defined by the Managed Beans specification, and any dependent objects, as defined in Section 5.6.5, "Destruction of dependent objects".</text>
-    </assertion>
-  </section>
-
-  <section id="7.3.2" title="Lifecycle of stateful session beans">
-    <assertion id="aa">
-      <text>When the |create()| method of a |Bean| object that represents a stateful session bean that is called, the container creates and returns a container-specific internal local reference to a new session bean instance. The reference must be passivation capable. This reference is not directly exposed to the application.</text>
-    </assertion>
-
-    <assertion id="bb">
-      <text>Before injecting or returning a contextual instance to the application, the container transforms its internal reference into an object that implements the bean types expected by the application and delegates method invocations to the underlying stateful session bean instance. This object must be passivation capable.</text>
-    </assertion>
-
-    <assertion id="bc">
-      <text>When the |destroy()| method is called, and if the underlying EJB was not already removed by direct invocation of a remove method by the application, the container removes the stateful session bean. The |@PreDestroy| callback must be invoked by the container.</text>
-    </assertion>
-  </section>
-
-  <section id="7.3.3" title="Lifecycle of stateless session and singleton beans">
-    <assertion id="a">
-      <text>When the |create()| method of a Bean object that represents a stateless session or singleton session bean is called, the container
-creates and returns a container-specific internal local reference to the session bean. This reference is not directly exposed to the application.</text>
-    </assertion>
-
-    <assertion id="b">
-      <text>Before injecting or returning a contextual instance to the application, the container transforms its internal reference into an object that implements the bean types expected by the application and delegates method invocations to the underlying session bean. This object must be passivation capable.</text>
-    </assertion>
-
-    <assertion id="c">
-      <text>When the |destroy()| method is called, the container simply discards this internal reference.</text>
-    </assertion>
-  </section>
-
-  <section id="7.3.4" title="Lifecycle of producer methods">
-    <assertion id="ea">
-      <text>When the create() method of a |Bean| object that represents a producer method is called, the container must invoke the producer method as defined by Section 5.6.6, "Invocation of producer or disposer methods". The return value of the producer method, after method interception completes, is the new contextual instance to be returned by |Bean.create()|.</text>
-    </assertion>
-
-    <assertion id="k">
-      <text>If the producer method returns a null value and the producer method bean has the scope |@Dependent|, the |create()| method returns a null value.</text>
-    </assertion>
-
-    <assertion id="l">
-    <text>If the producer method returns a null value, and the scope of the producer method is not |@Dependent|, the |create()| method throws an |IllegalProductException|.</text>
-    </assertion>
-
-    <assertion id="ma">
-      <text>When the |destroy()| method is called, and if there is a disposal method for this producer method, the container must invoke the disposer method as defined by Section 5.6.6, "Invocation of producer or disposal methods", passing the instance given to |destroy()| to the disposed parameter.</text>
-    </assertion>
-
-    <assertion id="r">
-      <text>Finally, the container destroys dependent objects, as defined in Section 5.6.5, "Destruction of dependent objects".</text>
-    </assertion>
-  </section>
-
-  <section id="7.3.5" title="Lifecycle of producer fields">
-    <assertion id="ga">
-      <text>When the |create()| method of a |Bean| object that represents a producer field is called, the container must access the producer field as defined by Section 5.6.7, "Access to producer field values" to obtain the current value of the field. The value of the producer field is the new contextual instance to be returned by |Bean.create()|.</text>
-    </assertion>
-
-    <assertion id="m">
-      <text>If the producer field contains a null value and the producer field bean has the scope |@Dependent|, the |create()| method returns a null value.</text>
-    </assertion>
-
-    <assertion id="n">
-    <text>If the producer field contains a null value, and the scope of the producer method is not |@Dependent|, the |create()| method throws an |IllegalProductException|.</text>
-    </assertion>
-  </section>
-
-  <section id="7.3.6" title="Lifecycle of resources">
-    <group>
-      <text>When the |create()| method of a |Bean| object that represents a resource is called, the container creates and returns a container-specific internal reference to the Java EE component environment resource, entity manager, entity manager factory, remote EJB instance or web service reference. This reference is not directly exposed to the application.</text>
-      
-      <assertion id="la">
-         <text>Check Java EE component environment resource</text>
-      </assertion>
-      
-      <assertion id="lb">
-         <text>Check Entity Manager</text>
-      </assertion>
-      
-      <assertion id="lc">
-         <text>Check Entity Manager Factory</text>
-      </assertion>
-      
-      <assertion id="ld">
-         <text>Check Remote EJB instance</text>
-      </assertion>
-      <assertion id="le">
-         <text>Check Web Service Reference</text>
-      </assertion>
-    </group>
-    
-    <group>
-      <text>Before injecting or returning a contextual instance to the application, the container transforms its internal reference into an object that implements the bean types expected by the application and delegates method invocations to the underlying resource, entity manager, entity manager factory, remote EJB instance or web service reference. This object must be passivation capable.</text>
-      
-      <assertion id="ma">
-         <text>Check delegations to underlying Java EE component environment resource</text> 
-      </assertion>
-      
-      <assertion id="mb">
-         <text>Check injected Java EE component environment resource is passivation capable</text> 
-      </assertion>
-      
-      <assertion id="mc">
-         <text>Check delegations to underlying Entity Manager</text>
-      </assertion>
-      
-      <assertion id="md">
-         <text>Check injected Entity Manager is passivation capable</text> 
-      </assertion>
-      
-      <assertion id="me">
-         <text>Check delegations to Entity Manager Factory</text>
-      </assertion>
-      
-      <assertion id="mf">
-         <text>Check injected Entity Manager Factory is passivation capable</text> 
-      </assertion>
-      
-      <assertion id="mg">
-         <text>Check delegations to underlying Remote EJB instance</text>
-      </assertion>
-      
-      <assertion id="mh">
-         <text>Check injected Remote EJB instance is passivation capable</text>
-      </assertion>
-      
-      <assertion id="mj">
-         <text>Check delegations to underlying Web Service Reference</text>
-      </assertion>
-      
-      <assertion id="mk">
-         <text>Check injected Web Service Reference is passivation capable</text> 
-      </assertion>
-    </group>
-    
-    <group>
-      <text>When the |destroy()| method is called, the container discards this internal reference.  For certain kinds of resource, for example persistence contexts, the container eventually performs additional cleanup to destroy state associated with the client or transaction, as required by the Java EE platform specification.</text>
-      
-      <assertion id="na">
-         <text>Check Java EE component environment resource</text>
-      </assertion>
-      
-      <assertion id="nb">
-         <text>Check Entity Manager</text>
-      </assertion>
-      
-      <assertion id="nc">
-         <text>Check Entity Manager Factory</text>
-      </assertion>
-      
-      <assertion id="nd">
-         <text>Check Remote EJB instance</text>
-      </assertion>
-      
-      <assertion id="ne">
-         <text>Check Web Service Reference</text>
-      </assertion>
-    </group>
-    
-    <group>
-      <text>The container must perform ordinary Java EE component environment injection upon any non-static field that functions as a resource declaration, as defined by the Java EE platform and Common Annotations for the Java platform specifications.</text>
-      <assertion id="o">
-         <text>Check @Resource injection</text>
-      </assertion>
-    </group>
-    
-    
-    <assertion id="p" testable="false">
-      <text>The container is not required to perform Java EE component environment injection upon a static field. Portable applications should not rely upon the value of a static field that functions as a resource declaration.</text>
-      <note>Defines non-portable behavior</note>
-    </assertion>
-  </section>
-
-  <section id="8" title="Decorators">
-    <assertion id="a" testable="false">
-      <text>Decorators may be bound to any managed bean that is not itself an interceptor or decorator or to any EJB session or message-driven bean.</text>
-      <note>Doesn't specify an error</note>
-    </assertion>        
-  </section>
-
-  <section id="8.1" title="Decorator beans">
-    <assertion id="a" testable="false">
-      <text>A decorator is a managed bean.</text>
-      <note>Statement of intent</note>
-    </assertion>
-
-    <assertion id="b">
-      <text>The set of decorated types of a decorator includes all interfaces implemented directly or indirectly by the bean class, except for |java.io.Serializable|.</text>
-    </assertion>
-
-    <assertion id="c">
-      <text>The decorator bean class and its superclasses are not decorated types of the decorator.</text>
-    </assertion>
-
-    <assertion id="d">
-      <text>The decorator class may be abstract.</text>
-    </assertion>
-    
-    <assertion id="e">
-      <text>Decorators of a session bean must comply with the bean provider programming restrictions defined by the EJB specification.</text>
-    </assertion>
-    
-    <assertion id="f">
-      <text>Decorators of a stateful session bean must comply with the rules for instance passivation and conversational state defined by the EJB specification.</text>
-    </assertion>
-  </section>
-
-  <section id="8.1.1" title="Declaring a decorator">
-    <assertion id="a">
-      <text>A decorator is declared by annotating the bean class with the |@javax.decorator.Decorator| stereotype.</text>
-    </assertion>
-  </section>
-
-  <section id="8.1.2" title="Decorator delegate injection points">
-    <assertion id="a">
-      <text>All decorators have a delegate injection point.  A delegate injection point is an injection point of the bean class. The type and bindings of the injection point are called the delegate type and delegate bindings. The delegate injection point must be be declared by annotating the injection point with the annotation |@javax.decorator.Decorates|.</text>
-    </assertion>
-
-    <assertion id="b">
-      <text>The decorator applies to any bean that is eligible for injection to the delegate injection point, according to the rules defined
-in Section 5.1, "Typesafe resolution algorithm".</text>
-    </assertion>
-
-    <assertion id="ca">
-      <text>A decorator must have exactly one delegate injection point. If a decorator has more than one delegate injection point~, or does not have a delegate injection point,~ the container automatically detects the problem and treats it as a definition error, as defined in Section 12.4, "Problems detected automatically by the container".</text>
-    </assertion>
-
-    <assertion id="cb">
-      <text>A decorator must have exactly one delegate injection point. If a decorator ~has more than one delegate injection point, or~ does not have a delegate injection point, the container automatically detects the problem and treats it as a definition error, as defined in Section 12.4, "Problems detected automatically by the container".</text>
-    </assertion>
-    
-    <group>
-      <text>The delegate injection point must be an injected field, initializer method parameter or bean constructor method parameter. If an injection point that is not an injected field, initializer method parameter or bean constructor method parameter is annotated |@Decorates|, the container automatically detects the problem and treats it as a definition error, as defined in Section 12.4, "Problems detected automatically by the container".</text>
-    
-      <assertion id="cc">
-        <text>Check an injected field is ok</text>
-      </assertion>
-    
-      <assertion id="cd">
-        <text>Check an initializer method parameter is ok</text>
-      </assertion>
-    
-      <assertion id="ce">
-        <text>Check a bean constructor method parameter is ok</text>
-      </assertion>
-    
-      <assertion id="cf">
-        <text>Check that a producer method parameter is not ok</text>
-      </assertion>
-      
-    </group>
-    
-    <assertion id="cg">
-      <text>If a bean class that is not a decorator has an injection point annotated |@Decorates|, the container automatically detects the problem and treats it as a definition error, as defined in Section 12.4, "Problems detected automatically by the container".</text>
-    </assertion>
-
-    <assertion id="d">
-      <text>If a decorator applies to a managed bean, and the bean class is declared final, the container automatically detects the problem and treats it as a definition error, as defined in Section 12.4, "Problems detected automatically by the container".</text>
-    </assertion>
-
-    <assertion id="e">
-      <text>If a decorator applies to a managed bean with a non-static, non-private, final method, and the decorator also implements that method, the container automatically detects the problem and treats it as a definition error, as defined in Section 12.4, "Problems detected automatically by the container".</text>
-    </assertion>
-
-    <assertion id="f">
-      <text>The container must inject a delegate object to the delegate injection point.  The delegate object implements the delegate type and delegates method invocations along the decorator stack.</text>
-    </assertion>
-  </section>
-
-  <section id="8.1.3" title="Decorated types of a decorator">
-    <assertion id="a">
-      <text>The delegate type of a decorator must implement or extend every decorated type. If the delegate type does not implement or extend a decorated type of the decorator, the container automatically detects the problem and treats it as a definition error, as defined in Section 12.4, "Problems detected automatically by the container".</text>
-    </assertion>
-    
-    <assertion id="ab">
-      <text>If a decorated type is a parameterized type and the delegate type does not have exactly the same type parameters as the decorated type, the container automatically detects the problem and treats it as a definition error, as defined in Section 12.4, "Problems detected automatically by the container".</text>
-    </assertion>
-
-    <assertion id="b">
-      <text>A decorator is not required to implement the delegate type.</text>
-    </assertion>
-
-    <assertion id="c">
-      <text>A decorator may be an abstract Java class, and is not required to implement every method of every decorated type.</text>
-    </assertion>
-
-    <assertion id="d">
-      <text>The decorator intercepts every method declared by a decorated type of the decorator, and that is implemented by the bean class of the decorator.</text>
-    </assertion>
-  </section>
-
-  <section id="8.2" title="Decorator enablement and ordering">
-    <assertion id="a">
-    <text>By default, decorators are not enabled. A decorator must be explicitly enabled by listing its bean class under the |&lt;Decorators&gt;| element in |beans.xml| file of the bean deployment archive.</text>
-    </assertion>
-
-    <assertion id="b">
-      <text>The order of the decorator declarations determines the decorator ordering. Decorators which occur earlier in the list are called first.</text>
-    </assertion>
-    
-    <assertion id="ba">
-      <text>Each child |&lt;class&gt;| element must specify the name of a decorator bean class.  If there is no class with the specified name~, or if the class with the specified name is not a decorator bean class,~ the container automatically detects the problem and treats it as a deployment problem, as defined in Section 12.4, "Problems detected automatically by the container".</text>
-    </assertion>
-    
-    <assertion id="bb">
-      <text>Each child |&lt;class&gt;| element must specify the name of a decorator bean class.  If ~there is no class with the specified name, or if~ the class with the specified name is not a decorator bean class~,~ the container automatically detects the problem and treats it as a deployment problem, as defined in Section 12.4, "Problems detected automatically by the container".</text>
-    </assertion>
-    
-    <assertion id="bc">
-      <text>If the same class is listed twice under the |&lt;decorators&gt;| element, the container automatically detects the problem and treats it as a deployment problem, as defined in Section 12.4, "Problems detected automatically by the container".</text>
-    </assertion>
-
-    <assertion id="f">
-      <text>Decorators are called after interceptors.</text>
-    </assertion>
-  </section>
-
-  <section id="8.3" title="Decorator resolution">
-    <assertion id="aa">
-      <text>The following procedure must be used by the container when resolving decorators for a certain bean - First, the container identifies the set of matching decorators for which the bean is eligible for injection to the delegate injection point according to the rules defined in Section 5.3, "Typesafe resolution", and for which the decorator is enabled in the bean deployment archive of the bean. Next, the container orders the matching decorators according to the decorator ordering specified in Section 8.2, "Decorator enablement and ordering".</text>
-    </assertion>
-    
-    <assertion id="b">
-      <text>For a custom implementation of the Decorator interface defined in Section 11.1.1, "The Decorator interface", the container calls |getDelegateType()|, |getDelegateBindings()| and |getDecoratedTypes()| to determine the delegate type and bindings and decorated types of the decorator.</text>
-    </assertion>
-  </section>
-
-  <section id="8.4" title="Decorator stack creation">
-    <assertion id="a">
-      <text>When a bean with decorators is created, the container must
-identify the decorators for the bean according to Section 8.3, "Decorator resolution", and for each decorator, obtain a contextual reference, as defined in Section 6.5.3, "Contextual reference for a bean", and build an ordered list of the decorator instances.</text>
-    </assertion>
-  </section>
-
-  <section id="8.5" title="Decorator invocation">
-    <assertion id="a">
-      <text>Whenever a business method is invoked on an instance of a bean with decorators, the container intercepts the business method invocation and, after processing the interceptor stack, invokes decorators of the bean. The container searches for the first decorator in the decorator stack for the instance that implements the method that is being
-invoked as a business method.</text>
-    </assertion>
-
-    <assertion id="b">
-      <text>If no such decorator exists, the container invokes the business method of the intercepted instance.</text>
-    </assertion>
-
-    <assertion id="c">
-      <text>Otherwise, the container calls the method of the decorator.</text>
-    </assertion>
-
-    <assertion id="d">
-      <text>When any decorator is invoked by the container, it may in turn invoke a method of the delegate. The container intercepts the delegate invocation and searches for the first decorator in the decorator stack for the instance such that the decorator implements the method that is being invoked upon the delegate, and the decorator has not previously been invoked during this business method invocation.</text>
-    </assertion>
-
-    <assertion id="e">
-      <text>If no such decorator exists, the container invokes the business method of the intercepted instance.</text>
-    </assertion>
-
-    <assertion id="f">
-      <text>Otherwise, the container calls the method of the decorator.</text>
-    </assertion>
-  </section>
-
-  <section id="9" title="Interceptor bindings">
-
-  </section>
-
-  <section id="9.1" title="Interceptor binding types">
-    <assertion id="a">
-      <text>An interceptor binding type is a Java annotation defined as |@Target({TYPE, METHOD})| or |@Target(TYPE)| and |@Retention(RUNTIME)|.</text>
-    </assertion>
-
-    <assertion id="b">
-      <text>An interceptor binding type may be declared by specifying the |@javax.interceptor.InterceptorBindingType| metaannotation.</text>
-    </assertion>
-
-    <assertion id="c">
-      <text>Multiple interceptors may be bound to the same interceptor binding type or types.</text>
-    </assertion>
-  </section>
-
-  <section id="9.1.1" title="Interceptor binding types with additional interceptor bindings">
-    <assertion id="a">
-      <text>An interceptor binding type may declare other interceptor bindings.</text>
-    </assertion>
-
-    <assertion id="b">
-      <text>Interceptor bindings are transitive�an interceptor binding declared by an interceptor binding type is inherited by all beans and other interceptor binding types that declare that interceptor binding type.</text>
-    </assertion>
-
-    <assertion id="c">
-      <text>Interceptor binding types declared |@Target(TYPE)| may not be applied to interceptor binding types declared |@Target({TYPE, METHOD})|.</text>
-    </assertion>
-  </section>
-
-  <section id="9.1.2" title="Interceptor bindings for stereotypes">
-    <assertion id="a">
-      <text>Interceptor bindings may be applied to a stereotype by annotating the stereotype annotation</text>
-    </assertion>
-
-    <assertion id="b">
-      <text>An interceptor binding declared by a stereotype are inherited by any bean that declares that stereotype.</text>
-    </assertion>
-
-    <assertion id="c">
-      <text>If a stereotype declares interceptor bindings, it must be defined as |@Target(TYPE)|.</text>
-    </assertion>
-  </section>
-
-  <section id="9.2" title="Declaring the interceptor bindings of an interceptor">
-    <assertion id="a">
-      <text>The interceptor bindings of an interceptor are specified by annotating the interceptor class with the binding types and the |@javax.interceptor.Interceptor| annotation.</text>
-    </assertion>
-
-    <assertion id="b">
-      <text>If an interceptor does not declare an |@Interceptor| annotation, it must be bound to beans using |@Interceptors| or |ejb-jar.xml|.</text>
-    </assertion>
-
-    <assertion id="c">
-      <text>All interceptors declared using |@Interceptor| must specify at least one interceptor binding. If an interceptor declared using |@Interceptor| does not declare any interceptor binding, the container automatically detects the problem and treats it as a definition error, as defined in Section 12.4, "Problems detected automatically by the container".</text>
-    </assertion>
-
-    <assertion id="d">
-      <text>An interceptor for lifecycle callbacks may only declare interceptor binding types that are defined as |@Target(TYPE)|. If an
-interceptor for lifecycle callbacks declares an interceptor binding type that is defined |@Target({TYPE, METHOD})|, the containerautomatically detects the problem and treats it as a definition error, as defined in Section 12.4, "Problems detected automatically by the container".</text>
-    </assertion>
-  </section>
-
-  <section id="9.3" title="Binding an interceptor to a bean">
-    <assertion id="a">
-      <text>An interceptor binding may be declared by annotating the bean class, or a method of the bean class, with the interceptor binding type.</text>
-    </assertion>
-  </section>
-
-  <section id="9.4" title="Interceptor enablement and ordering">
-    <assertion id="a">
-      <text>By default, a bean deployment archive has no enabled interceptors bound via interceptor bindings. An interceptor must be explicitly enabled by listing
-its class under the |&lt;Interceptors&gt;| element of the |beans.xml| file for the bean deployment archive.</text>
-    </assertion>
-
-    <assertion id="b">
-      <text>The order of the interceptor declarations determines the interceptor ordering. Interceptors which occur earlier in the list are
-called first.</text>
-    </assertion>
-
-    <assertion id="ca">
-      <text>Each child |&lt;class&gt;| element must specify the name of an interceptor class.  If there is no class with the specified name, or if the class with the specified name is not an interceptor class, the container automatically detects the problem and treats it as a deployment problem, as defined in Section 12.4, "Problems detected automatically by the container".</text>
-    </assertion>
-    
-    <assertion id="cb">
-      <text>If the same class is listed twice under the |&lt;interceptors&gt;| element, the container automatically detects the problem and treats it as a deployment problem, as defined in Section 12.4, "Problems detected automatically by the container".</text>
-    </assertion>
-
-    <assertion id="f">
-      <text>Interceptors declared using |@Interceptors| or in |ejb-jar.xml| are called before interceptors declared using interceptor bindings.</text>
-    </assertion>
-
-    <assertion id="g">
-      <text>Interceptors are called before decorators.</text>
-    </assertion>
-  </section>
-
-  <section id="9.5" title="Interceptor resolution">
-    <assertion id="a">
-      <text>For a lifecycle callback, the bean interceptor bindings include the interceptor bindings declared by the bean at the class level, including interceptor bindings declared as meta-annotations of other interceptor bindings, recursively, and of stereotypes.
-      </text>
-    </assertion>
-
-    <assertion id="b">
-      <text>For a method, the bean interceptor bindings include the interceptor bindings declared by the bean at the class level, including interceptor bindings declared as meta-annotations of other interceptor bindings, recursively, and of stereotypes, together with all interceptor bindings declared at the method level, including interceptor bindings declared as meta-annotations of other interceptor bindings, recursively.</text>
-    </assertion>
-
-    <assertion id="ca">
-  <text>First, the container identifies the set of matching enabled interceptors where, for each interceptor binding declared by the interceptor, there exists an interceptor binding in the set of bean interceptor bindings with (a) the same type and (b) the same annotation member value for each member which is not annotated |@javax.enterprise.inject.NonBinding| (see Section 9.5.2, "Interceptor binding types with members"), and the interceptor intercepts the given kind of lifecycle callback or business method, and the interceptor is enabled in the bean deployment archive of the bean.</text>
-    </assertion>
-
-    <assertion id="ea">
-      <text>Next, the container orders the matching interceptors according to the interceptor ordering specified in Section 9.4, "Interceptor enablement and ordering".</text>
-    </assertion>
-    
-    <assertion id="f">
-      <text>For a custom implementation of the Interceptor interface defined in Section 11.1.2, "The Interceptor interface", the container calls |getInterceptorBindings()| to determine the interceptor bindings of the interceptor and |intercepts()| to determine if the interceptor intercepts a given kind of lifecycle callback or business method.</text>
-    </assertion>
-  </section>
-
-  <section id="9.5.1" title="Interceptors with multiple bindings">
-    <assertion id="a">
-      <text>An interceptor class may specify multiple interceptor bindings, in which case the interceptor will be applied only to beans
-that declare all the bindings at the class level, and to methods of beans for which every binding appears at either the method or class level.</text>
-    </assertion>
-  </section>
-
-  <section id="9.5.2" title="Interceptor binding types with members">
-    <assertion id="a">
-      <text>Interceptor binding types may have annotation members.</text>
-    </assertion>
-
-    <assertion id="b">
-      <text>An annotation member may be excluded from consideration using the @NonBinding annotation.</text>
-    </assertion>
-
-    <assertion id="c">
-      <text>Array-valued or annotation-valued members of an interceptor binding type must be annotated |@NonBinding|. If an array-valued or annotation-valued member of an interceptor binding type is not annotated |@NonBinding|, the container automatically detects the problem and treats it as a definition error, as defined in Section 12.4, "Problems detected automatically by the container".</text>
-    </assertion>
-    
-    <assertion id="d">
-      <text>If the set of interceptor bindings of a bean or interceptor, including bindings inherited from stereotypes and other interceptor bindings, has two instances of a certain interceptor binding type and the instances have different values of some annotation member, the container automatically detects the problem and treats it as a definition error, as defined in Section 12.4, "Problems detected automatically by the container".</text>
-    </assertion>
-  </section>
-
-  <section id="10" title="Events">
-
-  </section>
-
-  <section id="10.1" title="Event types and binding types">
-
-    <assertion id="aa">
-      <text>An event object is an instance of a concrete Java class with no type variables.</text>
-    </assertion>
-
-    <assertion id="c">
-      <text>The event types of the event include all superclasses and interfaces of the runtime class of the event object.</text>
-    </assertion>
-    
-    <assertion id="cb">
-      <text>An event type may not contain a type variable.</text>
-    </assertion>
-
-    <assertion id="d">
-      <text>An event binding type is a Java annotation defined as |@Target({FIELD, PARAMETER})| ~or |@Target({METHOD, FIELD, PARAMETER, TYPE})| and |@Retention(RUNTIME)|~</text>
-    </assertion>
-
-    <assertion id="e">
-      <text>An event binding type is a Java annotation defined as ~|@Target({FIELD, PARAMETER})| or~ |@Target({METHOD, FIELD, PARAMETER, TYPE})| ~and |@Retention(RUNTIME)|~</text>
-    </assertion>
-
-    <assertion id="f">
-      <text>An event binding type is a Java annotation defined as ~|@Target({FIELD, PARAMETER})| or |@Target({METHOD, FIELD, PARAMETER, TYPE})| and ~|@Retention(RUNTIME)|</text>
-    </assertion>
-
-    <assertion id="g">
-      <text>All event binding types must specify the |@javax.enterprise.inject.BindingType| meta-annotation</text>
-    </assertion>
-
-    <assertion id="i">
-      <text>Every event has the binding |@javax.enterprise.inject.Any|, even if it does not explicitly declare this binding.</text>
-    </assertion>
-    
-    <assertion id="j">
-      <text>Any Java type may be an observed event type.</text>
-    </assertion>
-  </section>
-
-  <section id="10.2" title="Observer resolution">
-    <assertion id="h">
-      <text>An observer method will be notified of an event if the observed event type it specifies is one of the event types of the event, and if all the observed event bindings it specifies are event bindings of the event.</text>
-    </assertion>
-
-    <assertion id="j">
-      <text>If the runtime type of the event object contains a type variable, the container must throw an |IllegalArgumentException|.</text>
-    </assertion>
-  </section>
-  
-  <section id="10.2.1" title="Assignability of type variables, raw and parameterized types">
-    <assertion id="a">
-      <text>An event type is considered assignable to a type variable if the event type is assignable to the upper bound, if any.</text>
-    </assertion>
-    
-    <assertion id="b">
-      <text>A parameterized event type is considered assignable to a raw observed event type if the raw types are identical.</text>
-    </assertion>
-    
-    <assertion id="c">
-      <text>A parameterized event type is considered assignable to a parameterized observed event type if they have identical raw type and for each parameter the observed event type parameter is an actual type with identical raw type to the event type parameter, and, if the type is parameterized, the event type parameter is assignable to the observed event type parameter according to these rules, or the observed event type parameter is a wildcard and the event type parameter is assignable to the upper bound, if any, of the wildcard and assignable from the lower bound, if any, of the wildcard, or the observed event type parameter is a type variable and the event type parameter is assignable to the upper bound, if any, of the type variable.</text>
-    </assertion>
-  </section>
-
-  <section id="10.2.2" title="Event binding types with members">
-    <assertion id="a">
-      <text>The binding type for an |Event| binding may have annotation members.</text>
-    </assertion>
-
-    <assertion id="b" testable="false">
-      <text>The container uses |equals()| to compare event binding type member values.</text>
-      <note>Since only primitive types are allowed, the call to equals() cannot be checked</note>
-    </assertion>
-  </section>
-
-  <section id="10.2.3" title="Multiple event bindings">
-    <assertion id="a">
-      <text>An event parameter may have multiple bindings</text>
-    </assertion>
-
-    <assertion id="b">
-      <text>An observer method will only be notified if all the observed event bindings are specified when the event is fired</text>
-    </assertion>
-
-    <assertion id="c">
-      <text>Other, less specific, observers will also be notified of events with multiple event bindings</text>
-    </assertion>
-  </section>
-
-  <section id="10.3" title="Firing events">
-    <assertion id="a">
-      <text>Beans fire events via an instance of the |javax.enterprise.event.Event| interface, which may be injected.</text>
-    </assertion>
-
-    <assertion id="b">
-      <text>The method |fire()| accepts an event object.</text>
-    </assertion>
-
-    <assertion id="c">
-      <text>Any combination of bindings may be specified at the injection point.</text>
-    </assertion>
-
-    <assertion id="d">
-      <text>Or, the application may specify bindings dynamically.</text>
-    </assertion>
-  </section>
-
-  <section id="10.3.1" title="The Event interface">
-    <assertion id="ca">
-      <text>The |Event| interface provides a method for firing events with a specified combination of type and bindings.</text>
-    </assertion>
-    
-    <assertion id="cb">
-      <text>For an injected |Event|, the specified type is the type parameter specified at the injection point, and the specified bindings are the bindings specified at the injection point.</text>
-    </assertion>
-
-    <assertion id="eaa">
-      <text>The |select()| method returns a child |Event| for a given specified type and additional specified bindings.  If no specified type is given, the specified type is the same as the parent.</text>
-    </assertion>
-    
-    <assertion id="eab">
-      <text>If the specified type contains a type variable, an |IllegalArgumentException| is thrown.</text>
-    </assertion>
-
-    <assertion id="eba">
-      <text>If two instances of the same binding type are passed to |select()|, an |IllegalArgumentException| is thrown.</text>
-    </assertion>
-
-    <assertion id="ec">
-      <text>If an instance of an annotation that is not a binding type is passed to |select()|, an |IllegalArgumentException| is thrown.</text>
-    </assertion>
-
-    <assertion id="eda">
-      <text>The method |fire()| fires an event with the specified bindings and notifies observers, as defined by Section 10.5, "Observer notification".</text>
-    </assertion>
-
-    <assertion id="f">
-      <text>If the runtime type of the event object contains a type variable, an |IllegalArgumentException| is thrown.</text>
-    </assertion>
-  </section>
-
-  <section id="10.3.2" title="The built-in Event">
-    <assertion id="a">
-      <text>The container must provide a built-in bean with |Event&lt;X&gt;| for every legal observed event type X in its set of bean types.</text>
-    </assertion>
-
-    <assertion id="b">
-      <text>The container must provide a built-in bean with every event binding type in its set of binding types.</text>
-    </assertion>
-
-    <assertion id="d">
-      <text>The container must provide a built-in bean with scope |@Dependent|.</text>
-    </assertion>
-
-    <assertion id="e">
-      <text>The container must provide a built-in bean with no bean EL name.</text>
-    </assertion>
-
-    <assertion id="f">
-      <text>The container must provide a built-in bean with an implementation provided automatically by the container.</text>
-    </assertion>
-
-    <assertion id="g">
-      <text>The built-in implementation must be a passivation capable dependency, as defined in Section 6.6.2, "Passivation capable
-dependencies".</text>
-    </assertion>
-  </section>
-
-  <section id="10.4" title="Observer methods">
-    <assertion id="aa">
-      <text>An observer method is a non-abstract method of a managed bean class or session bean class.</text>
-    </assertion>
-    
-    <assertion id="c">
-      <text>An observer method may be either static or non-static.</text>
-    </assertion>
-
-    <assertion id="d">
-      <text>If the bean is a session bean, the observer method must be either a business method of the EJB or a static method of the bean class.</text>
-    </assertion>
-
-    <assertion id="e">
-      <text>There may be arbitrarily many observer methods with the same event parameter type and bindings.</text>
-    </assertion>
-
-    <assertion id="f">
-      <text>A bean may declare multiple observer methods.</text>
-    </assertion>
-  </section>
-
-  <section id="10.4.1" title="Event parameter of an observer method">
-    <assertion id="a">
-      <text>Each observer method must have exactly one event parameter, of the same type as the event type it observes.  When searching for observer methods for an event, the container considers the type and bindings of the event parameter</text>
-    </assertion>
-
-    <assertion id="b">
-      <text>If the event parameter does not explicitly declare any binding, the observer method observes events with no binding</text>
-    </assertion>
-
-    <assertion id="ca">
-      <text>The event parameter type may contain a type variable or ~wildcard~.</text>
-    </assertion>
-
-    <assertion id="cb">
-      <text>The event parameter type may contain a ~type variable~ or wildcard.</text>
-    </assertion>
-
-  </section>
-
-  <section id="10.4.2" title="Declaring an observer method">
-    <assertion id="a">
-      <text>An observer method may be declared by annotating a parameter |@javax.enterprise.event.Observes|. That parameter is the event parameter. The declared type of the parameter is the observed event type.</text>
-    </assertion>
-
-    <assertion id="b">
-      <text>If a method has more than one parameter annotated |@Observes|, the container automatically detects the problem and treats it as a definition error, as defined in Section 12.4, "Problems detected automatically by the container".</text>
-    </assertion>
-
-    <assertion id="c">
-      <text>Observed event bindings may be declared by annotating the event parameter.</text>
-    </assertion>
-
-    <assertion id="d">
-      <text>If an observer method is annotated |@Produces| the container automatically detects the problem and treats it as a definition error, as defined in Section 12.4, "Problems detected automatically by the container".</text>
-    </assertion>
-
-    <assertion id="e">
-      <text>If an observer method is annotated |@Initializer| the container automatically detects the problem and treats it as a definition error, as defined in Section 12.4, "Problems detected automatically by the container".</text>
-    </assertion>
-
-    <assertion id="f">
-      <text>If an observer method is has a parameter annotated |@Disposes|, the container automatically detects the problem and treats it as a definition error, as defined in Section 12.4, "Problems detected automatically by the container".</text>
-    </assertion>
-
-    <assertion id="g">
-      <text>If a non-static method of a session bean class has a parameter annotated |@Observes|, and the method is not a business method of the EJB, the container automatically detects the problem and treats it as a definition error, as defined in Section 12.4, "Problems detected automatically by the container".</text>
-    </assertion>
-    
-    <assertion id="h">
-      <text>Interceptors and decorators may not declare observer methods. If an interceptor or decorator has a method with a parameter annotated |@Observes|, the container automatically detects the problem and treats it as a definition error, as defined in Section 12.4, "Problems detected automatically by the container".</text>
-    </assertion>
-  </section>
-
-  <section id="10.4.3" title="Observer method parameters">
-    <assertion id="a">
-      <text>In addition to the event parameter, observer methods may declare additional parameters, which may declare bindings. These additional parameters are injection points.</text>
-    </assertion>
-  </section>
-
-  <section id="10.4.4" title="Conditional observer methods">
-    <assertion id="a">
-      <text>A conditional observer method may be declared by specifying |notify=IF_EXISTS|.</text>
-    </assertion>
-    
-    <assertion id="b">
-      <text>Beans with scope |@Dependent| may not have conditional observer methods. If a bean with scope |@Dependent| has an observer method declared |notify=IF_EXISTS|, the container automatically detects the problem and treats it as a definition error, as defined in Section 12.4, "Problems detected automatically by the container".</text>
-    </assertion>
-    
-    <assertion id="c">
-      <text>The enumeration |javax.enterprise.event.Notify| identifies the supported values of |notify|.</text>
-    </assertion>
-  </section>
-
-  <section id="10.4.5" title="Transactional observer methods">
-    <assertion id="a">
-      <text>Transactional observer methods are observer methods which receive event notifications during the before or after completion phase of the transaction in which the event was fired. If no transaction is in progress when the event is fired, they are notified at the same time as other observers</text>
-    </assertion>
-
-    <assertion id="b">
-      <text>A before completion observer method is called during the before completion phase of the transaction</text>
-    </assertion>
-
-    <assertion id="c">
-      <text>An after completion observer method is called during the after completion phase of the transaction</text>
-    </assertion>
-
-    <assertion id="d">
-      <text>An after success observer method is called during the after completion phase of the transaction, only when the transaction completes successfully</text>
-    </assertion>
-
-    <assertion id="e">
-      <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" testable="false">
-      <text>The enumeration |javax.enterprise.event.TransactionPhase| identifies the kind of transactional observer method.</text>
-      <note>Should we just sigtest this?</note>
-    </assertion>
-
-    <assertion id="gaa">
-    <text>A transactional observer method may be declared by specifying any value other than |IN_PROGRESS| for |during|.</text>
-    </assertion>
-  </section>
-
-  <section id="10.5" title="Observer notification">
-    <assertion id="aa">
-      <text>When an event is fired by the application, the container must determine the observers for that event according to the observer resolution defined by Section 10.2, "Observer resolution", then then for each observer method, either invoke the observer method immediately or register the observer method for later invocation during the transaction completion phase, using a JTA |Synchronization|.</text>
-    </assertion>
-
-    <assertion id="b" testable="false">
-      <text>The order in which observers are called in not defined, and so portable applications should not rely upon the order in which observers are called.</text>
-      <note>Behavior is not defined.</note>
-    </assertion>
-    
-    <assertion id="bb">
-      <text>If the observer method is a transactional observer method and there is currently a JTA transaction in progress, the container calls the observer method during the appropriate transaction completion phase.  ~Otherwise, the container calls the observer immediately.~</text>
-    </assertion>
-    
-    <assertion id="bc">
-      <text>If the observer method is a transactional observer method and there is currently a JTA transaction in progress, ~the container calls the observer method during the appropriate transaction completion phase.~  Otherwise, the container calls the observer immediately.</text>
-    </assertion>
-    
-    <assertion id="bd">
-      <text>Any observer method called before completion of a transaction may call |setRollbackOnly()| to force a transaction rollback.</text>
-    </assertion>
-    
-    <assertion id="bd" testable="false">
-      <text>An observer method may not directly initiate, commit or rollback JTA transactions.</text>
-      <note>Doesn't specify what happens if they do</note>
-    </assertion>
-
-    <assertion id="ca" testable="false">
-      <text>Observers may throw exceptions. If an observer method is a transactional observer method, any exception is caught and logged by the container.</text>
-      <note>We can't verify what is logged</note>
-    </assertion>
-    
-    <assertion id="cb">
-      <text>Observers may throw exceptions. If an observer method is a transactional observer method, ~any exception is caught and logged by the container.~  Otherwise, the exception aborts processing of the event.</text>
-    </assertion>
-    
-    <assertion id="cc">
-      <text>Observers may throw exceptions. ~If an observer method is a transactional observer method, any exception is caught and logged by the container.  Otherwise, the exception aborts processing of the event.  No other observer methods of that event will be called.~  The |fireEvent()| method rethrows the exception.  ~If the exception is a checked exception, it is wrapped and rethrown as an (unchecked) |ObserverException|~.</text>
-    </assertion>
-    
-    <assertion id="cd">
-      <text>Observers may throw exceptions. ~If an observer method is a transactional observer method, any exception is caught and logged by the container.  Otherwise, the exception aborts processing of the event.  No other observer methods of that event will be called.  The |fireEvent()| method rethrows the exception.~  If the exception is a checked exception, it is wrapped and rethrown as an (unchecked) |ObserverException|.</text>
-    </assertion>
-
-    <assertion id="f">
-      <text>For a custom implementation of the |ObserverMethod| interface defined in Section 11.1.3, "The ObserverMethod interface", the container must call |getNotify()| and |getTransactionPhase()| to determine is the observer method is a conditional or transactional observer method, and |notify()| to invoke the method.</text>
-    </assertion>
-  </section>
-
-  <section id="10.5.1" title="Observer method invocation context">
-    <assertion id="ba">
-      <text>If the observer method is a before completion transactional observer method, it is called within the context of the transaction that is about to complete and with the same client security context and lifecycle contexts.</text>
-    </assertion>
-
-    <assertion id="c">
-      <text>If the observer method is any other kind of transactional observer method, it is called in an unspecified transaction context, but with the same client security context and lifecycle contexts as the transaction that just completed.</text>
-    </assertion>
-
-    <assertion id="da">
-      <text>If an observer method is not a before completion transactional method, and not any other kind of transactional observer method, then the observer method is called in the same transaction context, client security context and lifecycle contexts as the invocation of |Event.fire()| or |BeanManager.fireEvent()|.</text>
-    </assertion>
-
-    <assertion id="e">
-      <text>The transaction and security contexts for a business method of a session bean also depend upon the transaction attribute and |@RunAs| descriptor, if any.</text>
-    </assertion>
-  </section>
-
-  <section id="11" title="Portable extensions">
-    <assertion id="a" testable="false">
-    <text>A portable extension may integrate with the container by providing its own beans, interceptors and decorators to the container.</text>
-    </assertion>
-
-    <assertion id="b" testable="false">
-      <text>A portable extension may integrate with the container by injecting dependencies into its own objects using the dependency injection service.</text>
-    </assertion>
-
-    <assertion id="c" testable="false">
-      <text>A portable extension may integrate with the container by providing a context implementation for a custom scope.</text>
-    </assertion>
-
-    <assertion id="f" testable="false">
-      <text>Augmenting or overriding the annotation-based metadata with metadata from some other source.</text>
-    </assertion>
-  </section>
-
-  <section id="11.1" title="The Bean interface">
-    <assertion id="aa">
-      <text>Implementations of |Bean| must also implement the inherited operations defined by the |Contextual| interface defined in Section 6.1, "The Contextual interface".</text>
-    </assertion>
-
-    <assertion id="ba">
-      <text>|getTypes()|, |getBindings()|, |getScopeType()|, |getName()| and |getStereotypes()| must return the bean types, bindings, scope type, EL name and stereotypes of the bean, as defined in Chapter 2, Concepts.</text>
-    </assertion>
-    
-    <assertion id="bb">
-      <text>|getBeanClass()| returns the bean class of the managed bean or session bean or of the bean that declares the producer method or field.</text>
-    </assertion>
-    
-    <assertion id="bc">
-      <text>|isPolicy()| must return |true| if the bean is a policy, and |false| otherwise.</text>
-    </assertion>
-
-    <assertion id="bd">
-      <text>|isNullable()| must return |true| if the method |create()| sometimes returns a |null| value, and |false| otherwise, as defined in Section 5.3.4, "Primitive types and null values".</text>
-    </assertion>
-
-    <assertion id="c">
-      <text>|getInjectionPoints()| returns a set of |InjectionPoint| objects, defined in Section 5.6.9, "Injection point metadata", representing injection points of the bean, that will be validated by the container at initialization time.</text>
-    </assertion>
-    
-    <assertion id="f">
-      <text>An instance of |Bean| exists for every enabled bean.</text>
-    </assertion>
-
-    <assertion id="g" testable="false">
-      <text>An application or portable extension may add support for new kinds of beans beyond those defined by the this specification (managed beans, session beans, producer methods and fields, resources and message destinations) by implementing |Bean| and registering beans with the container, using the mechanism defined in Section 11.5.2, "AfterBeanDiscovery event".</text>
-    </assertion>
-  </section>
-
-  <section id="11.1.1" title="The Decorator interface">
-    <assertion id="a">
-      <text>The |Bean| object for a decorator must implement the interface |javax.enterprise.inject.spi.Decorator|.</text>
-    </assertion>
-
-    <assertion id="b">
-      <text>|getDecoratedTypes()| returns the decorated types of the decorator.</text>
-    </assertion>
-
-    <assertion id="c">
-      <text>|getDelegateType()| and |getDelegateBindings()| return the delegate type and bindings of the decorator.</text>
-    </assertion>
-    
-    <assertion id="d">
-      <text>An instance of |Decorator| exists for every enabled decorator.</text>
-    </assertion>
-  </section>
-
-  <section id="11.1.2" title="The Interceptor interface">
-    <assertion id="a">
-      <text>The |Bean| object for an interceptor must implement |javax.enterprise.inject.spi.Interceptor|.</text>
-    </assertion>
-
-    <assertion id="b">
-      <text>|getInterceptorBindingTypes()| returns the interceptor bindings of the interceptor.</text>
-    </assertion>
-
-    <assertion id="c">
-      <text>|intercepts()| returns |true| if the interceptor intercepts callbacks or business methods of the given type, and |false| otherwise.</text>
-    </assertion>
-
-    <assertion id="d">
-      <text>|intercept()| invokes the specified kind of lifecycle callback or business method upon the given instance.</text>
-    </assertion>
-
-    <assertion id="e">
-      <text>An |InterceptionType| identifies the kind of lifecycle callback or business method.</text>
-    </assertion>
-    
-    <assertion id="f">
-      <text>An instance of |Interceptor| exists for every enabled interceptor.</text>
-    </assertion>
-  </section>
-  
-  <section id="11.1.3" title="The ObserverMethod interface">
-    <assertion id="a" testable="false">
-      <text>The interface |javax.enterprise.inject.spi.ObserverMethod| defines everything the container needs to know about an observer method.</text>
-    </assertion>
-    
-    <assertion id="b">
-      <text>|getBean()| returns the bean with the observer method.</text>
-    </assertion>
-    
-    <assertion id="c">
-      <text>|getObservedType()| and |getObservedBindings()| return the observed event type and bindings.</text>
-    </assertion>
-    
-    <assertion id="d">
-      <text>|getNotify()| returns |IF_EXISTS| for a conditional observer and |ALWAYS| otherwise.</text>
-    </assertion>
-    
-    <assertion id="e">
-      <text>|getTransactionPhase()| returns the appropriate transaction phase for a transactional observer method or |IN_PROGRESS| otherwise.</text>
-    </assertion>
-    
-    <assertion id="f">
-      <text>|notify()| calls the observer method, as defined in Section 5.6.8 "Invocation of observer methods".</text>
-    </assertion>
-    
-    <assertion id="g">
-      <text>An instance of |Bean| exists for every observer method of every enabled bean.</text>
-    </assertion>
-  </section>
-  
-  <section id="11.2" title="The Producer and InjectionTarget interfaces">
-    <assertion id="a" testable="false">
-      <text>The interface |javax.enterprise.inject.spi.Producer| provides a generic operation for producing an instance of a type.</text>
-      <note>Statement of intent</note>
-    </assertion>
-
-    <assertion id="ba">
-      <text>For a |Producer| that represents a class, |produce()| calls the constructor annotated |@Initializer| if it exists, or the constructor with no parameters otherwise, as defined in Section 5.6.3, "Injection using the bean constructor".</text>
-    </assertion>
-    
-    <assertion id="bb">
-      <text>For a |Producer| that represents a class, |produce()| calls the constructor annotated |@Initializer| if it exists, or the constructor with no parameters otherwise, as defined in Section 5.6.3, "Injection using the bean constructor".</text>
-    </assertion>
-    
-    <assertion id="c">
-      <text>For a |Producer| that represents a class, |dispose()| does nothing.</text>
-    </assertion>
-    
-    <assertion id="da">
-      <text>For a |Producer| that represents a class, |getInjectionPoints()| returns a set of |InjectionPoint| objects representing all _injected fields_, bean constructor parameters and initializer method parameters.</text>
-    </assertion>
-    
-    <assertion id="db">
-      <text>For a |Producer| that represents a class, |getInjectionPoints()| returns a set of |InjectionPoint| objects representing all injected fields, _bean constructor parameters_ and initializer method parameters.</text>
-    </assertion>
-    
-    <assertion id="dc">
-      <text>For a |Producer| that represents a class, |getInjectionPoints()| returns a set of |InjectionPoint| objects representing all injected fields, bean constructor parameters and _initializer method parameters_.</text>
-    </assertion>
-    
-    <assertion id="ea">
-      <text>For a Producer that represents a producer _method_ or field, |produce()| _calls the producer method on_, or accesses the producer field of, a contextual instance of the most specialized bean that specializes the bean that declares the producer method, as defined in Section 5.6.6, "Invocation of producer or disposer methods".</text>
-    </assertion>
-    
-    <assertion id="eb">
-      <text>For a Producer that represents a producer method or _field_, |produce()| calls the producer method on, _or accesses the producer field of_, a contextual instance of the most specialized bean that specializes the bean that declares the producer method, as defined in Section 5.6.6, "Invocation of producer or disposer methods".</text>
-    </assertion>
-    
-    <assertion id="fa">
-      <text>For a Producer that represents a producer _method_ or field, |dispose()| calls the disposer method, if any, on a contextual instance of the most specialized bean that specializes the bean that declares the disposer method, as defined in Section 5.6.6, "Invocation of producer or disposer methods", or performs any additional required cleanup, if any, to destroy state associated with a resource.</text>
-    </assertion>
-    
-    <assertion id="fb">
-      <text>For a Producer that represents a producer method or _field_, |dispose()| calls the disposer method, if any, on a contextual instance of the most specialized bean that specializes the bean that declares the disposer method, as defined in Section 5.6.6, "Invocation of producer or disposer methods", or performs any additional required cleanup, if any, to destroy state associated with a resource.</text>
-    </assertion>
-    
-    <assertion id="g">
-      <text>For a Producer that represents a producer method, |getInjectionPoints()| returns the set of |InjectionPoint| objects representing all parameters of the producer method.</text>
-    </assertion>
-    
-    <assertion id="h" testable="false">
-      <text>The subinterface |javax.enterprise.inject.spi.InjectionTarget| provides operations for performing dependency injection and lifecycle callbacks on an instance of a type.</text>
-      <note>Statement of intent</note>
-    </assertion>
-    
-    <assertion id="i">
-      <text>|inject()| performs dependency injection upon the given object. First, the container performs Java EE component environment injection according to the semantics required by the Java EE platform specification. Next, it sets the value of all injected fields, and then calls all initializer methods, as defined in Section 5.6.4, "Injection of fields and initializer methods".</text>
-    </assertion>
-    
-    <assertion id="j">
-      <text>|postConstruct()| calls the |@PostConstruct| callback, if it exists, according to the semantics required by the Java EE platform specification.</text>
-    </assertion>
-    
-    <assertion id="k">
-      <text>|preDestroy()| calls the |@PreDestroy| callback, if it exists, according to the semantics required by the Java EE platform specification.</text>
-    </assertion>
-  </section>
-
-  <section id="11.3" title="The BeanManager object">
-    <assertion id="aa">
-      <text>The container provides a built-in bean with bean type |BeanManager|~, scope |@Dependent| and binding |@Current|~.</text>
-    </assertion>
-
-    <assertion id="ab">
-      <text>The container provides a built-in bean with ~bean type |BeanManager|,~ scope |@Dependent|~ and binding |@Current|~.</text>
-    </assertion>
-
-    <assertion id="ac">
-      <text>The container provides a built-in bean with ~bean type |BeanManager|, scope |@Dependent| and~ binding |@Current|.</text>
-    </assertion>
-
-    <assertion id="b">
-      <text>The built-in implementation must be a passivation capable dependency, as defined in Section 6.6.2, "Passivation capable dependencies".</text>
-    </assertion>
-
-    <assertion id="c">
-      <text>Any bean may obtain an instance of |BeanManager| by injecting it.</text>
-    </assertion>
-
-    <assertion id="da">
-      <text>Java EE components may obtain an instance of |BeanManager| from JNDI by looking up the name |java:comp/BeanManager|.</text>
-    </assertion>    
-
-    <assertion id="e">
-      <text>Any operation of |BeanManager| may be called at any time during the execution of the application.</text>
-      <note>This does not appear to be testable</note>
-    </assertion>
-  </section>
-
-  <section id="11.3.1" title="Obtaining a contextual reference for a bean">
-    <assertion id="a">
-      <text>The method |BeanManager.getReference()| returns a contextual reference for a given bean and bean type, as defined in Section 6.5.3, "Contextual reference for a bean".</text>
-    </assertion>
-
-    <assertion id="b">
-      <text>The first parameter is the |Bean| object representing the bean. The second parameter represents the bean type that must be implemented by any client proxy that is returned.</text>
-    </assertion>
-  </section>
-
-  <section id="11.3.2" title="Obtaining an injectable reference">
-    <assertion id="a">
-      <text>The method |BeanManager.getInjectableReference()| returns an injectable reference for a given injection point, as defined in Section 5.6.1, "Injectable references".</text>
-    </assertion>
-    
-    <assertion id="b">
-      <text>If the |InjectionPoint| represents a decorator delegate injection point, |getInjectableReference()| returns a delegate, as defined in Section 8.1.2, "Decorator delegate injection points".</text>
-    </assertion>
-    
-    <assertion id="bb">
-      <text>If typesafe resolution results in an unsatisfied dependency, the container must throw an |UnsatisfiedResolutionException|.</text>
-    </assertion>
-    
-    <assertion id="bc">
-      <text>If typesafe resolution results in an unresolvable ambiguous dependency, the container must throw an |AmbiguousResolutionException|.</text>
-    </assertion>
-
-    <assertion id="c">
-      <text>Implementations of |Bean| usually maintain a reference to an instance of |BeanManager|. When the |Bean| implementation performs dependency injection, it must obtain the contextual instances to inject by calling |BeanManager.getInjectableReference()|, passing an instance of  |InjectionPoint| that represents the injection point and the instance of |CreationalContext| that was passed to |Bean.create()|.</text>
-      <note>This cannot be well tested at the moment.</note>
-    </assertion>
-  </section>
-  
-  <section id="11.3.3" title="Obtaining a CreationalContext">
-    <assertion id="a">
-      <text>An instance of |CreationalContext| may be obtained by calling |BeanManager.createCreationalContext()|.</text>
-    </assertion>
-  </section>
-
-  <section id="11.3.4" title="Obtaining a Bean by type">
-    <assertion id="aa">
-      <text>The method |BeanManager.getBeans()| returns the set of beans which match the given required type and bindings and are accessible to the class into which the |BeanManager| was injected, or to the Java EE component from whose JNDI environment namespace the |BeanManager| was obtained, according to the rules of typesafe resolution defined in Section 5.3, "Typesafe resolution".</text>
-    </assertion>
-
-    <assertion id="b">
-      <text>The first parameter is a required bean type. The remaining parameters are required bindings.</text>
-    </assertion>
-
-    <assertion id="c">
-      <text>If no bindings are passed to |getBeans()|, the default binding |@Current| is assumed.</text>
-    </assertion>
-
-    <assertion id="da">
-      <text>If the given type represents a type variable, an |IllegalArgumentException| is thrown.</text>
-    </assertion>
-
-    <assertion id="e">
-      <text>If two instances of the same binding type are given, an |IllegalArgumentException| is thrown.</text>
-    </assertion>
-
-    <assertion id="f">
-      <text>If an instance of an annotation that is not a binding type is given, an |IllegalArgumentException| is thrown.</text>
-    </assertion>
-  </section>
-
-  <section id="11.3.5" title="Obtaining a Bean by name">
-    <assertion id="aa">
-      <text>The method |BeanManager.getBeans()| which accepts a string returns the set of beans which match the given EL name and are accessible to the class into which the |BeanManager| was injected, or to the Java EE component from whose JNDI environment namespace the |BeanManager| was obtained, according to the rules of EL name resolution defined in Section 5.4, "EL name resolution".</text>
-    </assertion>
-
-    <assertion id="b">
-      <text>The parameter is an EL name.</text>
-    </assertion>
-  </section>
-
-  <section id="11.3.6" title="Obtaining the most specialized bean">
-    <assertion id="a">
-      <text>The method |BeanManager.getMostSpecializedBean()| returns the |Bean| object representing the most specialized enabled bean that specializes the given bean, as defined in Section 4.3.2, "Most specialized enabled bean for a bean".</text>
-    </assertion>
-  </section>
-  
-  <section id="11.3.7" title="Obtaining a passivation capable bean by identifier">
-    <assertion id="a">
-      <text>The method |BeanManager.getPassivationCapableBean()| returns the |PassivationCapableBean| with the given identifier.</text>
-    </assertion>
-  </section>
-  
-  <section id="11.3.8" title="Resolving an ambiguous dependency">
-    <assertion id="a">
-      <text>The method |BeanManager.resolve()| applies the ambiguous dependency resolution rules defined in Section 5.3.1, "Unsatisfied and ambiguous dependencies" to a set of |Beans|.</text>
-    </assertion>
-    
-    <assertion id="b">
-      <text>If the ambiguous dependency resolution rules fail, the container must throw an |AmbiguousResolutionException|.</text>
-    </assertion>
-  </section>
-  
-  <section id="11.3.9" title="Validating a dependency">
-    <assertion id="a">
-      <text>The |BeanManager.validate()| operation validates a dependency.</text>
-      <note>Statement of intent</note>
-    </assertion>
-
-    <assertion id="b">
-      <text>The method |validate()| validates the dependency and throws an |InjectionException| if there is a deployment problem (for example, an unsatisfied or unresolvable ambiguous dependency) associated with the injection point.</text>
-    </assertion>
-  </section>
-  
-  <section id="11.3.10" title="Firing an event">
-    <assertion id="a">
-      <text>The method |BeanManager.fireEvent()| fires an event and notifies observers, according to Section 10.5, "Observer notification".</text>
-    </assertion>
-    
-    <assertion id="b">
-      <text>The first argument is the event object.  The remaining parameters are event bindings.</text>
-    </assertion>
-    
-    <assertion id="c">
-      <text>If the runtime type of the event object contains a type variable, an |IllegalArgumentException| is thrown.</text>
-    </assertion>
-    
-    <assertion id="d">
-      <text>If two instances of the same binding type are given, an |IllegalArgumentException| is thrown.</text>
-    </assertion>
-    
-    <assertion id="e">
-      <text>If an instance of an annotation that is not a binding type is given, an |IllegalArgumentException| is thrown.</text>
-    </assertion>
-  </section>
-  
-  <section id="11.3.11" title="Observer method resolution">
-    <assertion id="a">
-      <text>The method |BeanManager.resolveObserverMethods()| resolves observer methods for an event according to the rules of observer resolution defined in Section 10.2, "Observer resolution".</text>
-    </assertion>
-
-    <assertion id="b">
-      <text>The first parameter of |resolveObserverMethods()| is the event object. The remaining parameters are event bindings.</text>
-    </assertion>
-    
-    <assertion id="c">
-      <text>If the runtime type of the event object contains a type variable, an |IllegalArgumentException| is thrown.</text>
-    </assertion>
-    
-    <assertion id="d">
-      <text>If two instances of the same binding type are given, an |IllegalArgumentException| is thrown.</text>
-    </assertion>
-    
-    <assertion id="e">
-      <text>If an instance of an annotation that is not a binding type is given, an |IllegalArgumentException| is thrown.</text>
-    </assertion>
-  </section>
-  
-  <section id="11.3.12" title="Decorator resolution">
-    <assertion id="a">
-      <text>The method |BeanManager.resolveDecorators()| returns the ordered list of decorators for a set of bean types and a set of bindings, as defined in Section 8.3, "Decorator resolution".</text>
-    </assertion>
-    
-    <assertion id="b">
-      <text>The first argument is the set of bean types of the decorated bean. The annotations are bindings declared by the decorated bean.</text>
-    </assertion>
-    
-    <assertion id="c">
-      <text>If two instances of the same binding type are given, an |IllegalArgumentException| is thrown.</text>
-    </assertion>
-    
-    <assertion id="d">
-      <text>If an instance of an annotation that is not a binding type is given, an |IllegalArgumentException| is thrown.</text>
-    </assertion>
-    
-    <assertion id="e">
-      <text>If the set of bean types is empty, an |IllegalArgumentException| is thrown.</text>
-    </assertion>
-  </section>
-  
-  <section id="11.3.13" title="Interceptor resolution">
-    <assertion id="a">
-      <text>The method |BeanManager.resolveInterceptors()| returns the ordered list of interceptors for a set of interceptor bindings, as defined in Section 9.5, "Interceptor resolution".</text>
-    </assertion>
-    
-    <assertion id="b">
-      <text>If two instances of the same interceptor binding type are given, an |IllegalArgumentException| is thrown.</text>
-    </assertion>
-    
-    <assertion id="c">
-      <text>If no interceptor binding type instance is given, an |IllegalArgumentException| is thrown.</text>
-    </assertion>
-    
-    <assertion id="d">
-      <text>If an instance of an annotation that is not an interceptor binding type is given, an |IllegalArgumentException| is thrown.</text>
-    </assertion>
-  </section>
-  
-  <section id="11.3.14" title="Determining if an annotation is a binding type, scope type, stereotype or interceptor binding type">
-    <assertion id="aa">
-      <text>A portable extension may test an annotation to determine if it is a _binding type_, scope type, stereotype or interceptor binding type, obtain the set of meta-annotations declared by a stereotype or interceptor binding type, or obtain a |ScopeType| representing a scope type.</text>
-    </assertion>
-
-    <assertion id="ab">
-      <text>A portable extension may test an annotation to determine if it is a binding type, _scope type_, stereotype or interceptor binding type, obtain the set of meta-annotations declared by a stereotype or interceptor binding type, or obtain a |ScopeType| representing a scope type.</text>
-    </assertion>
-
-    <assertion id="ac">
-      <text>A portable extension may test an annotation to determine if it is a binding type, scope type, _stereotype_ or interceptor binding type, obtain the set of meta-annotations declared by a stereotype or interceptor binding type, or obtain a |ScopeType| representing a scope type.</text>
-    </assertion>
-
-    <assertion id="ad">
-      <text>A portable extension may test an annotation to determine if it is a binding type, scope type, stereotype or _interceptor binding type_, obtain the set of meta-annotations declared by a stereotype or interceptor binding type, or obtain a |ScopeType| representing a scope type.</text>
-    </assertion>
-
-    <assertion id="ae">
-      <text>A portable extension may test an annotation to determine if it is a binding type, scope type, stereotype or interceptor binding type, obtain the set of meta-annotations declared by a _stereotype_ or interceptor binding type, or obtain a |ScopeType| representing a scope type.</text>
-    </assertion>
-
-    <assertion id="af">
-      <text>A portable extension may test an annotation to determine if it is a binding type, scope type, stereotype or interceptor binding type, obtain the set of meta-annotations declared by a stereotype or _interceptor binding type_, or obtain a |ScopeType| representing a scope type.</text>
-    </assertion>
-
-    <assertion id="ag">
-      <text>A portable extension may test an annotation to determine if it is a binding type, scope type, stereotype or interceptor binding type, obtain the set of meta-annotations declared by a stereotype or interceptor binding type, or obtain a _|ScopeType| representing a scope type_.</text>
-    </assertion>
-  </section>
-  
-  <section id="11.3.15" title="Obtaining the active Context for a scope">
-    <assertion id="a">
-      <text>The method |BeanManager.getContext()| retrieves an active context object associated with the a given scope, as defined in Section 6.5.1, "The active context object for a scope".</text>
-    </assertion>
-  </section>
-  
-  <section id="11.3.16" title="Obtaining the ELResolver">
-    <assertion id="a">
-      <text>The method |BeanManager.getELResolver()| returns the |javax.el.ELResolver| specified in Section 5.8, "Integration with Unified EL".</text>
-    </assertion>
-  </section>
-  
-  <section id="11.3.17" title="Obtaining an AnnotatedType for a class">
-    <assertion id="a">
-      <text>The method |BeanManager.createAnnotatedType()| returns an |AnnotatedType| for the given Java class.</text>
-    </assertion>
-  </section>
-  
-  <section id="11.3.18" title="Obtaining an InjectionTarget">
-    <assertion id="aa">
-      <text>The method |BeanManager.createInjectionTarget()| returns a container provided implementation of |InjectionTarget| for a given |AnnotatedType| ~or throws an |IllegalArgumentException| if there is a definition error associated with any injection point of the type~.</text>
-    </assertion>
-
-    <assertion id="ab">
-      <text>The method |BeanManager.createInjectionTarget()| ~returns a container provided implementation of |InjectionTarget| for a given |AnnotatedType|~ or throws an |IllegalArgumentException| if there is a definition error associated with any injection point of the type.</text>
-    </assertion>
-  </section>
-
-  <section id="11.4" title="Alternative metadata sources">
-    <assertion id="a" testable="false">
-      <text>The interfaces |AnnotatedType|, |AnnotatedField|, |AnnotatedMethod|, |AnnotatedConstructor| and |AnnotatedParameter| in the package |javax.enterprise.inject.spi| allow a portable extension to specify metadata that overrides the annotations that exist on a bean class. The portable extension is responsible for implementing the interfaces, thereby exposing the metadata to the container.</text>
-      <note>Statement of intent</note>
-    </assertion>
-
-    <assertion id="b" testable="false">
-      <text>The interface |javax.enterprise.inject.spi.Annotated| exposes the overriding annotations and type declarations.</text>
-      <note>Statement of intent</note>
-      
-    </assertion>
-    
-    <assertion id="c">
-      <text>|getBaseType()| returns the type of the program element.</text>
-    </assertion>
-    
-    <assertion id="d">
-      <text>|getTypeClosure()| returns all types to which the base type should be considered assignable.</text>
-    </assertion>
-    
-    <assertion id="e">
-      <text>|getAnnotation()| returns the program element annotation of the given annotation type, or a null value.</text>
-    </assertion>
-    
-    <assertion id="f">
-      <text>|getAnnotations()| returns all annotations of the program element.</text>
-    </assertion>
-    
-    <assertion id="g">
-      <text>|isAnnotationPresent()| returns true if the program element has an annotation of the given annotation type, or false otherwise.</text>
-    </assertion>
-    
-    <assertion id="h">
-      <text>The container must use the operations of |Annotated| and its subinterfaces to discover program element types and annotations, instead of directly calling the Java Reflection API. In particular, the container must call |Annotated.getBaseType()| to determine the type of an injection point, event parameter or disposed parameter, call |Annotated.getTypeClosure()| to determine the bean types of any kind of bean, call |Annotated.getAnnotations()| to determine the scope, bindings, stereotypes and interceptor bindings of a bean, call |Annotated.isAnnotationPresent()| and |Annotated.getAnnotation()| to read any bean annotations defined by this specification, and call |AnnotatedType.getConstructors()|, |AnnotatedType.getMethods()| and |AnnotatedType.getFields()| to determine the members of a bean class.</text>
-    </assertion>
-  </section>
-
-  <section id="11.5" title="Container lifecycle events">
-    <assertion id="a" testable="false">
-      <text>During the application initialization process, the container fires a series of events, allowing portable extensions to integrate with the container initialization process defined in Section 12.2, "Application initialization lifecycle".</text>
-      <note>Generic statement</note>
-    </assertion>
-
-    <assertion id="b">
-      <text>Observers of these events must be service providers of the service |javax.enterprise.inject.spi.Extension| declared in |META-INF/services|.</text>
-    </assertion>
-
-    <assertion id="c">
-      <text>The container instantiates a single instance of each service provider at the beginning of the application initialization process and maintains a reference to it until the application shuts down.</text>
-    </assertion>
-    
-    <assertion id="d">
-      <text>Service providers may have observer methods, which may observe container initialization events and obtain an injected |BeanManager| reference.</text>
-    </assertion>
-    
-    <assertion id="e">
-      <text>For each service provider, the container must provide a bean of scope |@ApplicationScoped| and binding |@Current|, supporting injection of a reference to the service provider instance. The bean types of this bean include the class of the service
-provider and all superclases and interfaces.</text>
-    </assertion>
-  </section>
-
-  <section id="11.5.1" title="BeforeBeanDiscovery event">
-    <assertion id="a">
-      <text>The container must fire an event before it begins the bean discovery process. The event object must be of type |javax.enterprise.inject.spi.BeforeBeanDiscovery|.</text>
-    </assertion>
-    
-    <assertion id="ab">
-      <text>|addBindingType()| declares an annotation type as a binding type.</text>
-    </assertion>
-    
-    <assertion id="ac">
-      <text>|addScopeType()| declares an annotation type as a scope type.</text>
-    </assertion>
-    
-    <assertion id="ad">
-      <text>|addStereotype()| declares an annotation type as a stereotype, and specifies its meta-annotations.</text>
-    </assertion>
-    
-    <assertion id="ae">
-      <text>|addInterceptorBindingType()| declares an annotation type as an interceptor binding type, and specifies its meta-annotations.</text>
-    </assertion>
-    
-    <assertion id="af">
-      <text>|addAnnotatedType()| adds a given |AnnotatedType| to the set of types which will be scanned during bean discovery.</text>
-    </assertion>
-
-    <assertion id="ag">
-      <text>If any observer method of the |BeforeBeanDiscovery| event throws an exception, the exception is treated as a definition error by the container.</text>
-    </assertion>
-  </section>
-
-  <section id="11.5.2" title="AfterBeanDiscovery event">
-    <assertion id="a">
-      <text>The container must fire a second event when it has fully completed the bean discovery process, validated that there are no definition errors relating to the discovered beans, and registered |Bean| and |Observer| objects for the discovered beans, but before detecting deployment problems.  The event object must be of type |javax.enterprise.inject.spi.AfterBeanDiscovery|.</text>
-    </assertion>
-    
-    <assertion id="ca">
-      <text>|addDefinitionError()| registers a definition error with the container, causing the container to abort deployment after all observers have been notified.</text>
-    </assertion>
-
-    <assertion id="d">
-      <text>|addBean()| fires an event of type |ProcessBean| containing the given |Bean| and then registers the |Bean| with the container, thereby making it available for injection into other beans. The given |Bean| may implement |Interceptor| or |Decorator|.</text>
-    </assertion>
-    
-    <assertion id="e">
-      <text>|addObserverMethod()| fires an event of type |ProcessObserverMethod| containing the given |ObserverMethod| and then registers the |ObserverMethod| with the container, thereby making it available for event notifications.</text>
-    </assertion>
-    
-    <assertion id="f">
-      <text>|addContext()| registers a custom |Context| object with the container.
-A portable extension may take advantage of this event to register beans, interceptors, decorators, observer methods and custom context objects with the container.</text>
-    </assertion>
-    
-    <assertion id="g">
-      <text>If any observer method of the |AfterBeanDiscovery| event throws an exception, the exception is treated as a definition error by the container.</text>
-    </assertion>
-  </section>
-
-  <section id="11.5.3" title="AfterDeploymentValidation event">
-    <assertion id="a">
-      <text>The container must fire a third event after it has validated that there are no deployment problems and before creating contexts or processing requests. The event object must be of type |javax.enterprise.inject.spi.AfterDeploymentValidation|.</text>
-    </assertion>
-
-    <assertion id="b">
-      <text>|addDeploymentProblem()| registers a deployment problem with the container, causing the container to abort deployment after all observers have been notified.</text>
-    </assertion>
-
-    <assertion id="c">
-      <text>If any observer method of the |AfterDeploymentValidation| event throws an exception, the exception is treated as a deployment problem by the container.</text>
-    </assertion>
-
-    <assertion id="d">
-      <text>The container must not allow any request to be processed by the deployment until all observers of this event return.</text>
-    </assertion>
-  </section>
-
-  <section id="11.5.4" title="BeforeShutdown event">
-    <assertion id="a">
-      <text>The container must fire a final event after it has finished processing requests and destroyed all contexts. The event object must be of type |javax.enterprise.inject.spi.BeforeShutdown|.</text>
-    </assertion>
-
-    <assertion id="ba">
-      <text>If any observer method of the |BeforeShutdown| event throws an exception, the exception is ignored by the container.</text>
-    </assertion>
-  </section>
-
-  <section id="11.5.5" title="ProcessAnnotatedType event">
-    <assertion id="a">
-      <text>The container must fire an event for each Java class it discovers, before it reads the declared annotations.  The event object must be of type |javax.enterprise.inject.spi.ProcessAnnotatedType&lt;X&gt;|, where |X| is the class.</text>
-    </assertion>
-
-    <assertion id="ba">
-      <text>|getAnnotatedType()| returns the |AnnotatedType| object that will be used by the container to read the declared annotations.</text>
-    </assertion>
-    
-    <assertion id="bb">
-      <text>|setAnnotatedType()| replaces the |AnnotatedType|.</text>
-    </assertion>
-    
-    <assertion id="bc">
-      <text>|veto()| forces the container to ignore the type.</text>
-    </assertion>
-
-    <assertion id="ca">
-      <text>Any observer of this event is permitted to wrap and/or replace the |AnnotatedType|.  The container must use the final value of this property, after all observers have been called, to discover the types and read the annotations of the program elements.</text>
-    </assertion>
-    
-    <assertion id="e">
-      <text>If any observer method of a |ProcessAnnotatedType| event throws an exception, the exception is treated as a definition error by the container.</text>
-    </assertion>
-  </section>
-
-  <section id="11.5.6" title="ProcessInjectionTarget event">
-    <assertion id="a">
-      <text>The container must fire an event for each managed bean, session bean, Java EE component class supporting injection, producer method or producer field it discovers.  The event object must be of type |javax.enterprise.inject.spi.ProcessInjectionTarget&lt;X&gt;|, where |X| is the managed bean class, session bean class or Java EE component class supporting injection.</text>
-    </assertion>
-
-    <assertion id="ab">
-    <text>|getAnnotatedType()| returns the |AnnotatedType| representing the managed bean class, session bean or other Java EE component class supporting injection.</text>
-    </assertion>
-    
-    <assertion id="ba">
-      <text>|getInjectionTarget()| returns the |InjectionTarget| object that will be used by the container to perform injection.</text>
-    </assertion>
-    
-    <assertion id="bb">
-      <text>|setInjectionTarget()| replaces the |InjectionTarget|.</text>
-    </assertion>
-
-    <assertion id="da">
-      <text>|addDefinitionError()| registers a definition error with the container, causing the container to abort deployment after bean discovery is complete.</text>
-    </assertion>
-
-    <assertion id="e">
-      <text>Any observer of this event is permitted to wrap and/or replace the |InjectionTarget|.  The container must use the final value of this property, after all observers have been called, whenever it performs injection upon the managed bean, session bean or other Java EE component class supporting injection.</text>
-    </assertion>
-    
-    <assertion id="f">
-      <text>If any observer method of a |ProcessInjectionTarget| event throws an exception, the exception is treated as a definition error by the container.</text>
-    </assertion>
-  </section>
-  
-  <section id="11.5.7" title="ProcessProducer event">
-    <assertion id="a">
-      <text>The container must fire an event for each producer method or field, including resources.</text>
-    </assertion>
-    
-    <assertion id="b">
-      <text>The event object must be of type |javax.enterprise.inject.spi.ProcessProducer&lt;X, T&gt;|, where X is bean class and T is the return type of the producer method or the type of the producer field.</text>
-    </assertion>
-
-    <assertion id="c">
-      <text>|getAnnotatedMember()| returns the |AnnotatedField| representing the producer field or the |AnnotatedMethod| representing the producer method.</text>
-    </assertion>
-    
-    <assertion id="d">
-      <text>|getProducer()| returns the |Producer| object that will be used by the container to call the producer method or read the producer field.</text>
-    </assertion>
-    
-    <assertion id="e">
-      <text>|setProducer()| replaces the |Producer|.</text>
-    </assertion>
-    
-    <assertion id="f">
-      <text>|addDefinitionError()| registers a definition error with the container, causing the container to abort deployment after bean discovery is complete.</text>
-    </assertion>
-    
-    <assertion id="g">
-      <text>Any observer of this event is permitted to wrap and/or replace the |Producer|. The container must use the final value of this property, after all observers have been called, whenever it calls the producer or disposer.</text>
-    </assertion>
-    
-    <assertion id="h">
-      <text>If any observer method of a |ProcessProducer| event throws an exception, the exception is treated as a definition error by the container.</text>
-    </assertion>
-  </section>
-
-  <section id="11.5.8" title="ProcessBean event">
-    <assertion id="aa">
-    <text>The container must fire an event for each bean it discovers, before registering the |Bean| object.  The event object in the package |javax.enterprise.inject.spi| depends upon what kind of bean was discovered.</text>
-    </assertion>
-
-    <assertion id="ba">
-      <text>For a managed bean with bean class |X|, the container must raise an event of type |ProcessManagedBean&lt;X&gt;|.</text>
-    </assertion>
-
-    <assertion id="c">
-      <text>For a session bean with bean class |X|, the container must raise an event of type |ProcessSessionBean&lt;X&gt;|.</text>
-    </assertion>
-
-    <assertion id="ea">
-      <text>For a producer method if a bean class |X| with method return type |T|, the container must raise an event of type |ProcessProducerMethod&lt;X, T&gt;|.</text>
-    </assertion>
-    
-    <assertion id="eb">
-      <text>For a producer field of a bean class |X| with field type |T|, the container must raise an event of type |ProcessProducerField&lt;X&gt;|.</text>
-    </assertion>
-    
-    <assertion id="ec">
-      <text>Resources are considered to be producer fields.</text>
-    </assertion>
-    
-    <assertion id="ed">
-      <text>The interface |javax.enterprise.inject.spi.ProcessBean| is a supertype of all these event types.</text>
-    </assertion>
-
-    <assertion id="ef">
-      <text>|getAnnotated()| returns the |AnnotatedType| representing the bean class, the |AnnotatedMethod| representing the producer method, or the |AnnotatedField| representing the producer field.</text>
-    </assertion>
-
-    <assertion id="fa">
-      <text>|getBean()| returns the |Bean| object that is about to be registered.  The |Bean| may implement |Interceptor| or |Decorator|.</text>
-    </assertion>
-
-    <assertion id="h">
-      <text>|addDefinitionError()| registers a definition error with the container, causing the container to abort deployment after bean discovery is complete.</text>
-    </assertion>
-    
-    <assertion id="hb">
-      <text>|getEjbName()| returns the EJB name of the session bean.</text>
-    </assertion>
-    
-    <assertion id="hc">
-      <text>|getSessionBeanType()| returns a |javax.enterprise.inject.spi.SessionBeanType| representing the kind of session bean.</text>
-    </assertion>
-    
-    <assertion id="hd">
-      <text>If any observer method of a |ProcessBean| event throws an exception, the exception is treated as a definition error by the container.</text>
-    </assertion>
-  </section>
-
-  <section id="11.5.9" title="ProcessObserverMethod event">
-    <assertion id="aa">
-    <text>The container must fire an event for each observer method.  The event object must be of type |javax.enterprise.inject.spi.ProcessObserverMethod&lt;X, T&gt;| where |X| is bean class and |T| is the observed event type of the observer method.</text>
-    </assertion>
-
-    <assertion id="ab">
-    <text>|getAnnotatedMethod()| returns the |AnnotatedMethod| representing the observer method.</text>
-    </assertion>
-    
-    <assertion id="ba">
-      <text>|getObserverMethod()| returns the |ObserverMethod| object that will be used by the container to call the observer method.</text>
-    </assertion>
-
-    <assertion id="da">
-      <text>|addDefinitionError()| registers a definition error with the container, causing the container to abort deployment after bean discovery is complete.</text>
-    </assertion>
-    
-    <assertion id="db">
-      <text>If any observer method of a |ProcessObserverMethod| event throws an exception, the exception is treated as a definition error by the container.</text>
-    </assertion>
-  </section>
-
-  <section id="12" title="Packaging and Deployment">
-
-  </section>
-
-  <section id="12.1" title="Bean deployment archives">
-    <assertion id="aa" testable="false">
-      <text>Bean classes must be deployed in bean deployment archives.</text>
-    </assertion>
-    
-    <assertion id="a" testable="false">
-      <text>A library jar, EJB jar or rar archive is a bean deployment archive if it has a file named |beans.xml| in the |META-INF| directory. The |WEB-INF/classes| directory of a war is a bean deployment archive if there is a file named |beans.xml| in the |WEBINF| directory of the war. A directory in the JVM classpath is a bean deployment archive if it has a file named |beans.xml| in the |META-INF| directory.</text>
-      <note>Covered by b* assertions</note>
-    </assertion>
-
-    <assertion id="ba">
-      <text>The container searches for beans in bean deployment archives in the application classpath.</text>
-      <note>Check for a jar installed as a library</note>
-    </assertion>
-    
-    <group>
-      <text>In an application deployed as an ear, the container searches every bean deployment archive belonging to the ear, including bean deployment archives contained inside wars. The bean deployment archives might be library jars, EJB jars, rars or war |WEB-INF/classes| directories.</text>
-      <assertion id="bba">
-         <text>Check an EJB jar in an EAR</text>
-      </assertion>
-      <assertion id="bbb">
-         <text>Check a library in an EAR</text>
-      </assertion>
-      <assertion id="bbc">
-         <text>Check a library in a WAR</text>
-      </assertion>
-      <assertion id="bbd">
-         <text>Check a rar</text>
-      </assertion>
-      <assertion id="bbe">
-         <text>Check a war in an ear</text>
-      </assertion>
-    </group>
-    
-    <group>
-      <text>In an application deployed as a war, the container searches every bean deployment archive contained in the war. The bean deployment archives might be library jars or the |WEB-INF/classes| directory.</text>
-      <assertion id="bca">
-         <text>Check classes in the war</text>
-      </assertion>
-      <assertion id="bca">
-         <text>Check libraries in the war</text>
-      </assertion>
-    </group>
-    
-    <group>
-      <text>An embeddable EJB container searches each bean deployment archive in the JVM classpath that is listed in the value of the embeddable container initialization property |javax.ejb.embeddable.modules|, or every bean deployment archive in the JVM classpath if the property is not specified. The bean deployment archives might be directories, library jars or EJB jars.</text>
-      <assertion id="bda">
-         <text>Check modules specified by |javax.ejb.embeddable.modules|</text>
-      </assertion>
-      <assertion id="bdb">
-         <text>Check libraries</text>
-      </assertion>
-      <assertion id="bdc">
-         <text>Check directories</text>
-      </assertion>
-      <assertion id="bda">
-         <text>Check ejb jars</text>
-      </assertion>
-    </group>   
-    
-    
-    <assertion id="be">
-      <text>When searching for beans, the container considers any Java class in any bean deployment archive, and any |ejb-jar.xml| file in the metadata directory of any EJB bean deployment archive.</text>
-    </assertion>
-    
-    <assertion id="ca">
-      <text>If a bean is deployed in an archive or directory that does not contain a file named |beans.xml| in the metadata directory, it will not be discovered by the container.</text>
-    </assertion>
-    
-    <assertion id="d" testable="false">
-      <text>If a bean class is deployed in two different bean deployment archives, non-portable behaviour results.  Portable applications must deploy each bean class in exactly one bean deployment archive.</text>
-      <note>Describes undefined behavior</note>
-    </assertion>
-  </section>
-
-  <section id="12.2" title="Application initialization lifecycle">
-    <assertion id="a" testable="false">
-      <text>When an application is started, the container performs the following steps.</text>
-      <note>Description</note>
-    </assertion>
-
-    <assertion id="b">
-      <text>First, the container must search for service providers for the service |javax.enterprise.inject.spi.Extension| defined in Section 11.5, "Container lifecycle events", instantiate a single instance of each service provider, and search the service provider class for observer methods of initialization events.</text>
-    </assertion>
-
-    <assertion id="c">
-      <text>Next, the container must fire an event of type |BeforeBeanDiscovery|, as defined in Section 11.5.1, "BeforeBeanDiscovery event".</text>
-    </assertion>
-
-    <assertion id="d">
-      <text>Next, the container must perform bean discovery, and abort initialization of the application if any definition errors exist, as defined in Section 12.4, "Problems detected automatically by the container".</text>
-    </assertion>
-
-    <assertion id="e">
-      <text>Next, the container must fire an event of type |AfterBeanDiscovery|, as defined in Section 11.5.2, "AfterBeanDiscovery event", and abort initialization of the application if any observer registers a definition error.</text>
-    </assertion>
-
-    <assertion id="f">
-      <text>Next, the container must detect deployment problems by validating bean dependencies and specialization and abort initialization of the application if any deployment problems exist, as defined in Section 12.4, "Problems detected automatically by the container".</text>
-    </assertion>
-
-    <assertion id="g">
-      <text>Next, the container must fire an event of type |AfterDeploymentValidation|, as defined in Section 11.5.3, "AfterDeploymentValidation event", and abort initialization of the application if any observer registers a deployment problem.</text>
-    </assertion>
-
-    <assertion id="h">
-      <text>Finally, the container begins directing requests to the application.</text>
-    </assertion>
-  </section>
-
-  <section id="12.3" title="Bean discovery">
-    <assertion id="a">
-      <text>The container automatically discovers managed beans (according to the rules of Section 3.2.1, "Which Java classes are managed beans?") and session beans in bean deployment archives and searches the bean classes for producer methods, producer fields, disposal methods and observer methods.</text>
-    </assertion>
-
-    <assertion id="b">
-      <text>For each Java class in any bean deployment archive, the container must create an |AnnotatedType| representing the class and fire an event of type |ProcessAnnotatedType|, as defined in Section 11.5.5, "ProcessAnnotatedType event".</text>
-    </assertion>
-
-    <assertion id="c">
-      <text>For each Java class in any bean deployment archive, the container must inspect the class metadata to determine if it is a bean or other Java EE component class supporting injection, or if it declares event mappings.</text>
-    </assertion>
-
-    <assertion id="d">
-      <text>For each Java class in any bean deployment archive, the container must detect definition errors by validating the class and its metadata.</text>
-    </assertion>
-
-    <assertion id="e">
-      <text>For each Java class in any bean deployment archive, the container must, if the class is a managed bean, session bean, producer method or field, or other Java EE component class supporting injection, create an |InjectionTarget| for the class, as defined in Section 11.2, "The Producer and InjectionTarget interfaces", and fire an event of type |ProcessInjectionTarget|, as defined in Section 11.5.6, "ProcessInjectionTarget event"</text>
-    </assertion>
-
-    <assertion id="fa">
-      <text>For each Java class in any bean deployment archive, the container must, if the class is a bean, create a |Bean| object that implements the rules defined in Section 7.3.1, "Lifecycle of managed beans", Section 7.3.2, "Lifecycle of stateful session beans" or Section 7.3.3, "Lifecycle of stateless session and singleton beans", and fire an event which is a subtype of |ProcessBean|, as defined in Section 11.5.8, "ProcessBean event".</text>
-    </assertion>
-    
-    <assertion id="fb">
-      <text>For each session bean declared in |ejb-jar.xml| in each EJB bean deployment archive the container must create a |Bean| object that implements the rules defined in Section 7.3.2, "Lifecycle of stateful session beans" or Section 7.3.3, "Lifecycle of  stateless session and singleton beans", and fire an event of type |ProcessSessionBean|, as defined in Section 11.5.8, "ProcessBean event".</text>
-    </assertion>
-    
-    <assertion id="fc">
-      <text>For each bean, the container must search the clas for producer methods and fields, including resources, and for each producer method or field create a |Producer|, as defined in Section 11.2, "The Producer and InjectionTarget interfaces", and fire an event of type |ProcessProducer|, as defined in Section 11.5.7, "ProcessProducer event", and then
-create a |Bean| object that implements the rules defined in Section 7.3.4, "Lifecycle of  producer methods", Section 7.3.5, "Lifecycle of producer fields" or Section 7.3.6, "Lifecycle of resources", and fire an event which is a subtype of |ProcessBean|, as defined  in Section 11.5.8, "ProcessBean event".</text>
-    </assertion>
-    
-    <assertion id="fd">
-      <text>For each bean, the container must search the class for observer methods, and for each observer method create an |ObserverMethod| object, as defined in Section 11.1.3, "The ObserverMethod interface" and fire an event of type |ProcessObserverMethod|, as defined in Section 11.5.9, "ProcessObserverMethod event".</text>
-    </assertion>
-
-    <assertion id="ka">
-      <text>The container determines which policies, interceptors and decorators are enabled, according to the rules defined in Section 5.2, "Policy enablement", Section 9.4, "Interceptor enablement and ordering" and Section 8.2, "Decorator enablement and ordering", taking into account any |&lt;enable&gt;|, |&lt;interceptors&gt;| and |&lt;Decorators&gt;| declarations in the |beans.xml| files, and registers the |Bean| and |ObserverMethod| objects.</text>
-    </assertion>
-
-    <assertion id="la">
-      <text>For each enabled bean that is not an interceptor or decorator, the container registers an instance of the |Bean| interface defined in Section 11.1, "The Bean interface".</text>
-    </assertion>
-
-    <assertion id="m">
-      <text>For each enabled interceptor, the container registers an instance of the |Interceptor| interface as defined in Section 11.1.2, "The Interceptor interface".</text>
-    </assertion>
-
-    <assertion id="n">
-      <text>For each enabled decorator, the container registers an instance of the |Decorator| interface defined in Section 11.1.1, "The Decorator interface".</text>
-    </assertion>
-
-    <assertion id="oa">
-      <text>For each observer method of an enabled bean, the container registers an instance of the |ObserverMethod| interface defined in Section 11.1.3, "The ObserverMethod interface".</text>
-    </assertion>
-  </section>
-
-  <section id="12.4" title="Problems detected automatically by the container">
-    <assertion id="a">
-      <text>Definition errors may be detected by tooling at development time, and are also detected by the container at initialization time. If a definition error exists in a deployment, initialization will be aborted by the container.</text>
-    </assertion>
-
-    <assertion id="b">
-      <text>Deployment problems are detected by the container at initialization time. If a deployment problem exists in a deployment, initialization will be aborted by the container.</text>
-    </assertion>
-    
-    <assertion id="d" testable="false">
-      <text>The container is permitted to define a non-portable mode, for use at development time, in which some definition errors and deployment problems do not cause application initialization to abort.</text>
-      <note>Specifies undefined behavior</note>
-    </assertion>
-    
-    <assertion id="e" testable="false">
-      <text>Exceptions represent problems that may not be detected until they actually occur at runtime. All exceptions defined by this specification are unchecked exceptions.</text>
-      <note>Explanatory note</note>
-    </assertion>
-    
-    <assertion id="f" testable="false">
-      <text>All exceptions defined by this specification may be safely caught and handled by the application.</text>
-      <note>Explanatory note</note>
-    </assertion>
-  </section>
-
-</specification>




More information about the weld-commits mailing list