Test Assertions for the SCA Assembly Model Version 1.1 Specification

Committee Draft 01 / Public Review Draft 01

16 June 2009

Specification URIs:

This Version:

http://docs.oasis-open.org/opencsa/sca-assembly/sca-assembly-1.1-test-assertions-cd01.html

http://docs.oasis-open.org/opencsa/sca-assembly/sca-assembly-1.1-test-assertions-cd01.odt

http://docs.oasis-open.org/opencsa/sca-assembly/sca-assembly-1.1-test-assertions-cd01.pdf (Authoritative)

Previous Version:

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

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:

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 Committee’s email list. Others should send comments to the Technical Committee by using the “Send A Comment” button on the Technical Committee’s 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. 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", [insert specific trademarked names, abbreviations, etc. here] are trademarks 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

1 Introduction 5

1.1 Example Test Assertion 5

1.2 Terminology 5

1.3 Normative References 6

1.4 Non-normative References 6

2 Test Assertions 7

2.1 Section 4 7

2.2 Section 5 10

2.3 Section 6 23

2.4 Section 7 36

2.5 Section 8 41

2.6 Section 9 47

2.7 Section 10 48

2.8 Section 12 49

2.9 Section 13 61

2.10 Section 14 62

3 Cross Mapping of Conformance Statements to Assertions 64

4 Conformance 70



1 Introduction

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].

1.1 Example Test Assertion

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.

1.2 Terminology

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]

1.3 Normative References

[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 03, “Test Assertion Guidelines” May 2009 http://docs.oasis-open.org/tag/guidelines/v1.0/200906/testassertionsguidelines-cd-03.pdf

[ASSEMBLY] OASIS Committee Draft 03, “Service Component Architecture Assembly Model Specification Version 1.1” March 2009 http://docs.oasis-open.org/opencsa/sca-assembly/sca-assembly-1.1-spec-cd03.pdf

1.4 Non-normative References

None



2 Test Assertions

2.1 Section 4



Assertion ID

ASM-TA-4001

Source

[ASM40002]

Target

@constrainingType attribute of a <componentType/> element

Prerequisites


Predicate

@constrainingType attribute value of the <componentType/> element is the QName of a <constrainingType/> element

Prescription Level

Mandatory

Tags

componentType” “constrainingType”





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”



2.2 Section 5



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

[ASM50020]

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

[ASM50021]

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

[ASM50019]

[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

[ASM50018]

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

[ASM50030]

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-5035

Source

[ASM50037]

Target

<property/> element of a <component/> element within a <composite/>

Prerequisites


Predicate

The @name attribute of the <property/> element is the same as the @name attribute of one of the <property/> child elements of the <componentType/> of the <implementation/> of the <component/>

Prescription Level

Mandatory

Tags

"component” “property” “name” “componentType”





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

"component””reference” “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]

Target

<property/> element of <component/>

Prerequisites

<component/> has an <implementation/>

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”



2.3 Section 6





Assertion ID

ASM-TA-6001

Source

[ASM60015]

[ASM60017]

[ASM60018]

[ASM60019]

[ASM60020]

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

[ASM60015]

[ASM60016]

[ASM60017]

[ASM60018]

[ASM60019]

[ASM60020]

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

[ASM60015]

[ASM60016]

[ASM60017]

[ASM60018]

[ASM60019]

[ASM60020]

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” “promote””interface”







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

[ASM60023]

Target

<reference/> with @autowire=true of a <component> within a <composite/>

Prerequisites

<composite/> contains 1 <component/> <service/> that is compatible with the <reference/>

Predicate

<interface/> of the <service/> to which the <reference/> is wired is a compatible superset of the <interface/> of the <reference/>, as asserted by ASM-TA-6002

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”







2.4 Section 7



Assertion ID

ASM-TA-7001

Source

[ASM70001]

Target

<service/> elements of the <constrainingType/> element

Prerequisites

<component/> element has @constrainingType attribute, which points to a <constrainingType/> element

Predicate

Each <service/> element from the <constrainingType/> element is implemented by the <component/> element implementation

Prescription Level

Mandatory

Tags

constraining type” “service”





Assertion ID

ASM-TA-7002

Source

[ASM70001]

Target

<reference/> elements of the <constrainingType/> element

Prerequisites

<component/> element has @constrainingType attribute, which points to a <constrainingType/> element

Predicate

Each <reference/> element from the <constrainingType/> element is implemented by the <component/> element implementation

Prescription Level

Mandatory

Tags

constraining type” “reference”





Assertion ID

ASM-TA-7003

Source

[ASM70001]

Target

<property/> elements of the <constrainingType/> element

Prerequisites

<component/> element has @constrainingType attribute, which points to a <constrainingType/> element

Predicate

Each <property/> element from the <constrainingType/> element is implemented by the <component/> element implementation

Prescription Level

Mandatory

Tags

constraining type”





Assertion ID

ASM-TA-7004

Source

[ASM70002]

Target

SCA runtime processing a <component/>

Prerequisites

1) <component/> element has @constrainingType attribute, which points to a <constrainingType/> element

2) <implementation/> of the <component/> has a configuration which does not conform to the <constrainingType/> element

Predicate

SCA runtime raises an error

