[webbeans-commits] Webbeans SVN: r3755 - tck/trunk/impl/src/main/resources.
webbeans-commits at lists.jboss.org
webbeans-commits at lists.jboss.org
Tue Sep 22 18:46:04 EDT 2009
Author: shane.bryzak at jboss.com
Date: 2009-09-22 18:46:04 -0400 (Tue, 22 Sep 2009)
New Revision: 3755
Modified:
tck/trunk/impl/src/main/resources/tck-audit-cdi.xml
Log:
section 11 assertions
Modified: tck/trunk/impl/src/main/resources/tck-audit-cdi.xml
===================================================================
--- tck/trunk/impl/src/main/resources/tck-audit-cdi.xml 2009-09-22 21:57:30 UTC (rev 3754)
+++ tck/trunk/impl/src/main/resources/tck-audit-cdi.xml 2009-09-22 22:46:04 UTC (rev 3755)
@@ -2386,7 +2386,7 @@
<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>When the container invokes a method of a bean, the invocation may or may not be treated as a business method invocation
+ <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>
@@ -4408,7 +4408,14 @@
</section>
<section id="10.4.2" title="Declaring an observer method">
- <assertion id="a">
+ <assertion id="a"> <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>
+
<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>
@@ -4583,7 +4590,7 @@
</assertion>
<assertion id="ba">
- <text>|getTypes()|, |getQualifiers()|, |getScope()|, |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>
+ <text>|getTypes()|, |getQualifiers()|, |getScope()|, |getName()| and |getStereotypes()| must return the bean types, qualifiers, scope type, EL name and stereotypes of the bean, as defined in Chapter 2, Concepts.</text>
</assertion>
<assertion id="bb">
@@ -4591,7 +4598,7 @@
</assertion>
<assertion id="bc">
- <text>|isPolicy()| must return |true| if the bean is a policy, and |false| otherwise.</text>
+ <text>|isAlternative()| must return |true| if the bean is an alternative, and |false| otherwise.</text>
</assertion>
<assertion id="bd">
@@ -4669,7 +4676,7 @@
</assertion>
<assertion id="d">
- <text>|getNotify()| returns |IF_EXISTS| for a conditional observer and |ALWAYS| otherwise.</text>
+ <text>|getReception()| returns |IF_EXISTS| for a conditional observer and |ALWAYS| otherwise.</text>
</assertion>
<assertion id="e">
@@ -4680,8 +4687,8 @@
<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 id="ga">
+ <text>An instance of |ObserverMethod| exists for every observer method of every enabled bean.</text>
</assertion>
</section>
@@ -4694,11 +4701,7 @@
<assertion id="ba">
<text>For a |Producer| that represents a class, |produce()| calls the constructor annotated |@Inject| 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 |@Inject| 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>
@@ -4714,23 +4717,31 @@
<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>
+
+ <group>
+ <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 bean that declares the producer method, as defined in Section 5.6.6, "Invocation of producer or disposer methods".</text>
+
+ <assertion id="eaa">
+ <text>Test with producer method.</text>
+ </assertion>
+
+ <assertion id="eba">
+ <text>Test with producer field.</text>
+ </assertion>
+ </group>
+
+ <group>
+ <text>For a Producer that represents a producer method or field, |dispose()| calls the disposer method, if any, on a contextual instance of 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 id="faa">
+ <text>Test with producer method.</text>
+ </assertion>
+
+ <assertion id="fba">
+ <text>Test with producer field.</text>
+ </assertion>
+ </group>
- <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>
@@ -4753,18 +4764,22 @@
</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>
+ <section id="11.3" title="The BeanManager object">
+ <group>
+ <text>The container provides a built-in bean with bean type |BeanManager|, scope |@Dependent| and qualifier |@Default|.</text>
+
+ <assertion id="aa">
+ <text>Test the bean type.</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="ab">
+ <text>Test the scope.</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="ac">
+ <text>Test the qualifier.</text>
+ </assertion>
+ </group>
<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>
@@ -4819,21 +4834,25 @@
<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>
+ <text>An instance of |CreationalContext| for a certain instance of |Contextual| may be obtained by calling |BeanManager.createCreationalContext()|.</text>
+ </assertion>
+
+ <assertion id="b">
+ <text>An instance of |CreationalContext| for a non-contextual object may be obtained by passing a null value to |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>
+ <text>The method |BeanManager.getBeans()| returns the set of beans which match the given required type and qualifiers 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>
+ <text>The first parameter is a required bean type. The remaining parameters are required qualifiers.</text>
</assertion>
<assertion id="c">
- <text>If no bindings are passed to |getBeans()|, the default binding |@Current| is assumed.</text>
+ <text>If no qualifiers are passed to |getBeans()|, the default qualifier |@Default| is assumed.</text>
</assertion>
<assertion id="da">
@@ -4841,11 +4860,11 @@
</assertion>
<assertion id="e">
- <text>If two instances of the same binding type are given, an |IllegalArgumentException| is thrown.</text>
+ <text>If two instances of the same qualifier 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>
+ <text>If an instance of an annotation that is not a qualifier type is given, an |IllegalArgumentException| is thrown.</text>
</assertion>
</section>
@@ -4858,22 +4877,16 @@
<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">
+ <section id="11.3.6" 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">
+ <section id="11.3.7" 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>
+ <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 |Bean|s.</text>
</assertion>
<assertion id="b">
@@ -4881,7 +4894,7 @@
</assertion>
</section>
- <section id="11.3.9" title="Validating a dependency">
+ <section id="11.3.8" title="Validating a dependency">
<assertion id="a">
<text>The |BeanManager.validate()| operation validates a dependency.</text>
<note>Statement of intent</note>
@@ -4892,13 +4905,13 @@
</assertion>
</section>
- <section id="11.3.10" title="Firing an event">
+ <section id="11.3.9" 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>
+ <text>The first argument is the event object. The remaining parameters are event qualifiers.</text>
</assertion>
<assertion id="c">
@@ -4906,21 +4919,21 @@
</assertion>
<assertion id="d">
- <text>If two instances of the same binding type are given, an |IllegalArgumentException| is thrown.</text>
+ <text>If two instances of the same qualifier 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>
+ <text>If an instance of an annotation that is not a qualifier type is given, an |IllegalArgumentException| is thrown.</text>
</assertion>
</section>
- <section id="11.3.11" title="Observer method resolution">
+ <section id="11.3.10" 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>
+ <text>The first parameter of |resolveObserverMethods()| is the event object. The remaining parameters are event qualifiers.</text>
</assertion>
<assertion id="c">
@@ -4928,29 +4941,29 @@
</assertion>
<assertion id="d">
- <text>If two instances of the same binding type are given, an |IllegalArgumentException| is thrown.</text>
+ <text>If two instances of the same qualifier 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>
+ <text>If an instance of an annotation that is not a qualifier type is given, an |IllegalArgumentException| is thrown.</text>
</assertion>
</section>
- <section id="11.3.12" title="Decorator resolution">
+ <section id="11.3.11" 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>
+ <text>The method |BeanManager.resolveDecorators()| returns the ordered list of decorators for a set of bean types and a set of qualifiers, 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>
+ <text>The first argument is the set of bean types of the decorated bean. The annotations are qualifiers 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>
+ <text>If two instances of the same qualifier 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>
+ <text>If an instance of an annotation that is not a qualifier type is given, an |IllegalArgumentException| is thrown.</text>
</assertion>
<assertion id="e">
@@ -4958,7 +4971,7 @@
</assertion>
</section>
- <section id="11.3.13" title="Interceptor resolution">
+ <section id="11.3.12" 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>
@@ -4976,46 +4989,60 @@
</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>
+ <section id="11.3.13" title="Determining if an annotation is a qualifier type, scope type, stereotype or interceptor binding type">
+ <group>
+ <text>A portable extension may test an annotation to determine if it is a qualifier type, scope type, stereotype or interceptor binding type, obtain the set of meta-annotations declared by a stereotype or interceptor binding type, or determine if a scope type is a normal or passivating scope.</text>
- <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="aa">
+ <text>Test qualifier 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="ab">
+ <text>Test 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="ac">
+ <text>Test stereotype.</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="ad">
+ <text>Test interceptor binding 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="ae">
+ <text>Test meta-annotations for stereotype.</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>
+ <assertion id="af">
+ <text>Test meta-annotations for interceptor binding type.</text>
+ </assertion>
+
+ <assertion id="ag">
+ <text>Test obtaining a |ScopeType|.</text>
+ </assertion>
+ </group>
</section>
- <section id="11.3.15" title="Obtaining the active Context for a scope">
+ <section id="11.3.14" 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">
+ <section id="11.3.15" 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.16" title="Wrapping a Unified EL ExpressionFactory">
+ <assertion id="a">
+ <text>The method |BeanManager.wrapExpressionFactory()| returns a wrapper |javax.el.ExpressionFactory| that delegates |MethodExpression| and |ValueExpression| creation to the given |ExpressionFactory|.</text>
+ </assertion>
+
+ <assertion id="b">
+ <text>When a Unified EL expression is evaluated using a |MethodExpression| or |ValueExpression| returned by the wrapper |ExpressionFactory|, the rules defined in Section 6.4.3, "Dependent pseudo-scope and Unified EL" are enforced by the container.</text>
+ </assertion>
</section>
<section id="11.3.17" title="Obtaining an AnnotatedType for a class">
@@ -5090,7 +5117,7 @@
</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
+ <text>For each service provider, the container must provide a bean of scope |@ApplicationScoped| and binding |@Default|, 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>
@@ -5101,11 +5128,11 @@
</assertion>
<assertion id="ab">
- <text>|addBindingType()| declares an annotation type as a binding type.</text>
+ <text>|addQualifier()| declares an annotation type as a qualifier type.</text>
</assertion>
<assertion id="ac">
- <text>|addScopeType()| declares an annotation type as a scope type.</text>
+ <text>|addScope()| declares an annotation type as a scope type.</text>
</assertion>
<assertion id="ad">
@@ -5113,7 +5140,7 @@
</assertion>
<assertion id="ae">
- <text>|addInterceptorBindingType()| declares an annotation type as an interceptor binding type, and specifies its meta-annotations.</text>
+ <text>|addInterceptorBinding()| declares an annotation type as an interceptor binding type, and specifies its meta-annotations.</text>
</assertion>
<assertion id="af">
@@ -5241,8 +5268,8 @@
<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<X, T>|, where X is bean class and T is the return type of the producer method or the type of the producer field.</text>
+ <assertion id="ba">
+ <text>The event object must be of type |javax.enterprise.inject.spi.ProcessProducer<T, X>|, where |T| is the bean class of the bean that declares the producer method or field and |X| is the return type of the producer method or the type of the producer field.</text>
</assertion>
<assertion id="c">
@@ -5283,12 +5310,12 @@
<text>For a session bean with bean class |X|, the container must raise an event of type |ProcessSessionBean<X>|.</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<X, T>|.</text>
+ <assertion id="eaa">
+ <text>For a producer method with method return type |X| of a bean with bean class |T|, the container must raise an event of type |ProcessProducerMethod<T, X>|.</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<X>|.</text>
+ <text>For a producer field with field type |X| of a bean with bean class |T|, the container must raise an event of type |ProcessProducerField<T, X>|.</text>
</assertion>
<assertion id="ec">
@@ -5325,12 +5352,12 @@
</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<X, T>| where |X| is bean class and |T| is the observed event type of the observer method.</text>
+ <assertion id="aaa">
+ <text>The container must fire an event for each observer method. The event object must be of type |javax.enterprise.inject.spi.ProcessObserverMethod<T, X>| where |T| is the bean class of the bean that declares the observer method and |X| 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 id="aba">
+ <text>|getAnnotatedEventParameter()| returns the |AnnotatedParameter| representing the event parameter.</text>
</assertion>
<assertion id="ba">
More information about the weld-commits
mailing list