Test Assertions for the SCA Assembly Model Version 1.1 Specification
Committee Draft 03
10 August 2010
Specification URIs:
This Version:
http://docs.oasis-open.org/opencsa/sca-assembly/sca-assembly-1.1-test-assertions-cd03.html
http://docs.oasis-open.org/opencsa/sca-assembly/sca-assembly-1.1-test-assertions-cd03.odt
http://docs.oasis-open.org/opencsa/sca-assembly/sca-assembly-1.1-test-assertions-cd03.pdf (Authoritative)
Previous Version:
http://docs.oasis-open.org/opencsa/sca-assembly/sca-assembly-1.1-test-assertions-cd02.html
http://docs.oasis-open.org/opencsa/sca-assembly/sca-assembly-1.1-test-assertions-cd02.odt
http://docs.oasis-open.org/opencsa/sca-assembly/sca-assembly-1.1-test-assertions-cd02.pdf (Authoritative)
Latest Version:
http://docs.oasis-open.org/opencsa/sca-assembly/sca-assembly-1.1-test-assertions.html
http://docs.oasis-open.org/opencsa/sca-assembly/sca-assembly-1.1-test-assertions.odt
http://docs.oasis-open.org/opencsa/sca-assembly/sca-assembly-1.1-test-assertions.pdf (Authoritative)
Technical Committee:
OASIS
Service Component Architecture / Assembly (SCA-Assembly) TC
http://www.oasis-open.org/committees/tc_home.php?wg_abbrev=sca-assembly
Chair(s):
Martin
Chapman, Oracle
Mike Edwards, IBM
Editor(s):
Mike
Edwards, IBM
Eric Wells, Hitachi
Plamen Pavlov, SAP
Related Work:
This document is related to:
Service Component Architecture
Assembly Specification Version 1.1
http://docs.oasis-open.org/opencsa/sca-assembly/sca-assembly-1.1-spec.pdf
Declared XML Namespace(s):
http://docs.oasis-open.org/ns/opencsa/scatests/200903
http://docs.oasis-open.org/ns/opencsa/scatests/2009032
http://test.sca.oasisopen.org/
http://docs.oasis-open.org/ns/opencsa/scatests/bpel/200903
Abstract:
This document defines the Test
Assertions for the SCA Assembly specification.
The Test Assertions represent the testable items relating to the normative
statements made in the SCA Assembly specification. The Test Assertions provide a bridge between
the normative statements in the specification and the conformance TestCases
which are designed to check that an SCA runtime conforms to the requirements of
the specification.
Status:
This
document was last revised or approved by the OASIS Service Component
Architecture / Assembly (SCA-Assembly) TC on the above date. The level of
approval is also listed above. Check the Latest Version or Latest Approved
Version location noted above for possible later revisions of this document.
Technical Committee members should send comments on this specification to the
Technical Committees email list. Others should send comments to the Technical
Committee by using the Send A Comment button on the Technical Committees web
page at http://www.oasis-open.org/committees/sca-assembly/.
For
information on whether any patents have been disclosed that may be essential to
implementing this specification, and any offers of patent licensing terms,
please refer to the Intellectual Property Rights section of the Technical
Committee web page (http://www.oasis-open.org/committees/sca-assembly/ipr.php.
The non-normative errata page for this specification is located at
http://www.oasis-open.org/committees/sca-assembly/
Notices
Copyright Š OASISŽ 2009 -
2010. All Rights Reserved.
All capitalized terms in the following text have the meanings assigned to them in the OASIS Intellectual Property Rights Policy (the "OASIS IPR Policy"). The full Policy may be found at the OASIS website.
This document and translations of it may be copied and furnished to others, and derivative works that comment on or otherwise explain it or assist in its implementation may be prepared, copied, published, and distributed, in whole or in part, without restriction of any kind, provided that the above copyright notice and this section are included on all such copies and derivative works. However, this document itself may not be modified in any way, including by removing the copyright notice or references to OASIS, except as needed for the purpose of developing any document or deliverable produced by an OASIS Technical Committee (in which case the rules applicable to copyrights, as set forth in the OASIS IPR Policy, must be followed) or as required to translate it into languages other than English.
The limited permissions granted above are perpetual and will not be revoked by OASIS or its successors or assigns.
This document and the information contained herein is provided on an "AS IS" basis and OASIS DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT INFRINGE ANY OWNERSHIP RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
OASIS requests that any OASIS Party or any other party that believes it has patent claims that would necessarily be infringed by implementations of this OASIS Committee Specification or OASIS Standard, to notify OASIS TC Administrator and provide an indication of its willingness to grant patent licenses to such patent claims in a manner consistent with the IPR Mode of the OASIS Technical Committee that produced this specification.
OASIS invites any party to contact the OASIS TC Administrator if it is aware of a claim of ownership of any patent claims that would necessarily be infringed by implementations of this specification by a patent holder that is not willing to provide a license to such patent claims in a manner consistent with the IPR Mode of the OASIS Technical Committee that produced this specification. OASIS may include such claims on its website, but disclaims any obligation to do so.
OASIS takes no position regarding the validity or scope of any intellectual property or other rights that might be claimed to pertain to the implementation or use of the technology described in this document or the extent to which any license under such rights might or might not be available; neither does it represent that it has made any effort to identify any such rights. Information on OASIS' procedures with respect to rights in any document or deliverable produced by an OASIS Technical Committee can be found on the OASIS website. Copies of claims of rights made available for publication and any assurances of licenses to be made available, or the result of an attempt made to obtain a general license or permission for the use of such proprietary rights by implementers or users of this OASIS Committee Specification or OASIS Standard, can be obtained from the OASIS TC Administrator. OASIS makes no representation that any information or list of intellectual property rights will at any time be complete, or that any claims in such list are, in fact, Essential Claims.
The names "OASIS" is a trademark of OASIS, the owner and developer of this specification, and should be used only to refer to the organization and its official outputs. OASIS welcomes reference to, and implementation and use of, specifications, while reserving the right to enforce its marks against misleading uses. Please see http://www.oasis-open.org/who/trademark.php for above guidance.
Table of Contents
This document defines the Test Assertions for the SCA Assembly Specification Version 1.1.
The test assertions in this document follow the format defined in the OASIS Test Assertion Guidelines specification [TA-GUIDE].
Test assertions are presented in a tabular format with rows corresponding to the entry types defined in [TA-GUIDE].
Assertion ID |
ASM-TA-xxxx |
Source |
[ASMx00yy] |
Target |
<kitchenSink/> element of composite file |
Prerequisites |
The <kitchenSink/> element has a @drain attribute |
Predicate |
The @drain attribute value of the <kitchenSink/> element is a URI that identifies a portal into the drainage system of the Domain. |
Prescription Level |
Mandatory |
Tags |
kitchenSink drain Domain |
Assertion ID: Is a unique ID for the test assertion. Its format starts with a 3 letter string that identifies the specification to which it relates - "ASM" is for the SCA Assembly specification. This is followed by "-TA-" to indicate that this identifier is for a test assertion. This is then followed by a unique 4 digit number.
Source: Is the identifier(s) of the normative
statement(s) in the specification to which this assertion relates.
Target: Identifies the target which is addressed by
this assertion. This is typically some
SCA document element, or other SCA artifact but possibly could identify an SCA
runtime and its behaviour.
Prerequisites: Defines any prerquisites for this test
assertion. The prerequisites may be
defined in terms of one or more other test assertions that must be true.
Predicate: The meat of the assertion - something that
should evaluate to true or false for the given target.
Prescription Level: Mandatory (for MUST requirements) or Preferred
(for SHOULD requirements) or Permitted (for MAY requirements).
Tags: Zero or more labels that may be attached to
this test assertion - these tags can be used to group sets of assertions.
The keywords "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this specification are to be interpreted as described in IETF RFC 2119 [RFC 2119]
[RFC 2119] S. Bradner. Key words for use in RFCs to Indicate Requirement Levels. IETF RFC
2119, March 1997.
http://www.ietf.org/rfc/rfc2119.txt.
[TA-GUIDE] OASIS
Committee Draft 04, Test Assertion
Guidelines, February 2010. http://docs.oasis-open.org/tag/guidelines/v1.0/cd04/testassertionsguidelines-cd-04.pdf
[ASSEMBLY] OASIS Committee Draft 06, Service
Component Architecture Assembly Model Specification Version 1.1, August
2010.
http://docs.oasis-open.org/opencsa/sca-assembly/sca-assembly-1.1-spec-cd06.pdf
None
Assertion ID |
ASM-TA-4002 |
Source |
[ASM40003] |
Target |
<service/> element of a <componentType/> element |
Prerequisites |
The <componentType/> element has >1 <service/> elements |
Predicate |
The @name attribute of the <service/> element is not equal to the @name attribute of any other <service/> element of the <componentType/> |
Prescription Level |
Mandatory |
Tags |
componentType service name |
Assertion ID |
ASM-TA-4003 |
Source |
[ASM40004] |
Target |
<reference/> element of a <componentType/> element |
Prerequisites |
The <componentType/> element has >1 <reference/> elements |
Predicate |
The @name attribute of the <reference/> element is not equal to the @name attribute of any other <reference/> element of the <componentType/> |
Prescription Level |
Mandatory |
Tags |
componentType reference name |
Assertion ID |
ASM-TA-4004 |
Source |
[ASM40005] |
Target |
<property/> element of a <componentType/> element |
Prerequisites |
The <componentType/> element has >1 <property/> elements |
Predicate |
The @name attribute of the <property/> element is not equal to the @name attribute of any other <property/> element of the <componentType/> |
Prescription Level |
Mandatory |
Tags |
componentType property name |
Assertion ID |
ASM-TA-4005 |
Source |
[ASM40006] |
Target |
<reference/> element of a <component/> where the <reference/> has the @target attribute set to valid target <component/> <service/> |
Prerequisites |
<reference/> element of the <componentType/> of the <implementation/> used by the <component/> has @wiredByImpl set to true |
Predicate |
<reference/> @target is ignored and the reference is not wired to the identified <component/> <service/> |
Prescription Level |
Mandatory |
Tags |
componentType reference wiredByImpl |
Assertion ID |
ASM-TA-4006 |
Source |
[ASM40007] |
Target |
@type attribute of a <property/> element of a <componentType/> element |
Prerequisites |
|
Predicate |
@type attribute value of the <property/> element is the QName of an XML schema type |
Prescription Level |
Mandatory |
Tags |
componentType property type |
Assertion ID |
ASM-TA-4007 |
Source |
[ASM40008] |
Target |
@element attribute of a <property/> element of a <componentType/> element |
Prerequisites |
|
Predicate |
@element attribute value of the <property/> element is the QName of an XSD global element. |
Prescription Level |
Mandatory |
Tags |
componentType property element |
Assertion ID |
ASM-TA-4008 |
Source |
[ASM40009] |
Target |
Implementation property value of an <implementation/> of a <component/> |
Prerequisites |
a) The <property/> element of the <componentType/> element of the implementation has a default value for the property b) <component/> has a corresponding <property/> element that sets a value for the property |
Predicate |
The runtime value of the implementation property is the value declared by the <component/> <property/> element |
Prescription Level |
Mandatory |
Tags |
component type property default |
Assertion ID |
ASM-TA-4009 |
Source |
[ASM40010] |
Target |
<property/> element of <componentType/> |
Prerequisites |
a) The <property/> element has a @type attribute declared |
Predicate |
<property/> element does not have an @element attribute declared |
Prescription Level |
Mandatory |
Tags |
component type property type element |
Assertion ID |
ASM-TA-4010 |
Source |
[ASM40010] |
Target |
<property/> element of <componentType/> |
Prerequisites |
a) The <property/> element has a @element attribute declared |
Predicate |
<property/> element does not have an @type attribute declared |
Prescription Level |
Mandatory |
Tags |
component type property type element |
Assertion ID |
ASM-TA-4011 |
Source |
[ASM40011] |
Target |
<property/> element of a <component/> |
Prerequisites |
a) <component/> has an <implementation/> which has a componentType with a <property/> element, corresponding to the <component/> <property/> element, which has @mustSupply=true |
Predicate |
<property/> element declares a property value which sets the property value of the implementation |
Prescription Level |
Mandatory |
Tags |
component type property "mustSupply value |
Assertion ID |
ASM-TA-4012 |
Source |
[ASM40012] |
Target |
@file attribute of a <property/> element of a <componentType/> |
Prerequisites |
|
Predicate |
@file attribute contains a dereferenceable URI to a file which contains the value for the property |
Prescription Level |
Mandatory |
Tags |
component type property "file dereferenceable URI |
Assertion ID |
ASM-TA-5001 |
Source |
[ASM50002] |
Target |
<service/> element of a <component/> element |
Prerequisites |
The <component/> element has >1 <service/> elements |
Predicate |
The @name attribute of [the <service/> element] not equal to the @name attribute of any other <service/> element of the <component/> |
Prescription Level |
Mandatory |
Tags |
"component services" |
Assertion ID |
ASM-TA-5002 |
Source |
[ASM50003] |
Target |
<service/> element of a <component/> element |
Prerequisites |
The <component/> element has an <implementation/> child element |
Predicate |
The @name attribute of [the <service/> element] is equal to the @name attribute of one <service/> element of the <componentType/> of the <implementation/> subelement of the <component/> |
Prescription Level |
Mandatory |
Tags |
"component services" |
Assertion ID |
ASM-TA-5003 |
Source |
[ASM50007] |
Target |
<reference/> element of a <component/> element |
Prerequisites |
The <component/> element has >1 <reference/> elements |
Predicate |
The @name attribute of [the <reference/> element] not equal to the @name attribute of any other <reference/> element of the <component/> |
Prescription Level |
Mandatory |
Tags |
"component references" |
Assertion ID |
ASM-TA-5004 |
Source |
[ASM50008] |
Target |
<reference/> element of a <component/> element |
Prerequisites |
The <component/> element has an <implementation/> child element |
Predicate |
The @name attribute of [the <reference/> element] is equal to the @name attribute of one <reference/> element of the <componentType/> of the <implementation/> subelement of the <component/> |
Prescription Level |
Mandatory |
Tags |
"component references" |
Assertion ID |
ASM-TA-5005 |
Source |
[ASM50001] |
Target |
<component/> element in a <composite/> element |
Prerequisites |
The <composite/> element has >1 <component/> elements |
Predicate |
The @name attribute of [the <component/> element] not equal to the @name attribute of any other <component/> element in the <composite/> |
Prescription Level |
Mandatory |
Tags |
"component names" |
Assertion ID |
ASM-TA-5006 |
Source |
[ASM50004] |
Target |
<service/> element of a <component/> element |
Prerequisites |
The <service/> element has an <interface/> child element |
Predicate |
The interface specified by the <interface/> child element of [the <service/> element] is a compatible subset of the interface declared for the <service/> with the same @name attribute in the <componentType/> of the <implementation/> child of the <component/> |
Prescription Level |
Mandatory |
Tags |
"compatible interfaces" |
Assertion ID |
ASM-TA-5007 |
Source |
[ASM50005] |
Target |
<service/> element of a <component/> element |
Prerequisites |
The <service/> element has no <binding/> elements AND <service/> element (with same @name attribute value) of the <componentType/> of the <implementation/> element of the <component/> has 1 or more <binding/> elements |
Predicate |
The <service/> is made available using all the bindings declared on the <componentType/> <service/> element |
Prescription Level |
Mandatory |
Tags |
"service bindings" |
Assertion ID |
ASM-TA-5008 |
Source |
[ASM50005] |
Target |
<service/> element of a <component/> element |
Prerequisites |
The <service/> element has no <binding/> elements AND <service/> element (with same @name attribute value) of the <componentType/> of the <implementation/> element of the <component/> has no <binding/> elements |
Predicate |
The <service/> is made available using binding.sca |
Prescription Level |
Mandatory |
Tags |
"service bindings |
Assertion ID |
ASM-TA-5009 |
Source |
[ASM50006] |
Target |
<service/> element of a <component/> element |
Prerequisites |
The <service/> element has 1 or more <binding/> elements |
Predicate |
The <service/> is made available using all of the bindings declared on its <binding/> elements |
Prescription Level |
Mandatory |
Tags |
"service bindings" |
Assertion ID |
ASM-TA-5010 |
Source |
[ASM50009] |
Target |
<reference/> element of a <component/> element |
Prerequisites |
<reference/> element (with same @name attribute value) of the <componentType/> of the <implementation/> has multiplicity 1..n |
Predicate |
<reference/> element @multiplicity attribute is 1..n or 1..1 |
Prescription Level |
Mandatory |
Tags |
"component references" reference multiplicity |
Assertion ID |
ASM-TA-5011 |
Source |
[ASM50009] |
Target |
<reference/> element of a <component/> element |
Prerequisites |
<reference/> element (with same @name attribute value) of the <componentType/> of the <implementation/> has multiplicity 0..n |
Predicate |
<reference/> element @multiplicity attribute is 0..n or 1..n or 0..1 or 1..1 |
Prescription Level |
Mandatory |
Tags |
"component references" reference multiplicity |
Assertion ID |
ASM-TA-5012 |
Source |
[ASM50009] |
Target |
<reference/> element of a <component/> element |
Prerequisites |
<reference/> element (with same @name attribute value) of the <componentType/> of the <implementation/> has multiplicity 1..1 |
Predicate |
<reference/> element @multiplicity attribute is 1..1 |
Prescription Level |
Mandatory |
Tags |
"component references" reference multiplicity |
Assertion ID |
ASM-TA-5013 |
Source |
[ASM50009] |
Target |
<reference/> element of a <component/> element |
Prerequisites |
<reference/> element (with same @name attribute value) of the <componentType/> of the <implementation/> has multiplicity 0..1 |
Predicate |
<reference/> element @multiplicity attribute is 0..1 or 1..1 |
Prescription Level |
Mandatory |
Tags |
"component references" reference multiplicity |
Assertion ID |
ASM-TA-5014 |
Source |
[ASM50010] [ASM50013] |
Target |
<reference/> element of a <component/> element |
Prerequisites |
<reference/> element has @wiredByImpl=true |
Predicate |
<reference/> element has no @target attribute set |
Prescription Level |
Mandatory |
Tags |
"component references" wiredByImpl |
Assertion ID |
ASM-TA-5015 |
Source |
[ASM50010] |
Target |
<reference/> element of a <component/> element |
Prerequisites |
<reference/> element has @wiredByImpl=true |
Predicate |
<reference/> element has no <binding/> child elements |
Prescription Level |
Mandatory |
Tags |
"component references" wiredByImpl |
Assertion ID |
ASM-TA-5016 |
Source |
[ASM50011] |
Target |
<interface/> element of a <reference/> element of a <component/> element |
Prerequisites |
|
Predicate |
The interface declared by the <interface/> element of <reference/> element is a compatible superset of interface declared by the <interface/> child element of <reference/> element (with same @name attribute value) of the <componentType/> of the <implementation/> child element of the <component/> element |
Prescription Level |
Mandatory |
Tags |
"component references" interface compatibility |
Assertion ID |
ASM-TA-5017 |
Source |
[ASM50012] |
Target |
<reference/> element of a <component/> element |
Prerequisites |
a) <reference/> has no <binding/> child elements b) <reference/> (with the same @name attribute) of the <componentType/> of the <implementation/> element of the <component/> has a <binding/> child element |
Predicate |
Binding declared by the <reference/> element (with the same @name attribute) of the <componentType/> is used for the reference |
Prescription Level |
Mandatory |
Tags |
"component references" reference bindings |
Assertion ID |
ASM-TA-5018 |
Source |
[ASM50012] |
Target |
<reference/> element of a <component/> element |
Prerequisites |
a) <reference/> has one <binding/> child element which identifies a target service b) <reference/> (with the same @name attribute) of the <componentType/> of the <implementation/> element of the <component/> has a <binding/> child element |
Predicate |
Binding (and target service) identified by the <binding/> element of the <reference/> is used to wire the reference. |
Prescription Level |
Mandatory |
Tags |
"component references" reference bindings |
Assertion ID |
ASM-TA-5019 |
Source |
[ASM50013] |
Target |
<reference/> element of a <component/> element |
Prerequisites |
<reference/> element has @wiredByImpl=true |
Predicate |
<reference/> element has no <binding/> child elements |
Prescription Level |
Mandatory |
Tags |
"component references" wiredByImpl |
Assertion ID |
ASM-TA-5020 |
Source |
[ASM50013] |
Target |
|
Prerequisites |
<reference/> element has @wiredByImpl=true |
Predicate |
No <wire/> elements have the <reference/> element declared as the @source for the wire |
Prescription Level |
Mandatory |
Tags |
"component references" wiredByImpl |
Assertion ID |
ASM-TA-5021 |
Source |
[ASM50014] |
Target |
<reference/> element of a <component/> element |
Prerequisites |
a) <reference/> element has @autowire=true b) There are multiple valid target services for the reference which satisfy the autowire process. c) <reference/> element has @target identifying a single target service |
Predicate |
The <reference/> element is wired only to the single target service identified by the @target attribute |
Prescription Level |
Mandatory |
Tags |
"component references" autowire |
Assertion ID |
ASM-TA-5022 |
Source |
[ASM50014] |
Target |
<reference/> element of a <component/> element |
Prerequisites |
a) <reference/> element has @autowire=true b) There are multiple valid target services for the reference which satisfy the autowire process. c) There is a <wire/> element which has the <reference/> element declared in its @source attribute |
Predicate |
The <reference/> element is wired only to the single target service identified by the <wire/> element |
Prescription Level |
Mandatory |
Tags |
"component references" autowire |
Assertion ID |
ASM-TA-5023 |
Source |
[ASM50014] |
Target |
<reference/> element of a <component/> element |
Prerequisites |
a) <reference/> element has @autowire=true b) There are multiple valid target services for the reference which satisfy the autowire process. c) <reference/> element has a <binding/> child element which declares a single target service |
Predicate |
The <reference/> element is wired only to the single target service identified by the <binding/> element |
Prescription Level |
Mandatory |
Tags |
"component references" autowire |
Assertion ID |
ASM-TA-5024 |
Source |
[ASM50015] |
Target |
<binding/> element of a <reference/> element of a <component/> element |
Prerequisites |
<binding/> element has its @uri attribute specifying a target service |
Predicate |
The <reference/> is wired to the target service specified by the @uri attribute |
Prescription Level |
Mandatory |
Tags |
"component references" uri |
Assertion ID |
ASM-TA-5025 |
Source |
[ASM50040] |
Target |
<reference/> element of a <component/> element |
Prerequisites |
a) @multiplicity is 1..1 b) @target attribute contains a single target service which is a service on a second component in the same <composite/> as the first components c) target service is compatible with the source reference |
Predicate |
The wire from the <reference/> to the target service is valid and the client component can invoke operations on the target service |
Prescription Level |
Mandatory |
Tags |
"component references" valid wire |
Assertion ID |
ASM-TA-5026 |
Source |
[ASM50041] |
Target |
<reference/> element of a <component/> element |
Prerequisites |
a) @multiplicity is 1..n b) multiple target services exist in the <composite/> containing the <component/> which are compatible with the reference c) @target attribute contains 2 or more compatible target services |
Predicate |
The <reference/> is wired to all of the target services identified by its @target attribute and can invoke operations on each target service. |
Prescription Level |
Mandatory |
Tags |
"component references" valid wire |
Assertion ID |
ASM-TA-5027 |
Source |
[ASM50040] [ASM50022] |
Target |
<reference/> element of a <component/> element |
Prerequisites |
a) @multiplicity is 1..1 b) multiple target services exist in the <composite/> containing the <component/> which are compatible with the <reference/> c) @target attribute contains 2 or more compatible target services |
Predicate |
The wires from the <reference/> to the target service are invalid and the client component cannot run |
Prescription Level |
Mandatory |
Tags |
"component references" valid wire |
Assertion ID |
ASM-TA-5028 |
Source |
[ASM50039] |
Target |
<reference/> element with @multiplicity=0..1 of a <component/> element |
Prerequisites |
<reference/> element is not wired, either by the @target attribute of the <reference/> or by any <binding/> child elements of the <reference/> |
Predicate |
The configuration of the <component/> is valid and the component executes |
Prescription Level |
Mandatory |
Tags |
"component references" valid wire |
Assertion ID |
ASM-TA-5029 |
Source |
[ASM50025] |
Target |
<reference/> element with @multiplicity=1..1 of a <component/> element within a <composite/> |
Prerequisites |
a) <reference/> element is wired to a compatible service of a second component within the same composite b) a <reference/> element of the <composite/> promotes the <reference/> element of the component c) the <composite/> is used as the implementation of a high level component and the composite <reference/> is wired to a valid target |
Predicate |
The wires from the <reference/> to the target service are invalid and the client component cannot run |
Prescription Level |
Mandatory |
Tags |
"component references" valid wire |
Assertion ID |
ASM-TA-5030 |
Source |
[ASM50026] |
Target |
<reference/> element with @target attribute set to one or more target services, of a <component/> element within a <composite/> |
Prerequisites |
|
Predicate |
<reference/> element has no <binding/> child elements |
Prescription Level |
Mandatory |
Tags |
"component reference target binding |
Assertion ID |
ASM-TA-5031 |
Source |
[ASM50027] |
Target |
<property/> element of a <component/> element within a <composite/>, with an @value attribute declared |
Prerequisites |
type of the <property/> element is an XML Schema simple type |
Predicate |
@value attribute of the <property/> element contains a single value with a type matching that of the <property/> element |
Prescription Level |
Mandatory |
Tags |
"component property value |
Assertion ID |
ASM-TA-5032 |
Source |
[ASM50028] |
Target |
<value/> child element of a <property/> element of a <component/> element within a <composite/> |
Prerequisites |
Type of the <property/> element is an XML Schema simple type or an XML Schema complex type |
Predicate |
The type of the <value/> element is the same as the type declared for the parent <property/> element |
Prescription Level |
Mandatory |
Tags |
"component property type |
Assertion ID |
ASM-TA-5033 |
Source |
[ASM50029] |
Target |
child element of a <property/> element of a <component/> element within a <composite/> |
Prerequisites |
Child element is not an <sca:value/> element |
Predicate |
The type of the <property/> element is an XML Schema global element and the child element is an instance of that global element |
Prescription Level |
Mandatory |
Tags |
"component property value type |
Assertion ID |
ASM-TA-5034 |
Source |
[ASM50031] |
Target |
<property/> element of a <component/> element within a <composite/> |
Prerequisites |
<component/> element contains 1 or more additional <property/> elements |
Predicate |
The @name attribute of the <property/> element is not the same as the @name attribute of any of the other <property/> child elements of the same <component/> |
Prescription Level |
Mandatory |
Tags |
"component property name |
Assertion ID |
ASM-TA-5036 |
Source |
[ASM50032] |
Target |
<property/> element of a <component/> element within a <composite/>, with values specified by <value/> child elements |
Prerequisites |
<property/> element with @many=false, or where componentType of the implementation has the matching <property/> with @many=false |
Predicate |
<property/> has a single <value/> child element |
Prescription Level |
Mandatory |
Tags |
"component property value many |
Assertion ID |
ASM-TA-5037 |
Source |
[ASM50033] |
Target |
<property/> element of a <component/> element within a <composite/>, with a value specified by a @value attribute |
Prerequisites |
|
Predicate |
<property/> has no <value/> child elements |
Prescription Level |
Mandatory |
Tags |
"component property value |
Assertion ID |
ASM-TA-5038 |
Source |
[ASM50034] |
Target |
<reference/> element of a <component/> element within a <composite/> |
Prerequisites |
a) <composite/> contains at least 2 distinct valid target services for the <reference/> b) <composite/> contains a <wire/> element with @source set to the <reference/> of the <component/> and @target set to one valid target service for the <reference/> (serviceA) c) <wire/> element has @replace=true d) <reference/> has @target attribute containing a single entry declaring a different target service (serviceB) |
Predicate |
<reference/> is wired to serviceA and is not wired to serviceB |
Prescription Level |
Mandatory |
Tags |
"componentreference wire replace target |
Assertion ID |
ASM-TA-5039 |
Source |
[ASM50035] |
Target |
<property/> element of <component/> |
Prerequisites |
a) The <property/> element has a @type attribute declared |
Predicate |
<property/> element does not have an @element attribute declared |
Prescription Level |
Mandatory |
Tags |
component property type element |
Assertion ID |
ASM-TA-5040 |
Source |
[ASM50035] |
Target |
<property/> element of <component/> |
Prerequisites |
a) The <property/> element has a @element attribute declared |
Predicate |
<property/> element does not have an @type attribute declared |
Prescription Level |
Mandatory |
Tags |
component property type element |
Assertion ID |
ASM-TA-5041 |
Source |
[ASM50036] [ASM50038] |
Target |
<property/> element of <component/> |
Prerequisites |
<property/> element declares a type |
Predicate |
The type declared for the <property/> element is the same as the type declared for the corresponding <property/> in the <componentType/> of the <implementation/> |
Prescription Level |
Mandatory |
Tags |
"component property type component type |
Assertion ID |
ASM-TA-5042 |
Source |
[ASM50037] |
Target |
@name attribute of a <property/> element of <component/> |
Prerequisites |
<component/> has an <implementation/> |
Predicate |
@name attribute matches the @name attribute of one of the <property/> elements of the <componentType/> of the <implementation/> |
Prescription Level |
Mandatory |
Tags |
"component property name componentType |
Assertion ID |
ASM-TA-5043 |
Source |
[ASM50006] |
Target |
<callback/> subelement of a <service/> subelement of a <component/> |
Prerequisites |
<callback/> element has set of one or more <binding/> subelements |
Predicate |
For a given callback target, one of the set of <binding/> subelements is used for the callback operations. |
Prescription Level |
Mandatory |
Tags |
"component service callback binding |
Assertion ID |
ASM-TA-5045 |
Source |
[ASM50038] |
Target |
<property/> element of a <component/> |
Prerequisites |
a) property element declares a type b) property element has a @source attribute which gets the value for the property from a <composite/> <property/> element c) @source attribute value does not involve a subelement of the composite property |
Predicate |
The type of the <property/> element is compatible with the type of the composite property element |
Prescription Level |
Mandatory |
Tags |
"component property type source "compatible" |
Assertion ID |
ASM-TA-5046 |
Source |
[ASM50038] |
Target |
<property/> element of a composite used as an implementation by a component |
Prerequisites |
a) property element declares a type b) component using the composite as an implementation has a <property/> element which also declares a type |
Predicate |
The type of the composite <property/> element is compatible with the type of the component property element |
Prescription Level |
Mandatory |
Tags |
"composite implementation property type "compatible" |
Assertion ID |
ASM-TA-5047 |
Source |
[ASM50042] |
Target |
<reference/> of a component |
Prerequisites |
a) multiplicity either 0..1 or 1..1 b) reference/@nonOverridable="true" |
Predicate |
<reference/> is not promoted by a composite reference |
Prescription Level |
Mandatory |
Tags |
"component reference nonOverridable promote |
Assertion ID |
ASM-TA-5048 |
Source |
[ASM50043] |
Target |
<reference/> of a component |
Prerequisites |
a) reference does not declare @autowire attribute b) component containing the reference declares an @autowire="true" attribute c) reference is not wired by its @target attribute, is not wired by a binding element and is not promoted by any composite reference d) composite containing the component contains one target service compatible with the reference |
Predicate |
<reference/> is wired to the target service and can invoke the service |
Prescription Level |
Mandatory |
Tags |
"component reference autowire inherit |
Assertion ID |
ASM-TA-5049 |
Source |
[ASM50043] |
Target |
<reference/> of a component |
Prerequisites |
a) reference does not declare @autowire attribute b) component containing the reference does not declare an @autowire attribute c) composite containing the component does declare an @autowire="true" attribute d) reference is not wired by its @target attribute, is not wired by a binding element and is not promoted by any composite reference e) composite containing the component contains one target service compatible with the reference |
Predicate |
<reference/> is wired to the target service and can invoke the service |
Prescription Level |
Mandatory |
Tags |
"component reference autowire inherit "composite" |
Assertion ID |
ASM-TA-5050 |
Source |
[ASM50044] |
Target |
<property/> element of a component |
Prerequisites |
a) property has @many="true" b) property has multiple values set |
Predicate |
<property/> element contains all the multiple values set for that property |
Prescription Level |
Mandatory |
Tags |
"component property many multiple "values" |
Assertion ID |
ASM-TA-5051 |
Source |
[ASM50045] |
Target |
@file attribute of a <property/> element of a <component/> |
Prerequisites |
|
Predicate |
@file attribute contains a dereferenceable URI to a file which contains the value for the property |
Prescription Level |
Mandatory |
Tags |
"component property file dereferenceable URI" |
Assertion ID |
ASM-TA-5052 |
Source |
[ASM50046] |
Target |
file which is referenced by the @file attribute of a component <property/> element |
Prerequisites |
property has a type that is a simple XML type property is single valued |
Predicate |
file contains an <sca:values/> element with one <sca:value/> subelement containing a string with the value for the property |
Prescription Level |
Mandatory |
Tags |
"component property file value "values" "simple" |
Assertion ID |
ASM-TA-5053 |
Source |
[ASM50046] |
Target |
file which is referenced by the @file attribute of a component <property/> element |
Prerequisites |
property has a type that is a complex XML type property is multi valued |
Predicate |
file contains an <sca:values/> element with one or more <sca:value/> subelements OR one or more global elements where the type of the <value/> elements OR the global elements matches the type of the <property/> element |
Prescription Level |
Mandatory |
Tags |
"component property file value "values" "complex" |
Assertion ID |
ASM-TA-6001 |
Source |
"Compatible Interfaces" section of specification |
Target |
2 interfaces defined by <interface.xxx/> elements (in any location in SCDL files) called InterfaceA and InterfaceB |
Prerequisites |
1)
(InterfaceA is remotable AND InterfaceB is remotable) OR (InterfaceA
is local AND InterfaceB is local) 2)
The number of operations and each of their names is the same in
InterfaceA and InterfaceB 3)
Each operation in InterfaceA has the same parameter types, same
parameter order, same return value type and same set of fault/exception types
as the operation with the same name in InterfaceB 4)
Other specified SCA attributes of InterfaceA match the specified SCA
attributes of InterfaceB |
Predicate |
InterfaceA is compatible with InterfaceB |
Prescription Level |
Mandatory |
Tags |
"interface" compatible |
Assertion ID |
ASM-TA-6002 |
Source |
"Compatible Superset" section of specification |
Target |
2 interfaces defined by <interface.xxx/> elements (in any location in SCDL files) called InterfaceA and InterfaceB |
Prerequisites |
1) (InterfaceA is remotable AND InterfaceB is remotable) OR
(InterfaceA is local AND InterfaceB is local) 2) All of the operations in Interface A are present in InterfaceB 3) Each operation in InterfaceA has the same parameter types, same
parameter order, same return value type and same set of fault/exception types
as the operation with the same name in InterfaceB 4)Other
specified SCA attributes of InterfaceA match the specified SCA attributes of
InterfaceB |
Predicate |
InterfaceB is compatible superset of
InterfaceA |
Prescription Level |
Mandatory |
Tags |
"interface" compatible |
Assertion ID |
ASM-TA-6003 |
Source |
"Compatible Subset" section of specification |
Target |
2 interfaces defined by <interface.xxx/> elements (in any location in SCDL files) called InterfaceA and InterfaceB |
Prerequisites |
1) (InterfaceA is remotable AND InterfaceB is remotable) OR
(InterfaceA is local AND InterfaceB is local) 2) All of the operations in InterfaceB are present in InterfaceA 3) Each operation in InterfaceB has the same parameter types, same
parameter order, same return value type and same set of fault/exception types
as the operation with the same name in InterfaceA 4) Other specified SCA attributes of InterfaceA match the specified
SCA attributes of InterfaceB |
Predicate |
InterfaceB is compatible subset of
InterfaceA |
Prescription
Level |
Mandatory |
Tags |
"interface"
compatible |
Assertion ID |
ASM-TA-6004 |
Source |
[ASM60001] |
Target |
@name attribute of a <composite/> element |
Prerequisites |
Multiple <composite/> elements exist in the same namespace |
Predicate |
@name attribute is not the same as the @name attribute of any other <composite/> element in the same namespace |
Prescription Level |
Mandatory |
Tags |
composite name |
Assertion ID |
ASM-TA-6005 |
Source |
[ASM60002] |
Target |
<component/> child elements of a <composite/> element with @local=true |
Prerequisites |
<composite/> element has multiple <component/> child elements that can run in separate operating system processes |
Predicate |
All the components run in the same operating system process |
Prescription Level |
Mandatory |
Tags |
composite component local |
Assertion ID |
ASM-TA-6006 |
Source |
[ASM60003] |
Target |
@name attribute of a <service/> element of a <composite/> element |
Prerequisites |
<composite/> has multiple <service/> child elements |
Predicate |
@name attribute of <service/> element is unique across all the <service/> child elements of the <composite/> |
Prescription Level |
Mandatory |
Tags |
composite service name |
Assertion ID |
ASM-TA-6007 |
Source |
[ASM60004] |
Target |
@promote attribute of <service/> element of a <composite/> element |
Prerequisites |
<composite/> contains a child <component/> offering a <service/> |
Predicate |
@promote attribute has a value which identifies a service of one of the <component/> elements in the <composite/> |
Prescription Level |
Mandatory |
Tags |
composite service promote |
Assertion ID |
ASM-TA-6008 |
Source |
[ASM60005] |
Target |
<interface/> child element of a <service/> element of a <composite/> |
Prerequisites |
<service/> element promotes a service of a <component/> in the <composite/> |
Predicate |
<interface/> declares an interface which is a compatible subset of the interface declared by the promoted <component/> <service/>, as defined in ASM-TA-6003 |
Prescription Level |
Mandatory |
Tags |
composite service promoteinterface |
Assertion ID |
ASM-TA-6009 |
Source |
[ASM60006] |
Target |
@name attribute of a <reference/> element of a <composite/> element |
Prerequisites |
<composite/> has multiple <reference/> child elements |
Predicate |
@name attribute of <reference/> element is unique across all the <reference/> child elements of the <composite/> |
Prescription Level |
Mandatory |
Tags |
composite reference name |
Assertion ID |
ASM-TA-6010 |
Source |
[ASM60007] |
Target |
@promote attribute of <reference/> element of a <composite/> element |
Prerequisites |
<composite/> contains one or more child <component/> elements with a <reference/> |
Predicate |
@promote attribute has a value which contains one or more URIs each of which identifies a reference of one of the <component/> elements in the <composite/> |
Prescription Level |
Mandatory |
Tags |
composite reference promote |
Assertion ID |
ASM-TA-6011 |
Source |
[ASM60008] [ASM60012] |
Target |
<interface/> child element of a <reference/> element of a <composite/> |
Prerequisites |
<composite/> contains one or more child <component/> offering a <reference/> |
Predicate |
<interface/> element declares an interface which is a compatible superset of the interface declared by each of the promoted <component/> <reference/>, as defined in ASM-TA-6002 |
Prescription Level |
Mandatory |
Tags |
composite reference promote interface |
Assertion ID |
ASM-TA-6012 |
Source |
[ASM60008] [ASM60013] |
Target |
<reference/> element of a <composite/> |
Prerequisites |
1) <composite contains multiple <component/> child elements which have one or more <reference/> child element 2) <reference/> promotes multiple <component/> <reference/> elements 3) <reference/> element has no <interface/> child element |
Predicate |
The interfaces declared by each promoted <component/> <reference/> are the same interface |
Prescription Level |
Mandatory |
Tags |
composite reference promote interface |
Assertion ID |
ASM-TA-6013 |
Source |
[ASM60009] |
Target |
<reference/> element of a <composite/> |
Prerequisites |
1) <reference/> has @intent attribute declaring one or more intents 2) <reference/> promotes a <component/> <reference/> element which has one or more intents declared on it |
Predicate |
Intents declared on the <reference/> are not mutually exclusive with the intents declared on the promoted <component/> <reference/> |
Prescription Level |
Mandatory |
Tags |
composite reference intents mutually exclusive |
Assertion ID |
ASM-TA-6014 |
Source |
[ASM60010] |
Target |
@requires attribute of <reference/> element of a <composite/> |
Prerequisites |
1) @requires declares two or more intents |
Predicate |
The set of intents declared by the @requires attribute do not contain a pair that are mutually exclusive. |
Prescription Level |
Mandatory |
Tags |
composite reference intents mutually exclusive |
Assertion ID |
ASM-TA-6015 |
Source |
[ASM60011] |
Target |
@multiplicity attribute of <reference/> element of a <composite/> |
Prerequisites |
<reference/> promotes a <component/> <reference/> with multiplicity 0..1 |
Predicate |
@multiplicity has a value of 0..1 or a value of 1..1 |
Prescription Level |
Mandatory |
Tags |
composite reference multiplicity |
Assertion ID |
ASM-TA-6016 |
Source |
[ASM60011] |
Target |
@multiplicity attribute of <reference/> element of a <composite/> |
Prerequisites |
<reference/> promotes a <component/> <reference/> with multiplicity 1..1 |
Predicate |
@multiplicity has a value of 1..1 |
Prescription Level |
Mandatory |
Tags |
composite reference multiplicity |
Assertion ID |
ASM-TA-6017 |
Source |
[ASM60011] |
Target |
@multiplicity attribute of <reference/> element of a <composite/> |
Prerequisites |
<reference/> promotes a <component/> <reference/> with multiplicity 0..n |
Predicate |
@multiplicity has a value of 0..1 or a value of 1..1 or a value of 0..n or a value of 1..n |
Prescription Level |
Mandatory |
Tags |
composite reference multiplicity |
Assertion ID |
ASM-TA-6018 |
Source |
[ASM60011] |
Target |
@multiplicity attribute of <reference/> element of a <composite/> |
Prerequisites |
<reference/> promotes a <component/> <reference/> with multiplicity 1..n |
Predicate |
@multiplicity has a value of 1..1 or a value of 1..n |
Prescription Level |
Mandatory |
Tags |
composite reference multiplicity |
Assertion ID |
ASM-TA-6019 |
Source |
[ASM60014] |
Target |
@name attribute of <property/> element of a <composite/> |
Prerequisites |
<composite/> contains multiple <property/> elements |
Predicate |
@name attribute value is unique amongst the @name attributes of the <property/> elements of the<composite/> |
Prescription Level |
Mandatory |
Tags |
composite property name |
Assertion ID |
ASM-TA-6020 |
Source |
[ASM60022] |
Target |
<reference/> with @autowire=true of a <component> within a <composite/> |
Prerequisites |
<composite/> contains 1 <component/> <service/> that has an interface that is the same as the interface of the <reference/> |
Predicate |
<reference/> is wired to the <component/> <service/> and can invoke operations on it |
Prescription Level |
Mandatory |
Tags |
component reference autowire |
Assertion ID |
ASM-TA-6021 |
Source |
[ASM60022] |
Target |
<reference/> with @autowire=true of a <component> within a <composite/> |
Prerequisites |
<composite/> contains 1 <component/> <service/> that has an interface that is a compatible superset of the interface on the <reference/> |
Predicate |
<reference> is wired to the component <service/> and can invoke operations on it |
Prescription Level |
Mandatory |
Tags |
component reference autowire compatible interface |
Assertion ID |
ASM-TA-6022 |
Source |
[ASM60024] |
Target |
<reference/> with @autowire=true and with intents attached using @required, of a <component> within a <composite/> |
Prerequisites |
<composite/> contains 1 <component/> <service/> that is the same as the interface of the <reference/> and which has the same intents attached to it as are attached to the <reference/> |
Predicate |
<reference/> is wired to the <component/> <service/> and can invoke operations on it |
Prescription Level |
Mandatory |
Tags |
component reference autowire intents |
Assertion ID |
ASM-TA-6023 |
Source |
[ASM60024] |
Target |
<reference/> with @autowire=true and with intents attached using @required, of a <component> within a <composite/> |
Prerequisites |
<composite/> contains 1 <component/> <service/> that is the same as the interface of the <reference/> and which does not have the same intents attached to it as are attached to the <reference/> |
Predicate |
<reference/> is not wired to the <component/> <service/> and cannot invoke operations on it |
Prescription Level |
Mandatory |
Tags |
component reference autowire intents |
Assertion ID |
ASM-TA-6024 |
Source |
[ASM60025] |
Target |
<reference/> with @autowire=true and @multiplicity 0..1 of a <component> within a <composite/> |
Prerequisites |
<composite/> contains 2 or more <component/> <service/> that are compatible with the <reference/> |
Predicate |
<reference/> is wired to one <component/> <service/> and can invoke operations on it |
Prescription Level |
Mandatory |
Tags |
component reference autowire intents |
Assertion ID |
ASM-TA-6025 |
Source |
[ASM60026] |
Target |
<reference/> with @autowire=true and @multiplicity=0..n of a <component> within a <composite/> |
Prerequisites |
<composite/> contains 2 or more <component/> <service/> that are compatible with the <reference/> |
Predicate |
<reference/> is wired to all of the compatible <component> <service/> and can invoke operations on each of them |
Prescription Level |
Mandatory |
Tags |
component reference autowire intents |
Assertion ID |
ASM-TA-6026 |
Source |
[ASM60027] |
Target |
<reference/> with @autowire=true and @multiplicity=0..n or 0..1 of a <component> within a <composite/> |
Prerequisites |
<composite/> contains 0 <component/> <service/> that are compatible with the <reference/> |
Predicate |
<reference/> is not wired but the <component/> runs and can have services invoked on it |
Prescription Level |
Mandatory |
Tags |
component reference autowire unwired |
Assertion ID |
ASM-TA-6027 |
Source |
[ASM60028] |
Target |
<reference/> with @autowire=true and @multiplicity=1..1 or 1..n of a <component> within a <composite/> |
Prerequisites |
<composite/> contains 0 <component/> <service/> that are compatible with the <reference/> |
Predicate |
<reference/> is in error (unwired) and an error is reported by the runtime if an attempt is made to invoke service operations on the <component/> |
Prescription Level |
Mandatory |
Tags |
component reference autowire unwired |
Assertion ID |
ASM-TA-6028 |
Source |
[ASM60032] |
Target |
@promote attribute of <service/> of a <composite/> which is used as the <implementation/> of a higher level <component/> |
Prerequisites |
<composite/> contains contains at least 1 <component/> offering a <service> with an interface compatible with the interface of the <composite/> <serivce/> |
Predicate |
@promote attribute contains the URI of the <component/> <service/> |
Prescription Level |
Mandatory |
Tags |
composite service promote implementation |
Assertion ID |
ASM-TA-6029 |
Source |
[ASM60033] |
Target |
<reference/> with @multiplicity=1..1 or 1..n of a <component> of a <composite/> which is used as the <implementation/> of a higher level <component/> |
Prerequisites |
|
Predicate |
<reference/> is wired to a service within the <composite/> or is promoted by a <composite/> <reference/> |
Prescription Level |
Mandatory |
Tags |
component reference wire promote implementation |
Assertion ID |
ASM-TA-6030 |
Source |
[ASM60034] |
Target |
<property/> of a <component/> in a <composite/> used as the <implementation/> of a higher level <component/> |
Prerequisites |
<property/> is marked as @mustSupply=true in the componentType of the implementation of the lower level <component/> |
Predicate |
<property/> is given a value either through the @source attribute (from a <composite/> <property/>) or through a value in the <property/> configuration |
Prescription Level |
Mandatory |
Tags |
component property value source |
Assertion ID |
ASM-TA-6031 |
Source |
[ASM60030] |
Target |
@name attribute of <implementation.composite/> element |
Prerequisites |
|
Predicate |
@name attribute contains the QName of a <composite/> in the Domain |
Prescription Level |
Mandatory |
Tags |
implementation.composite name composite |
Assertion ID |
ASM-TA-6032 |
Source |
[ASM60031] |
Target |
SCA runtime |
Prerequisites |
a) <composite/> contains an <include/> element referencing a second <composite b) including the second composite into the first one creates an invalid <composite/> configuration (eg two <component/> elements have the same @name value) |
Predicate |
SCA runtime reports an error |
Prescription Level |
Mandatory |
Tags |
component property value source |
Assertion ID |
ASM-TA-6033 |
Source |
[ASM60035] |
Target |
<reference/> of <composite> |
Prerequisites |
a) <reference/> promotes 2 or more <component> <reference>s b) one promoted <component/> <reference/> has @wiredByImpl set |
Predicate |
all the <component/> <reference/> elements promoted by the <reference/> have the same value for their @wiredByImpl attribute |
Prescription Level |
Mandatory |
Tags |
composite reference promote wiredByImpl |
Assertion ID |
ASM-TA-6034 |
Source |
[ASM60036] |
Target |
@wiredByImpl attribute of <reference/> of <composite/> |
Prerequisites |
a) <reference/> promotes one or more <component/> <reference/> |
Predicate |
@wiredByImpl attribute value is the same as the @wiredByImpl value of the promoted <component/> <reference/>s |
Prescription Level |
Mandatory |
Tags |
component reference promote wiredByImpl |
Assertion ID |
ASM-TA-6035 |
Source |
[ASM60037] |
Target |
@promote attribute of a <reference/> of <composite/> |
Prerequisites |
a) <composite/> contains an <include/> element referencing a second <composite/> b) @promote attribute contains a URI pointing to a <component/> <reference/> which is contained in the second <composite/> |
Predicate |
The <reference/> promotes the <component/> <reference/> contained in the second <composite/> |
Prescription Level |
Mandatory |
Tags |
component reference promote include |
Assertion ID |
ASM-TA-6036 |
Source |
[ASM60038] |
Target |
@promote attribute of a <service/> of <composite/> |
Prerequisites |
a) <composite/> contains an <include/> element referencing a second <composite/> b) @promote attribute contains a URI pointing to a <component/> <service/> which is contained in the second <composite/> |
Predicate |
The <service/> promotes the <component/> <service/> contained in the second <composite/> |
Prescription Level |
Mandatory |
Tags |
component service promote include |
Assertion ID |
ASM-TA-6037 |
Source |
[ASM60039] |
Target |
<wire/> element of <composite/> |
Prerequisites |
a) <composite/> contains an <include/> element referencing a second <composite/> b) @source attribute of <wire/> contains a URI pointing to a <component/> <reference/> which is contained in the second <composite/> c) @target attribute of <wire/> contains a URI pointing to a <component/> <service/> which is contained in the second <composite/> |
Predicate |
The <wire/> successfully wires the <component> <reference/> to the <component/> <service/> and the reference is able to invoke an operation of the service. |
Prescription Level |
Mandatory |
Tags |
composite wire include |
Assertion ID |
ASM-TA-6038 |
Source |
[ASM60040] |
Target |
<property/> element of <composite/> |
Prerequisites |
a) The <property/> element has a @type attribute declared |
Predicate |
<property/> element does not have an @element attribute declared |
Prescription Level |
Mandatory |
Tags |
composite property type element |
Assertion ID |
ASM-TA-6039 |
Source |
[ASM60040] |
Target |
<property/> element of <composite/> |
Prerequisites |
a) The <property/> element has a @element attribute declared |
Predicate |
<property/> element does not have an @type attribute declared |
Prescription Level |
Mandatory |
Tags |
composite property type element |
Assertion ID |
ASM-TA-6040 |
Source |
[ASM60041] |
Target |
<composite/> containing an <include/> element which references a second <composite/> |
Prerequisites |
second <composite/> has @local=true |
Predicate |
<composite/> has @local=true |
Prescription Level |
Mandatory |
Tags |
composite local include |
Assertion ID |
ASM-TA-6041 |
Source |
[ASM60042] |
Target |
@name attribute of <include/> element of <composite/> |
Prerequisites |
|
Predicate |
@name attribute value is the Qname of a second <composite/> in the SCA Domain |
Prescription Level |
Mandatory |
Tags |
composite include name |
Assertion ID |
ASM-TA-6042 |
Source |
[ASM60043] |
Target |
interface of a service which is the target of a <wire/> element within a composite |
Prerequisites |
a) wire @source attribute declares a component reference in the composite b) wire @target attribute declares a component service in the composite c) both the component service and the component reference exist |
Predicate |
the interface of the service is a compatible superset of the interface of the reference |
Prescription Level |
Mandatory |
Tags |
wire target source "interface" "compatible superset" |
Assertion ID |
ASM-TA-6043 |
Source |
[ASM60045] |
Target |
composite used as the implementation of a component |
Prerequisites |
|
Predicate |
componentType of the composite is determined according to the rules in the SCA Assembly specification section "Component Type of a Composite used as a Component Implementation" |
Prescription Level |
Mandatory |
Tags |
composite implementation componentType |
Assertion ID |
ASM-TA-6044 |
Source |
[ASM60046] |
Target |
Wire declared by the @target attribute of a <reference/> of a component |
Prerequisites |
a) @target attribute declares a single target using the form "component-name/service-name" b) the component named in the @target attribute offers multiple services, each of which is compatible with the reference c) One of the services of the component named in the @target attribute has the name "service-name" |
Predicate |
The wire target is the service with the name "service-name" of the component with the name "component-name" and the reference is able to invoke this service. |
Prescription Level |
Mandatory |
Tags |
wire target service-name "component-name" |
Assertion ID |
ASM-TA-6045 |
Source |
[ASM60047] |
Target |
Wire declared by the @target attribute of a <reference/> of a component |
Prerequisites |
a) @target attribute declares a single target using the form "component-name/service-name" b) the component named in the @target attribute does not have a service with the name "service-name" c) the component named in the @target attribute has at least one service which is compatible with the reference |
Predicate |
The wire is not valid and the SCA runtime raises an error. |
Prescription Level |
Mandatory |
Tags |
wire target service-name "component-name" "error" |
Assertion ID |
ASM-TA-6046 |
Source |
[ASM60048] |
Target |
Wire declared by the @target attribute of a <reference/> of a component |
Prerequisites |
a) @target attribute declares a single target using the form "component-name" |
Predicate |
component identified by the @target attribute has a single service and this service is compatible with the reference and the reference can invoke this service |
Prescription Level |
Mandatory |
Tags |
wire target "component-name" "single" |
Assertion ID |
ASM-TA-6047 |
Source |
[ASM60049] |
Target |
Wire declared by the @target attribute of a <reference/> of a component |
Prerequisites |
a) @target attribute declares a single target using the form "component-name/service-name/binding-name" b) the component named in the @target attribute offers a service with the name "service-name" c) the service named "service-name" has multiple bindings, one of which has the name "binding-name" |
Predicate |
The wire target is the service with the name "service-name" of the component with the name "component-name", and the wire uses the binding with the name "binding-name" and the reference is able to invoke the service. |
Prescription Level |
Mandatory |
Tags |
wire target "component-name" "service-name" "binding-name" |
Assertion ID |
ASM-TA-6048 |
Source |
[ASM60050] |
Target |
Wire declared by the @target attribute of a <reference/> of a component |
Prerequisites |
a) @target attribute declares a single target using the form "component-name/service-name/binding-name" b) the component named in the @target attribute offers a service with the name "service-name" c) the service named "service-name" does not have a binding with the name "binding-name" |
Predicate |
The wire is not valid and the SCA runtime raises an error. |
Prescription Level |
Mandatory |
Tags |
wire target "component-name" "service-name" "binding-name" |
Assertion ID |
ASM-TA-6049 |
Source |
[ASM60051] |
Target |
Wire declared by the @target attribute of a <reference/> of a component |
Prerequisites |
a) @target attribute declares a single target using the form "component-name/service-name" b) the reference has some policy requirements c) the component named in the @target attribute offers a service with the name "service-name" d) the service named "service-name" has multiple <binding/> subelements, one of which is compatible with the policy requirements of the reference |
Predicate |
The wire is valid and uses the binding which is compatible with the policy requirements of the reference |
Prescription Level |
Mandatory |
Tags |
wire target "component-name" "service-name" "bindings" |
Assertion ID |
ASM-TA-8001 |
Source |
[ASM80002] |
Target |
<interface.xxx/> element |
Prerequisites |
a) The interface referred to by the <interface.xxx/> element is marked remotable using the language appropriate mechanism. b) The interface referred to by the <interface.xxx/> element has >1 operation. |
Predicate |
The name of an operation of the interface is not equal to the name of any other operation of the interface. |
Prescription Level |
Mandatory |
Tags |
"remotable interface.xxx" Language dependent |
Assertion ID |
ASM-TA-8002 |
Source |
[ASM80003] |
Target |
<interface.xxx/> element |
Prerequisites |
a) The interface referred to by the <interface.xxx/> element is marked remotable using the language appropriate mechanism. b) The interface referred to by the <interface/> element has an operation with input parameters. |
Predicate |
The value of the input parameters of the operation of the interface referred to by the <interface/> element are the same after the operation completes as they were before the operation invocation as observable by the client invoking the operation. |
Prescription Level |
Mandatory |
Tags |
"remotable interface.xxx" |
Assertion ID |
ASM-TA-8003 |
Source |
[ASM80003] |
Target |
<interface.xxx/> element |
Prerequisites |
a) The interface referred to by the <interface,xxx/> element is marked remotable using the language appropriate mechanism. b) The interface referred to by the <interface/> element has an operation with output parameters. |
Predicate |
The value of the output parameters of the operation of the interface referred to by the <interface/> element remain constant after the operation invocation has completed, as observable by the service implementation. |
Prescription Level |
Mandatory |
Tags |
"remotable" |
Assertion ID |
ASM-TA-8004 |
Source |
[ASM80004] |
Target |
<interface.xxx/> element of a <reference/> element |
Prerequisites |
The interface referred to by the <interface.xxx/> element is marked bidirectional using the language appropriate mechanism. |
Predicate |
The invoked service provider can invoke an operation of the callback interface on the client component. |
Prescription Level |
Mandatory |
Tags |
"bidirectional" component reference |
Assertion ID |
ASM-TA-8005 |
Source |
[ASM80005] |
Target |
<interface.xxx/> element |
Prerequisites |
a) The interface referred to by the <interface.xxx/> element is marked bidirectional using the language appropriate mechanism. b) The forward interface referred to by the <interface.xxx/> element is marked remotable using the language appropriate mechanism. |
Predicate |
The callback interface referred to by the <interface.xxx/> element is marked remotable using the language appropriate mechanism. |
Prescription Level |
Mandatory |
Tags |
bidirectional "remotable" Language dependent |
Assertion ID |
ASM-TA-8006 |
Source |
[ASM80005] |
Target |
<interface.xxx/> element |
Prerequisites |
a) The interface referred to by the <interface.xxx/> element is marked bidirectional using the language appropriate mechanism. b) The forward interface referred to by the <interface.xxx/> element is marked local using the language appropriate mechanism. |
Predicate |
The callback interface referred to by the <interface.xxx/> element is marked local using the language appropriate mechanism. |
Prescription Level |
Mandatory |
Tags |
"bidirectional" local Language dependent |
Assertion ID |
ASM-TA-8007 |
Source |
[ASM80010] |
Target |
<interface.xxx/> element |
Prerequisites |
The interface document referred to by the <interface.xxx/> element defines a callback interface using the language appropriate mechanism. |
Predicate |
The invoked service provider can invoke an operation of the callback interface on the client component. |
Prescription Level |
Mandatory |
Tags |
"bidirectional" component reference |
Assertion ID |
ASM-TA-8008 |
Source |
[ASM80011] |
Target |
<interface.xxx/>
element |
Prerequisites |
a) The interface document referred to by the <interface.xxx/> element defines a callback interface using the language appropriate mechanism. b) The
<interface.xxx/> elements declares a callback interface directly. |
Predicate |
The callback interface in the interface
document is compatible with the callback interface in the <interface.xxx/>
element, as defined by ASM-TA-6001 |
Prescription
Level |
Mandatory |
Tags |
"bidirectional" |
Assertion ID |
ASM-TA-8009 |
Source |
[ASM50004] |
Target |
<interface.xxx/> element of a <service/> element of a <component/> element |
Prerequisites |
The interface of the corresponding <service/> element of the <componentType/> for the <implementation/> of the <component/> declares a callback interface. |
Predicate |
The <interface.xxx/> element declares a callback interface compatible with the callback interface declared on the corresponding <service/> in the componentType, as asserted by ASM-TA-6001 |
Prescription Level |
Mandatory |
Tags |
"bidirectional" component services |
Assertion ID |
ASM-TA-8010 |
Source |
[ASM50011] |
Target |
<interface.xxx/> element of a <reference/> element of a <component/> element |
Prerequisites |
The interface of the corresponding <reference/> element of the <componentType/> for the <implementation/> of the <component/> declares a callback interface. |
Predicate |
The <interface.xxx/> element declares a callback interface compatible with the callback interface declared on the corresponding <reference/> in the componentType, as asserted by ASM-TA-6001 |
Prescription Level |
Mandatory |
Tags |
"bidirectional" component references |
Assertion ID |
ASM-TA-8011 |
Source |
[ASM50004] [ASM50011] |
Target |
<interface.xxx/>element of a <service/> or <reference/> element of a <component/> element |
Prerequisites |
The interface of the corresponding <service/> or <reference/> element of the <componentType/> element for the <implementation.xxx/> element of the <component/> element does not define a callback interface using the language appropriate mechanism. |
Predicate |
The <interface.xxx/> element of the <service/> or <reference/> element of the <component/> element does not defines a callback interface. |
Prescription Level |
Mandatory |
Tags |
"bidirectional" component services component references |
Assertion ID |
ASM-TA-8012 |
Source |
[ASM60005] |
Target |
<interface.xxx/> element of a <service/> element of a <composite/> element |
Prerequisites |
The interface of the promoted component <service/> element defines a callback interface. |
Predicate |
The <interface.xxx/> element declares a callback interface compatible with the callback interface declared on the promoted component <service/> element, as asserted by ASM-TA-6001 |
Prescription Level |
Mandatory |
Tags |
"bidirectional" composite services promote |
Assertion ID |
ASM-TA-8013 |
Source |
[ASM60012] |
Target |
<interface.xxx/> element of a <reference/> element of a <composite/> element |
Prerequisites |
The interface of the promoted component <reference/> element defines a callback interface. |
Predicate |
The <interface.xxx/> element declares a callback interface compatible with the callback interface declared on the promoted component <reference/> element, as asserted by ASM-TA-6001 |
Prescription Level |
Mandatory |
Tags |
"bidirectional" composite references promote |
Assertion ID |
ASM-TA-8014 |
Source |
[ASM60005] [ASM60012] |
Target |
<interface.xxx/> element of a <service/> or <reference/> element of a <composite/> element |
Prerequisites |
The corresponding promoted component <service/> or <reference/> does not define a callback interface. |
Predicate |
The <interface.xxx/> element does not defines a callback interface. |
Prescription Level |
Mandatory |
Tags |
"bidirectional" composite services composite references promote |
Assertion ID |
ASM-TA-8015 |
Source |
[ASM80009] |
Target |
<implementation/> of a <component/> which has a <service/> with an <interface/> which has a callback interface |
Prerequisites |
One forward operation invocation has been made from a service client component to the service |
Predicate |
The implementation can invoke an arbitrary number of operations of the callback interface on the client component an arbitrary number (including zero) of times. |
Prescription Level |
Mandatory |
Tags |
"bidirectional" |
Assertion ID |
ASM-TA-8018 |
Source |
[ASM80008] |
Target |
<service/> or <reference/> element |
Prerequisites |
The interface of a <service/> or <reference/> element has required intents. |
Predicate |
The required intents of the interface apply to the <service/> or <reference/> element using the interface. |
Prescription Level |
Mandatory |
Tags |
"intents" component services component references composite services composite references |
Assertion ID |
ASM-TA-8020 |
Source |
[ASM80001] |
Target |
@interface attribute of a <interface.wsdl> element |
Prerequisites |
|
Predicate |
The @interface attribute references a WSDL 1.1 <portType/> |
Prescription Level |
Mandatory |
Tags |
"interface.wsdl"portType |
Assertion ID |
ASM-TA-8021 |