Prescription Level

Mandatory

Tags

constraining type”





Assertion ID

ASM-TA-7005

Source

[ASM70003]

Target

@targetNamespace/@name attributes of <constrainingType/> element

Prerequisites

1) <constrainingType/> element is in an SCA Domain

2) SCA Domain contains 1 or more other <constrainingType/> elements

Predicate

@targetNamespace/@name attributes combination of the <constrainingType/> element is not equal to the @targetNamespace/@name attributes combination of any other <constrainingType/> element in the SCA Domain.

Prescription Level

Mandatory

Tags

constraining type” “name”





Assertion ID

ASM-TA-7006

Source

[ASM70004]

Target

<implementation/> of <component/>

Prerequisites

<component/> has @constrainingType declared

@constrainingType references a <constrainingType/> with zero or more <service/> subelements declared

Predicate

<componentType/> of <implementation/> contains each <service/> element declared by the <constrainingType/>

Prescription Level

Mandatory

Tags

constraining type” “service”





Assertion ID

ASM-TA-7007

Source

[ASM70004]

Target

<implementation/> of <component/>

Prerequisites

<component/> has @constrainingType declared

@constrainingType references a <constrainingType/> with zero or more <reference/> subelements declared

Predicate

<componentType/> of <implementation/> contains each <reference/> element declared by the <constrainingType/>

Prescription Level

Mandatory

Tags

constraining type” “reference”





Assertion ID

ASM-TA-7008

Source

[ASM70004]

Target

<implementation/> of <component/>

Prerequisites

<component/> has @constrainingType declared

@constrainingType references a <constrainingType/> with zero or more <property/> subelements declared

Predicate

<componentType/> of <implementation/> contains each <property/> element declared by the <constrainingType/>

Prescription Level

Mandatory

Tags

constraining type” “property”





Assertion ID

ASM-TA-7009

Source

[ASM70005]

Target

<implementation/> of <component/>

Prerequisites

<component/> has @constrainingType declared

@constrainingType references a <constrainingType/> with zero or more <service/> subelements declared

<componentType/> of <implementation/> contains one or more <service/> elements not declared in the <constrainingType/>

Predicate

<component/> configuration is valid and the <component/> runs

Prescription Level

Permitted

Tags

constraining type” “name”





Assertion ID

ASM-TA-7010

Source

[ASM70005]

Target

<implementation/> of <component/>

Prerequisites

<component/> has @constrainingType declared

@constrainingType references a <constrainingType/> with zero or more <reference/> subelements declared

<componentType/> of <implementation/> contains one or more <reference/> elements not declared in the <constrainingType/>

Predicate

All <reference/> elements in the <componentType/> of the <implementation/> which are not declared in the <constrainingType/> have @multiplicity 0..1 or 0..n

Prescription Level

Mandatory

Tags

constraining type” “reference” “implementation” “additional”





Assertion ID

ASM-TA-7011

Source

[ASM70005]

Target

<implementation/> of <component/>

Prerequisites

1) <component/> has @constrainingType declared

2)@constrainingType references a <constrainingType/> with zero or more <property/> subelements declared

3) <componentType/> of <implementation/> contains one or more <property/> elements not declared in the <constrainingType/>

Predicate

All <property/> elements in the <componentType/> of the <implementation/> which are not declared in the <constrainingType/> have @mustSupply=false

Prescription Level

Mandatory

Tags

constraining type” “property” “implementation” “additional”





Assertion ID

ASM-TA-7012

Source

[ASM70006]

Target

<component/> with <implementation/>

Prerequisites

1) <component/> has @constrainingType declared

2) @constrainingType references a <constrainingType/>

3) <componentType/> of <implementation/> contains one or more <service/>, <reference/> or <property/> elements not declared in the <constrainingType/>

Predicate

<component/> does not contain any <service/>, <reference/> or <property/> subelements which are not declared in <constrainingType/>

Prescription Level

Mandatory

Tags

constraining type” “property” “implementation” “additional”





Assertion ID

ASM-TA-7013

Source

[ASM70006]

Target

<composite/> with <component/> with <implementation/>

Prerequisites

1) <component/> has @constrainingType declared

2) @constrainingType references a <constrainingType/>

3) <componentType/> of <implementation/> contains one or more <service/> elements not declared in the <constrainingType/>

Predicate

<composite/> does not contain a <service/> promoting a <service/> of the <component/> not declared in the <constrainingType/>

Prescription Level

Mandatory

Tags

constraining type” “service” “implementation” “additional” “composite”





Assertion ID

ASM-TA-7014

Source

[ASM70006]

Target

<composite/> with <component/> with <implementation/>

Prerequisites

1) <component/> has @constrainingType declared

2) @constrainingType references a <constrainingType/>

3) <componentType/> of <implementation/> contains one or more <reference/> elements not declared in the <constrainingType/>

Predicate

<composite/> does not contain a <reference/> promoting a <reference/> of the <component/> not declared in the <constrainingType/>

Prescription Level

Mandatory

Tags

constraining type” “service” “implementation” “additional” “composite”





2.5 Section 8



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"





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"





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”





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

[ASM80012]

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

[ASM80012]

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

[ASM80013]

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

[ASM80014]

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

[ASM80012]

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

[ASM80015]

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

Source

[ASM80016]

Target

@callbackInterface of a <interface.wsdl> element

Prerequisites


Predicate

The @callbackInterface attribute references a WSDL 1.1 <portType/> element

Prescription Level

Mandatory

Tags

"interface.wsdl"”portType”





Assertion ID

ASM-TA-8022

Source

[ASM80017]

Target

<interface.wsdl/> element

Prerequisites


Predicate

<interface.wsdl/> element does not contain @remotable="false"

Prescription Level

Mandatory

Tags

"interface.wsdl"”portType”



2.6 Section 9



Assertion ID

ASM-TA-9002

Source

[ASM90001]

Target

The @uri attribute of a <binding /> element of a <reference/> element

Prerequisites

The @uri attribute has a non-default value

Predicate

  1. The @uri attribute is the componentName/serviceName of a wire to an endpoint within the SCA Domain.

OR

  1. The @uri attribute is the address of an endpoint to an accessible service inside or outside the SCA Domain, using the addressing scheme determined by the binding type

Prescription Level

Mandatory

Tags

binding” “reference” “uri”





Assertion ID

ASM-TA-9003

Source

[ASM90002]

Target

@name attribute of a <binding /> element in a <service/> or <reference/> element

Prerequisites

The <service/> or <reference/> element has more than one <binding /> element

Predicate

The value of the @name attribute for a <binding /> element must be unique within all the <binding /> elements for each <service/> or <reference/> element

Prescription Level

Mandatory

Tags

binding” “service” “reference” “name”





Assertion ID

ASM-TA-9004

Source

[ASM90003]

Target

<binding /> element of a <reference/> element

Prerequisites

<binding/> element does not specify an endpoint using binding specific mechanisms

Predicate

<reference/> element has a @uri attribute which resolves to a valid service endpoint

Prescription Level

Mandatory

Tags

binding” reference” “uri”





Assertion ID

ASM-TA-9005

Source

[ASM90004]

Target

<reference/> element of a <component/>

Prerequisites

<reference/> element is wired to a target <component/> <service/> in the SCA domain

target <service/> has multiple <binding/> subelements, each with an @name attribute declared

wire between reference and service uses a specific binding

Predicate

<reference/> element has a @target attribute which has the form “componentName/serviceName/bindingName”

Prescription Level

Mandatory

Tags

binding” reference” “target”



2.7 Section 10



Assertion ID

ASM-TA-10001

Source

[ASM10001]

Target

QName of <intent/>, <policySet/>, <binding/>, <bindingType/> or <implementationType/> subelement of a <definitions/> element

Prerequisites


Predicate

QName is unique amongst all subelements of all <definitions/> elements in the SCA Domain

Prescription Level

Mandatory

Tags

QName” “Domain” “definitions”





Assertion ID

ASM-TA-10002

Source

[ASM100002]

Target

<intent/>, <policySet/>, <binding/>, <bindingType/> or <implementationType/> subelement of a <definitions/> element in the SCA Domain

Prerequisites


Predicate

Element is accessible for reference by any artifact in the SCA Domain

Prescription Level

Mandatory

Tags

Domain” “SCA” “definitions”





Assertion ID

ASM-TA-10003

Source

[ASM100003]

Target

definitions.xml file

Prerequisites

Contents of definitions.xml file do not conform to the sca-definitional.xsd schema

Predicate

The SCA runtime rejects the definitions.xml file and raises an error

Prescription Level

Mandatory

Tags

Domain” “SCA” “definitions.xml” “sca-definitions.xsd” “schema”



2.8 Section 12



Assertion ID

ASM-TA-12001

Source

[ASM12001]

Target

SCA contribution

Prerequisites


Predicate

Artifacts of the contribution are presented as a hierarchy of resources based off a single root

Prescription Level

Mandatory

Tags

contribution” “resources” “hierarchy”





Assertion ID

ASM-TA-12002

Source

[ASM12002]

Target

SCA contribution

Prerequisites


Predicate

Directory with the name META-INF exists at the root of the contribution

Prescription Level

Optional

Tags

contribution” “META-INF”





Assertion ID

ASM-TA-12003

Source

[ASM12003]

Target

SCA contribution

Prerequisites

Contribution has a META-INF directory at the root (ASM-TA-12002)

Predicate

Contribution META-INF directory contains a file with the name sca-contribution.xml

Prescription Level

Optional

Tags

contribution” “META-INF” “sca-contribution.xml”





Assertion ID

ASM-TA-12005

Source

[ASM12005]

Target

Artifact related declarations of how to resolve artifacts referenced in contribution

Prerequisites

Contribution contains references to artifacts not contained within the contribution but exist elsewhere such as in other contributions

Predicate

Artifacts are resolved using artifact related mechanisms

Prescription Level

Mandatory

Tags

contribution” “artifact” “resolution”





Assertion ID

ASM-TA-12006

Source

[ASM12021]

Target

Artifact related declaration of how to resolve an artifact referenced in contribution

Prerequisites

Artifact cannot be found using artifact related mechanisms

Predicate

SCA runtime reports an error

Prescription Level

Mandatory

Tags

contribution” “artifact” “resolution”





Assertion ID

ASM-TA-12007

Source

[ASM12006]

Target

Contribution in ZIP packaging format

Prerequisites


Predicate

SCA runtime accepts contribution

Prescription Level

Mandatory

Tags

contribution” “ZIP”





Assertion ID

ASM-TA-12008

Source

[ASM12007]

Target

2 contributions with exported artifacts

Prerequisites

An artifact name exported by one contribution is the same as an artifact name exported by the second contribution

Predicate

All artifact names exported by one contribution are different from any artifact name exported by the second contribution

Prescription Level

Optional

Tags

contribution” “artifact” “name”





Assertion ID

ASM-TA-12009

Source

[ASM12008]

Target

SCA runtime

Prerequisites


Predicate

SCA runtime has contribution functions

Prescription Level

Optional

Tags

SCA runtime” “contribution” “functions”





Assertion ID

ASM-TA-12010

Source

[ASM12009]

Target

Contribution which has dependent contributions from which it resolves artifacts

Prerequisites

2 indirect dependent contributions (ie dependents of dependents) export conflicting artifacts

Predicate

Conflicting dependent contributions are resolved by an entry in the dependent contribution list of the contribution

Prescription Level

Mandatory

Tags

contribution” “import” “conflict”





Assertion ID

ASM-TA-12011

Source

[ASM12010]

Target

Contribution contains a reference to an artifact which is marked with a non-SCA artifact resolution mechanism

Prerequisites


Predicate

Non-SCA artifact resolution mechanism is used to resolve the artifact reference

Prescription Level

Mandatory

Tags

contribution” “non-SCA” “artifact” “resolution”





Assertion ID

ASM-TA-12012

Source

[ASM12011]

Target

Contribution contains a reference to an artifact which is marked with a non-SCA artifact resolution mechanism

Prerequisites

Non-SCA artifact resolution mechanism does not resolve the artifact

Predicate

SCA runtime reports an error that it cannot resolve the artifact

Prescription Level

Mandatory

Tags

contribution” “non-SCA” “artifact” “resolution”





Assertion ID

ASM-TA-12013

Source

[ASM12012]

Target

<reference/> of a <component/> deployed at the SCA Domain level

Prerequisites

1) <reference/> has no target service configured by any means (no @target attribute, no child <binding/> elements, no @autowire attribute, no <wire/> elements with this reference in the @source attribute)

2) at least one <component/> <service/> is deployed in the Domain that is a compatible with the <component/> <reference/> (ie this service is a valid target for a wire from the <component/> <reference/>)

Predicate

The <reference/> remains unwired and as a result cannot be invoked by the <component/> <implementation/>.

(The principle here is that the autowire process is NOT used to wire the reference – since @autowire=false for the Domain itself)

Prescription Level

Mandatory

Tags

Domain” “autowire” “component” “reference”





Assertion ID

ASM-TA-12014

Source

[ASM12013]

Target

<reference/> with @autowire=true of a <component/> which is deployed to the Domain

Prerequisites

(SCA runtime does not support autowire at the Domain level)

Predicate

<component/> is not deployed to the Domain and an error is reported

Prescription Level

Optional

Tags

Domain” “autowire” “component” “reference”





Assertion ID

ASM-TA-12015

Source

[ASM12013]

Target

<reference/> with @autowire=true of a <component/> which is deployed to the Domain

Prerequisites

1) SCA runtime supports autowire at the Domain level
2) SCA Domain contains one <component/> <service/> that is compatible with the <component/> <reference/>

Predicate

<reference/> is wired to the compatible <component/> <service/>

Prescription Level

Optional

Tags

Domain” “autowire” “component” “reference”





Assertion ID

ASM-TA-12016

Source

[ASM12013]

Target

<reference/> with @autowire=true of a <component/> which is deployed to the Domain

Prerequisites

1) SCA runtime supports autowire at the Domain level
2) SCA runtime only evaluates autowire targets when a component is deployed
3) SCA Domain contains one <component/> <service/> that is compatible with the <component/> <reference/>, when the <component/> <reference/> is deployed
4) An additional <component/> <service/> compatible with the <component/> <reference/> s deployed to the SCA Domain, later than the time when the <component/> <reference/> is deployed.

Predicate

<reference/> wiring remains unchanged when the second <component/> <service/> is deployed

Prescription Level

Optional

Tags

Domain” “autowire” “component” “reference”





Assertion ID

ASM-TA-12017

Source

[ASM12013]

Target

<reference/> with @autowire=true of a <component/> which is deployed to the Domain

Prerequisites

1) SCA runtime supports autowire at the Domain level
2) SCA runtime re-evaluates autowire targets when the Domain configuration is updated by deployment actions
3) SCA Domain contains one <component/> <service/> that is compatible with the <component/> <reference/>, when the <component/> <reference/> is deployed
4) An additional <component/> <service/> compatible with the <component/> <reference/> s deployed to the SCA Domain, later than the time when the <component/> <reference/> is deployed.
5) <reference/> has multiplicity 0..n

Predicate

<reference/> wiring is updated when the second <component/> <service/> is deployed and the <reference/> is able to invoke the second <component/> <service/>

Prescription Level

Optional

Tags

Domain” “autowire” “component” “reference”





Assertion ID

ASM-TA-12018

Source

[ASM12014]

Target

<reference/> of <component/> deployed at the SCA Domain level

Prerequisites

1) SCA runtime supports updating of <reference/> targets at runtime
2) New <wire/> element is deployed to the SCA Domain, with @source set to the <component/> <reference/> and @source set to a <component/> <service/> which is compatible with the <component/> <reference/>

Predicate

<reference/> wiring is updated when the <wire/> is deployed and the <reference/> is able to invoke the <component/> <service/> declared by the <wire/> @target attribute.

Prescription Level

Optional

Tags

Domain” “component” “reference” “wire” “update”





Assertion ID

ASM-TA-12019

Source

[ASM12015]

Target

<component/> at the SCA domain level

Prerequisites

1) Configuration of the <component/> is updated by a deployment action

2) <component/> has an invokable <service/>

Predicate

Invocation of the <component/> <service/> by a new client after the deployment action is complete reflects the updated configuration of the <component/>

Prescription Level

Mandatory

Tags

component” “configuration” “update” “Domain”





Assertion ID

ASM-TA-12020

Source

[ASM12016]

Target

<component/> at the SCA domain level

Prerequisites

1) Configuration of the <component/> is updated by a deployment action

2) Instances of the <component/> are in existence at the time of the deployment action

3) SCA runtime maintains existing instances with the old configuration after the configuration is updated by the deployment action

Predicate

<component/> instances with the initial configuration continue to exist and to service requests after the deployment action has completed

Prescription Level

Optional

Tags

component” “configuration” “update” “Domain”





Assertion ID

ASM-TA-12021

Source

[ASM12016]

Target

<component/> at the SCA domain level

Prerequisites

1) Configuration of the <component/> is updated by a deployment action

2) Instances of the <component/> are in existence at the time of the deployment action

3) SCA runtime stops and discards existing instances with the old configuration after the configuration is updated by the deployment action

Predicate

<component/> instances with the initial configuration are stopped and discarded and cease to service requests after the deployment action has completed

Prescription Level

Optional

Tags

component” “configuration” “update” “Domain”





Assertion ID

ASM-TA-12022

Source

[ASM12017]

Target

<reference/> of a <component/> where the reference is wired to the <service/> of a second <component/>

Prerequisites

1) second <component/> is removed by a deployment action

2) <reference/> wire is not the result of the autowire process

Predicate

Invocation of any operation of the <reference/> receives a Service Unavailable fault

Prescription Level

Optional

Tags

component” “reference” “deployment” “remove” "target"





Assertion ID

ASM-TA-12023

Source

[ASM12017]

Target

<reference/> of a <component/> where the reference is wired to the <service/> of a second <component/>

Prerequisites

1) second <component/> is removed by a deployment action

2) <reference/> wire is the result of the autowire process

3) SCA runtime supports dynamic rewiring of references

4) a third <component/> exists in the Domain which has a <service/> which is compatible with the <component/> <reference/>

Predicate

After the deployment action is complete, <reference/> becomes wired to the <service/> of the third <component/> and service invocations through the <reference/> result in invocations of the operations of the <service/> of the third <component/>

Prescription Level

Optional

Tags

component” “reference” “deployment” “remove” "target" "autowire"





Assertion ID

ASM-TA-12024

Source

[ASM12018]

Target

<component/> <service/> that is the target of a wire

Prerequisites

1) <component/> configuration is updated by a deployment action

Predicate

invocations to the <service/> over that wire that take place after the deployment action is complete use the new configuration of the <component/>

Prescription Level

Preferred

Tags

component” “service” “deployment” “update” "target"





Assertion ID

ASM-TA-12025

Source

[ASM12020]

Target

<reference/> with @autowire=true of a <component/> deployed at the Domain level

Prerequisites

1) new <component/> is deployed into the Domain which has a <service/> that is a compatible with the <reference/>

2) SCA runtime supports dynamic update of references

Predicate

target(s) of the <reference/> are dynamically updated so that all invocations of the <reference/> after the deployment of the new <component/> is complete can use the <service/> of the new <component/>

Prescription Level

Optional

Tags

component” “reference” “autowire” “target” "deployment" "dynamic"





Assertion ID

ASM-TA-12026

Source

[ASM12020]

Target

<reference/> with @autowire=true of a <component/> deployed at the Domain level

Prerequisites

1) new <component/> is deployed into the Domain which has a <service/> that is a compatible with the <reference/>

2) SCA runtime does not support dynamic update of references

Predicate

target(s) of the <reference/> remain unchanged until its <component/> is stopped and restarted - invocation of operations of the <reference/> cannot use the <service/> of the new <component/> until this occurs.

Prescription Level

Optional

Tags

component” “reference” “autowire” “target” "deployment"





Assertion ID

ASM-TA-12027

Source

[ASM12022]

Target

a reference to an artifact in a contribution where that artifact is resolved using the SCA import mechanism

Prerequisites

1) the <contribution/> document has multiple <import/> declarations which relate to the namespace of the referenced artifact

Predicate

the search to resolve the artifact is conducted by searching the locations identified by the <import/> declarations in the order in which the <import/> statements appear in the <contribution/> document

Prescription Level

Mandatory

Tags

contribution” “import” “artifact” “resolution” "multiple"





Assertion ID

ASM-TA-12028

Source

[ASM12023]

[ASM12024]

Target

a reference to an artifact in a contribution where that artifact is resolved using the SCA import mechanism

Prerequisites

1) the <contribution/> document has an <import/> declaration for the namespace of the artifact

2) the location identified by the <import/> declaration contains an instance of the artifact

3) the contribution containing the reference to the artifact also contains an instance of the artifact

Predicate

the artifact reference is resolved to the artifact instance from the location identified by the <import/> declaration

Prescription Level

Mandatory

Tags

contribution” “import” “artifact” “resolution”





Assertion ID

ASM-TA-12029

Source

[ASM12023]

Target

a reference to an artifact in a contribution where that artifact is resolved using the SCA import mechanism

Prerequisites

1) the <contribution/> document has an <import/> declaration for the namespace of the artifact

2) the location identified by the <import/> declaration does not contain an instance of the artifact

3) the contribution containing the reference to the artifact also contains an instance of the artifact

Predicate

the artifact reference is resolved to the artifact instance in the contribution which contains the reference

Prescription Level

Mandatory

Tags

contribution” “import” “artifact” “resolution”





Assertion ID

ASM-TA-12030

Source

[ASM12026]

Target

a reference to an artifact in a contribution which resolves to an artifact instance in a second contribution

Prerequisites

1) the resolved artifact has references to yet further artifacts

2) both the original contribution and the second contribution have <import/> statements relating to namespace(s) of the additional artifacts

Predicate

the artifact references of the resolved artifact instance are resolved using the <import/> statements of the contribution which contains the artifact instance

Prescription Level

Mandatory

Tags

contribution” “import” “artifact” “resolution”







Assertion ID

ASM-TA-12031

Source

[ASM12025]

Target

a reference to an artifact in a contribution where that artifact is resolved using the SCA import mechanism

Prerequisites

1) the <contribution/> document has an <import/> declaration for the namespace of the artifact

2) the location identified by the <import/> declaration does not contain an instance of the artifact

3) the contribution containing the reference to the artifact also does not contain an instance of the artifact

Predicate

the artifact references remains unresolved and the SCA runtime reports an error to this effect

Prescription Level

Mandatory

Tags

contribution” “import” “artifact” “resolution” "unresolved" "error"





Assertion ID

ASM-TA-12031

Source

[ASM12025]

Target

a reference to an artifact in a contribution where that artifact is resolved using the SCA import mechanism

Prerequisites

1) the <contribution/> document has an <import/> declaration for the namespace of the artifact

2) the location identified by the <import/> declaration does not contain an instance of the artifact

3) the contribution containing the reference to the artifact also does not contain an instance of the artifact

Predicate

the artifact references remains unresolved and the SCA runtime reports an error to this effect

Prescription Level

Mandatory

Tags

contribution” “import” “artifact” “resolution” "unresolved" "error"





Assertion ID

ASM-TA-12032

Source

[ASM12027]

Target

sca-contribution.xml file in an SCA contribution

Prerequisites

sca-contribution.xml file contents do not conform to the sca-contribution.xsd

Predicate

SCA runtime raises an error when it reads the sca-contribution.xml file

Prescription Level

Mandatory

Tags

sca-contribution.xsd” “sca-contribution.xml”





Assertion ID

ASM-TA-12033

Source

[ASM12029]

Target

<deployable/> element in an sca-contribution.xml file in an SCA contribution

Prerequisites

<deployable/> element points at a <composite/> in the contribution

Predicate

SCA runtime deploys and runs the <composite/> referenced by the <deployable/> element

Prescription Level

Optional

Tags

sca-contribution.xml” “deplpyable”





Assertion ID

ASM-TA-12034

Source

[ASM12030]

Target

@namespace attribute <export/> element in sca-contribution.xml file in an SCA contribution

Prerequisites

contribution contains one or more XML artifacts

Predicate

@namespace attribute contains the namespace of one or more of the XML artifacts contained in the contribution

Prescription Level

Optional

Tags

sca-contribution.xsd” “export” “namespace” “atrifacts”





Assertion ID

ASM-TA-12035

Source

[ASM12031]

Target

artifact with dependencies

Prerequisites

a) artifact is contained within a first SCA contribution

b) artifact is exported from the first contribution

c) artifact is used as a dependency by a second artifact in a second contribution, which imports the namespace of the first artifact

d) both first contribution and the second contribution contain artifacts that could satisfy the dependencies of the first artifact

Predicate

the artifacts dependencies are resolved within the context of the first contribution

Prescription Level

Mandatory

Tags

artifact” “resolution” “context” “contribution”







2.9 Section 13



Assertion ID

ASM-TA-13001

Source

[ASM13001]

Target

Composite file that violates one or more of the sca-core.xsd, sca-interface-wsdl.xsd, sca-implementation-composite.xsd and sca-binding-sca.xsd schemas.

Prerequisites


Predicate

SCA runtime rejects the composite file and raises an error

Prescription Level

Mandatory

Tags

composite” “schema” “error”





Assertion ID

ASM-TA-13002

Source

[ASM13002]

Target

Contribution file that violates the sca-contribution.xsd schema.

Prerequisites


Predicate

SCA runtime rejects the contribution file and raises an error

Prescription Level

Mandatory

Tags

contribution” “schema” “error”





Assertion ID

ASM-TA-13003

Source

[ASM13003]

Target

definitions file that does not conform to the sca-definitions.xsd schema

Prerequisites


Predicate

SCA runtime rejects the definitions file and raises an error

Prescription Level

Mandatory

Tags

composite” “schema” “error”



2.10 Section 14



Assertion ID

ASM-TA-14001

Source

[ASM14001]

Target

SCA artifact containing error(s) detectable through static analysis

Prerequisites

1) Artifact is deployed to the SCA Domain

2) SCA runtime detects errors at deployment time

Predicate

SCA runtime detects the error at deployment time and raises an error

Prescription Level

Optional

Tags

deployment” “error” “static”





Assertion ID

ASM-TA-14002

Source

[ASM14002]

Target

Contribution that contains 1 or more artifacts with errors detectable through static analysis

Prerequisites


Predicate

SCA runtime prevents deployment of the contribution and raises an error

Prescription Level

Optional

Tags

contribution” “deployment” “error” “static”





Assertion ID

ASM-TA-14003

Source

[ASM14003]

Target

Component attempts an activity that causes an error to be detected at runtime

Prerequisites


Predicate

SCA runtime raises an error to the component

Prescription Level

Mandatory

Tags

component” “error” “runtime”





Assertion ID

ASM-TA-14004

Source

[ASM14004]

Target

Deployed component associated with an error detectable by static analysis

Prerequisites


Predicate

SCA runtime does not run the component

Prescription Level

Optional

Tags

contribution” “import” “artifact” “resolution” "unresolved" "error"







3 Cross Mapping of Conformance Statements to Assertions





Conformance statement

Test Assertion

ASM40001

Not testable

ASM40002

ASM-TA-4001

ASM40003

ASM-TA-4002

ASM40004

ASM-TA-4003

ASM40005

ASM-TA-4004

ASM40006

ASM-TA-4005

ASM40007

ASM-TA-4006

ASM40008

ASM-TA-4007

ASM40009

ASM-TA-4008

ASM40010

ASM-TA-4009

ASM-TA-4010

ASM40011

ASM-TA-4011







Conformance statement

Test Assertion

ASM50001

ASM-TA-5005

ASM50002

ASM-TA-5001

ASM50003

ASM-TA-5002

ASM50004

ASM-TA-5006

ASM50005

ASM-TA-5009

ASM50006

ASM-TA-5043

ASM50007

ASM-TA-5003

ASM50008

ASM-TA-5004

ASM50009

ASM-TA-5010

ASM-TA-5011

ASM-TA-5012

ASM-TA-5013

ASM50010

ASM-TA-5014

ASM-TA-5015

ASM50011

ASM-TA-5016

ASM50012

ASM-TA-5017

ASM-TA-5018

ASM50013

ASM-TA-5019

ASM-TA-5020

ASM50014

ASM-TA-5021

ASM-TA-5022

ASM-TA-5023

ASM50015

ASM-TA-5024

ASM50016

Untestable (leave for Bindings specs)

ASM50018

ASM-TA-5028

ASM50019

ASM-TA-5027

ASM50020

ASM-TA-5025

ASM50021

ASM-TA-5026

ASM50022

ASM-TA-5027

ASM50025

ASM-TA-5029

ASM50026

ASM-TA-5030

ASM50027

ASM-TA-5031

ASM50028

ASM-TA-5032

ASM50029

ASM-TA-5033

ASM50030

ASM-TA-5034

ASM50031

ASM-TA-5035

ASM50032

ASM-TA-5036

ASM50033

ASM-TA-5037

ASM50034

ASM-TA-5038

ASM50035

ASM-TA-5039

ASM-TA-5040

ASM50036

ASM-TA-5041

ASM50037

ASM-TA-5042







Conformance statement

Test Assertion

ASM60001

ASM-TA-6004

ASM60002

ASM-TA-6005

ASM60003

ASM-TA-6006

ASM60004

ASM-TA-6007

ASM60005

ASM-TA-6008

ASM60006

ASM-TA-6009

ASM60007

ASM-TA-6010

ASM60008

ASM-TA-6011

ASM-TA-6012

ASM60009

ASM-TA-6013

ASM60010

ASM-TA-6014

ASM60011

ASM-TA-6015

ASM-TA-6016

ASM-TA-6017

ASM-TA-6018

ASM60012

ASM-TA-6011

ASM60013

ASM-TA-6012

ASM60014

ASM-TA-6019

ASM60015

ASM-TA-6001

ASM-TA-6002

ASM-TA-6003

ASM60016

ASM-TA-6002

ASM-TA-6003

ASM60017

ASM-TA-6001

ASM-TA-6002

ASM-TA-6003

ASM60018

ASM-TA-6001

ASM-TA-6002

ASM-TA-6003

ASM60019

ASM-TA-6001

ASM-TA-6002

ASM-TA-6003

ASM60020

ASM-TA-6001

ASM-TA-6002

ASM-TA-6003

ASM60021

Untestable

ASM60022

ASM-TA-6020

ASM60023

ASM-TA-6021

ASM60024

ASM-TA-6022

ASM-TA-6023

ASM60025

ASM-TA-6024

ASM60026

ASM-TA-6025

ASM60027

ASM-TA-6026

ASM60028

ASM-TA-6027

ASM60030

ASM-TA-6031

ASM60031

ASM-TA-6032

ASM60032

ASM-TA-6028

ASM60033

ASM-TA-6029

ASM60034

ASM-TA-6030

ASM60035

ASM-TA-6033

ASM60036

ASM-TA-6034

ASM60037

ASM-TA-6035

ASM60038

ASM-TA-6036

ASM60039

ASM-TA-6037

ASM60040

ASM-TA-6038

ASM-TA-6039

ASM60041

ASM-TA-6040

ASM60042

ASM-TA-6041



Conformance statement

Test Assertion

ASM70001

ASM-TA-7001

ASM-TA-7002

ASM-TA-7003

ASM70002

ASM-TA-7004

ASM70003

ASM-TA-7005

ASM70004

ASM-TA-7006

ASM-TA-7007

ASM-TA-7008

ASM70005

ASM-TA-7009

ASM-TA-7010

ASM-TA-7011

ASM70006

ASM-TA-7012

ASM-TA-7013

ASM-TA-7014



Conformance statement

Test Assertion

ASM80001

ASM-TA-8020

ASM80002

ASM-TA-8001

ASM80003

ASM-TA-8002

ASM-TA-8003

ASM80004

ASM-TA-8004

ASM80005

ASM-TA-8005

ASM-TA-8006

ASM80008

ASM-TA-8018

ASM80009

ASM-TA-8015

ASM80010

ASM-TA-8007

ASM80011

ASM-TA-8008

ASM80012

ASM-TA-8009

ASM-TA-8010

ASM80013

ASM-TA-8011

ASM80014

ASM-TA-8012

ASM-TA-8013

ASM80015

ASM-TA-8014

ASM80016

ASM-TA-8021
ASM-TA-8021

ASM80017

ASM-TA-8022





Conformance statement

Test Assertion

ASM90001

ASM-TA-9002

ASM90002

ASM-TA-9003

ASM90003

ASM-TA-9004

ASM90004

ASM-TA-9005



Conformance statement

Test Assertion

ASM100001

ASM-TA-10001

ASM100002

ASM-TA-10002

ASM100003

ASM-TA-10003



Conformance statement

Test Assertion

ASM12001

ASM-TA-12001

ASM12002

ASM-TA-12002

ASM12003

ASM-TA-12003

ASM12005

ASM-TA-12005

ASM12006

ASM-TA-12007

ASM12007

ASM-TA-12008

ASM12008

ASM-TA-12009

ASM12009

ASM-TA-12010

ASM12010

ASM-TA-12011

ASM12011

ASM-TA-12012

ASM12012

ASM-TA-12013

ASM12013

ASM-TA-12014

ASM-TA-12015

ASM-TA-12016

ASM-TA-12017

ASM12014

ASM-TA-12018

ASM12015

ASM-TA-12019

ASM12016

ASM-TA-12020

ASM-TA-12021

ASM12017

ASM-TA-12022

ASM-TA-12023

ASM12018

ASM-TA-12024

ASM12020

ASM-TA-12025

ASM-TA-12026

ASM12021

ASM-TA-12006

ASM12022

ASM-TA-12027

ASM12023

ASM-TA-12028

ASM-TA-12029

ASM12024

ASM-TA-12028

ASM12025

ASM-TA-12031

ASM12026 ** needs creating **

ASM-TA-12030

ASM12027

ASM-TA-12032

ASM12028

Untestable

ASM12029

ASM-TA-12033

ASM12030

ASM-TA-12034

ASM12031

ASM-TA-12035







4 Conformance

There are no conformance statements relating to the Test Assertions.



  1. Acknowledgments

The following individuals have participated in the creation of this specification and are gratefully acknowledged

Participants:


Participant Name

Affiliation

Bryan Aupperle

IBM

Vladislav Bezrukov

SAP AG*

David Booz

IBM

Martin Chapman

Oracle Corporation

Vamsavardhana Reddy Chillakuru

IBM

Mark Combellack

Avaya, Inc.

Mike Edwards

IBM

Anish Karmarkar

Oracle Corporation

Ashok Malhotra

Oracle Corporation

Plamen Pavlov

SAP AG*

Eric Wells

Hitachi, Ltd.




  1. Non-Normative Text



  1. Revision History





Revision

Date

Editor

Changes Made

17

06/02/09

Mike Edwards

Preparations for Public Review

- added Acknowledgements

18

06/10/09

Mike Edwards

Adjusted wording of ASM-TA-8003

Added ASM-TA-8021

Added ASM-TA-8022

19

06/16/09

Mike Edwards

CD01 / Public Review draft 01

All changes accepted, file name changed to match OASIS guidelines



sca-assembly-1.1-test-assertions-cd01 16 June 2009
Copyright ©
OASIS® 2009. All Rights Reserved. Page 5 of 74