SCA POJO Component Implementation v1.1 Test Assertions Version 1.0
Committee
Specification Draft 01 /
Public Review Draft 01
8 November 2010
http://docs.oasis-open.org/opencsa/sca-j/sca-j-pojo-ci-1.1-test-assertions-1.0-csprd01.html
http://docs.oasis-open.org/opencsa/sca-j/sca-j-pojo-ci-1.1-test-assertions-1.0-csprd01.odt
http://docs.oasis-open.org/opencsa/sca-j/sca-j-pojo-ci-1.1-test-assertions-1.0-csprd01.pdf (Authoritative)
N/A
http://docs.oasis-open.org/opencsa/sca-j/sca-j-pojo-ci-1.1-test-assertions-1.0.html
http://docs.oasis-open.org/opencsa/sca-j/sca-j-pojo-ci-1.1-test-assertions-1.0.odt
http://docs.oasis-open.org/opencsa/sca-j/sca-j-pojo-ci-1.1-test-assertions-1.0.pdf (Authoritative)
Mark Combellack Avaya
David
Booz IBM
Mark Combellack Avaya
David
Booz IBM
Mike Edwards IBM
This document is related to:
None
This document defines the Test
Assertions for the SCA POJO Component Implementation
specification.
The Test Assertions represent the testable
items relating to the normative statements made in the SCA POJO
Component Implementation 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.
This document was last revised or
approved by the OASIS Service Component Architecture / J (SCA-J) 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-j/.
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-j/ipr.php
When referencing this specification the following citation format should be used:
SCA-POJO-CI-TA-v1.0 OASIS Committee Specification Draft 01, SCA POJO Component Implementation v1.1 Test Assertions Version 1.0, November 2010, http://docs.oasis-open.org/opencsa/sca-j/sca-j-pojo-ci-1.1-test-assertions-1.0-csd01.pdf
Notices
Copyright © OASIS® 2010. All Rights Reserved.
All capitalized terms in the following text have the meanings assigned to them in the OASIS Intellectual Property Rights Policy (the "OASIS IPR Policy"). The full Policy may be found at the OASIS website.
This document and translations of it may be copied and furnished to others, and derivative works that comment on or otherwise explain it or assist in its implementation may be prepared, copied, published, and distributed, in whole or in part, without restriction of any kind, provided that the above copyright notice and this section are included on all such copies and derivative works. However, this document itself may not be modified in any way, including by removing the copyright notice or references to OASIS, except as needed for the purpose of developing any document or deliverable produced by an OASIS Technical Committee (in which case the rules applicable to copyrights, as set forth in the OASIS IPR Policy, must be followed) or as required to translate it into languages other than English.
The limited permissions granted above are perpetual and will not be revoked by OASIS or its successors or assigns.
This document and the information contained herein is provided on an "AS IS" basis and OASIS DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT INFRINGE ANY OWNERSHIP RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
OASIS requests that any OASIS Party or any other party that believes it has patent claims that would necessarily be infringed by implementations of this OASIS Committee Specification or OASIS Standard, to notify OASIS TC Administrator and provide an indication of its willingness to grant patent licenses to such patent claims in a manner consistent with the IPR Mode of the OASIS Technical Committee that produced this specification.
OASIS invites any party to contact the OASIS TC Administrator if it is aware of a claim of ownership of any patent claims that would necessarily be infringed by implementations of this specification by a patent holder that is not willing to provide a license to such patent claims in a manner consistent with the IPR Mode of the OASIS Technical Committee that produced this specification. OASIS may include such claims on its website, but disclaims any obligation to do so.
OASIS takes no position regarding the validity or scope of any intellectual property or other rights that might be claimed to pertain to the implementation or use of the technology described in this document or the extent to which any license under such rights might or might not be available; neither does it represent that it has made any effort to identify any such rights. Information on OASIS' procedures with respect to rights in any document or deliverable produced by an OASIS Technical Committee can be found on the OASIS website. Copies of claims of rights made available for publication and any assurances of licenses to be made available, or the result of an attempt made to obtain a general license or permission for the use of such proprietary rights by implementers or users of this OASIS Committee Specification or OASIS Standard, can be obtained from the OASIS TC Administrator. OASIS makes no representation that any information or list of intellectual property rights will at any time be complete, or that any claims in such list are, in fact, Essential Claims.
The names "OASIS", “SCA” and “Service Component Architecture” 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
This document defines the Test Assertions for the SCA POJO Component Implementation Specification Version 1.1.
The test assertions in this document follow the format defined in the OASIS Test Assertion Guidelines specification [TA-GUIDE].
Test assertions are presented in a tabular format with rows corresponding to the entry types defined in [TA-GUIDE].
Assertion ID |
JCI-TA-xxxx |
Source |
[JCIx00yy] |
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 - "JCI" is for the SCA POJO Component Implementation 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 artefact but possibly could identify an SCA runtime and its behaviour.
Prerequisites: Defines any prerequisites for this test assertion. The prerequisites may be defined in terms of one or more other test assertions that must be true.
Predicate: The meat of the assertion - something that should evaluate to true or false for the given target.
Prescription Level: Mandatory (for MUST requirements) or Preferred (for SHOULD requirements) or Permitted (for MAY requirements).
Tags: Zero or more labels that may be attached to this test assertion - these tags can be used to group sets of assertions.
The keywords "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this specification are to be interpreted as described in IETF RFC 2119 [RFC 2119]
[RFC
2119] S. Bradner. Key words for use in RFCs to Indicate
Requirement Levels. IETF RFC 2119, March 1997.
http://www.ietf.org/rfc/rfc2119.txt.
[TA-GUIDE] OASIS Committee Draft 04, Test Assertion Guidelines, February 2010. http://docs.oasis-open.org/tag/guidelines/v1.0/cd04/testassertionsguidelines-cd-04.pdf
[JAVACI] OASIS
Committee Specification Draft 03, SCA-J
POJO Component Implementation specification V1.1,
November 2010
http://docs.oasis-open.org/opencsa/sca-j/sca-javaci-1.1-spec-csd03.pdf
None
Assertion ID |
JCI-TA-2001 |
Source |
[JCI20001] |
Target |
Introspected service interface of an SCA POJO component implementation |
Prerequisites |
|
Predicate |
The introspected interface is one of:
|
Prescription Level |
mandatory |
Tags |
“interface” |
Assertion ID |
JCI-TA-2002 |
Source |
[JCI20002] |
Target |
SCA POJO component implementation class |
Prerequisites |
SCA component provides a service interface |
Predicate |
The implementation class implements all the methods in the service interface. |
Prescription Level |
mandatory |
Tags |
“implementation” “interface” |
Assertion ID |
JCI-TA-4001 |
Source |
[JCI40001] |
Target |
SCA Runtime |
Prerequisites |
The implementation class with an unannotated field that is introspected as a property and the Java type of the field is a JAXB annotated class |
Predicate |
The SCA Runtime converts the property value into an instance of the property's Java type as defined by the XML to Java mappings in the JAXB specification with XML schema validation enabled. |
Prescription Level |
mandatory |
Tags |
“implementation” “property” |
Assertion ID |
JCI-TA-4002 |
Source |
[JCI40001] |
Target |
SCA Runtime |
Prerequisites |
The implementation class with an unannotated setter method that is introspected as a property and the Java type of the field is a JAXB annotated class |
Predicate |
The SCA Runtime converts the property value into an instance of the property's Java type as defined by the XML to Java mappings in the JAXB specification with XML schema validation enabled. |
Prescription Level |
mandatory |
Tags |
“implementation” “property” |
Assertion ID |
JCI-TA-5001 |
Source |
[JCI50001] |
Target |
SCA POJO component implementation class |
Prerequisites |
|
Predicate |
The implementation class has a public or protected constructor. |
Prescription Level |
mandatory |
Tags |
“implementation” “constructor” |
Assertion ID |
JCI-TA-5002 |
Source |
[JCI50004] |
Target |
SCA POJO component implementation class constructor |
Prerequisites |
a) SCA Java component implementation class has a constructor annotated with @Constructor b) SCA Java component implementation class has a constructor which is not annotated with @Constructor but where all its parameters are annotated with either @Property or with @Reference c) SCA POJO implementation class has a no-arg constructor which is not annotated with @Constructor d) SCA POJO implementation has other constructors with arguments which are not annotated with @Constructor and which do not have all parameters marked with either @Reference or @Property e) An SCA component using the implementation class is instantiated |
Predicate |
The SCA Runtime invokes the constructor annotated with @Constructor |
Prescription Level |
mandatory |
Tags |
“implementation” “constructor” |
Assertion ID |
JCI-TA-5003 |
Source |
[JCI50004] |
Target |
SCA POJO component implementation class constructor |
Prerequisites |
a) SCA Java component implementation class does not have a constructor annotated with @Constructor b) SCA Java component implementation class has a constructor which is not annotated with @Constructor but where all its parameters are annotated with either @Property or with @Reference c) SCA POJO implementation class has a no-arg constructor which is not annotated with @Constructor d) SCA POJO implementation has other constructors with arguments which are not annotated with @Constructor and which do not have all parameters marked with either @Reference or @Property e) An SCA component using the implementation class is instantiated |
Predicate |
The SCA Runtime invokes the constructor which is not marked with @Constructor but which has all of its parameters marked with @Property or with @Reference |
Prescription Level |
mandatory |
Tags |
“implementation” “constructor” |
Assertion ID |
JCI-TA-5004 |
Source |
[JCI50004] |
Target |
SCA POJO component implementation class constructor |
Prerequisites |
a) SCA Java component implementation class does not have a constructor annotated with @Constructor b) SCA Java component implementation class does not have a constructor which is not annotated with @Constructor but where all its parameters are annotated with either @Property or with @Reference c) SCA POJO implementation class has a no-arg constructor which is not annotated with @Constructor d) SCA POJO implementation has other constructors with arguments which are not annotated with @Constructor and which do not have all parameters marked with either @Reference or @Property e) An SCA component using the implementation class is instantiated |
Predicate |
The SCA Runtime invokes the no-arg constructor |
Prescription Level |
mandatory |
Tags |
“implementation” “constructor” |
Assertion ID |
JCI-TA-5005 |
Source |
[JCI50004] |
Target |
SCA POJO component implementation class constructor |
Prerequisites |
a) SCA Java component implementation class does not have a constructor annotated with @Constructor b) SCA Java component implementation class does not have a constructor which is not annotated with @Constructor but where all its parameters are annotated with either @Property or with @Reference c) SCA POJO implementation class does not have a no-arg constructor d) SCA POJO implementation has other constructors with arguments which are not annotated with @Constructor and which do not have all parameters marked with either @Reference or @Property e) An SCA component using the implementation class is instantiated |
Predicate |
The SCA Runtime does not invoke any constructor and an error is thrown |
Prescription Level |
mandatory |
Tags |
“implementation” “constructor” |
Assertion ID |
JCI-TA-5006 |
Source |
[JCI50002] |
Target |
SCA POJO component implementation class constructor |
Prerequisites |
|
Predicate |
At most one constructor is annotated with the @Constructor annotation |
Prescription Level |
mandatory |
Tags |
“implementation” “constructor” |
Assertion ID |
JCI-TA-5007 |
Source |
[JCI50005] |
Target |
SCA POJO component implementation class constructor |
Prerequisites |
a) The implementation class has no @Constructor annotations |
Predicate |
The implementation class has at most one constructor that has a non-empty parameter list and all parameters are annotated with either @Property or @Reference |
Prescription Level |
mandatory |
Tags |
“implementation” “constructor” |
Assertion ID |
JCI-TA-6001 |
Source |
[JCI60001] |
Target |
SCA POJO implementation annotated with @Scope("STATELESS") |
Prerequisites |
|
Predicate |
POJO implementation is run and has the operational characteristics of a STATELESS scoped implementation |
Prescription Level |
mandatory |
Tags |
“implementation” “scope” |
Assertion ID |
JCI-TA-6002 |
Source |
[JCI60001] |
Target |
SCA POJO implementation with @Scope("COMPOSITE") |
Prerequisites |
|
Predicate |
POJO implementation is run and has the operational characteristics of a COMPOSITE scoped implementation |
Prescription Level |
mandatory |
Tags |
“implementation” “scope” |
Assertion ID |
JCI-TA-8001 |
Source |
[JCI80001] |
Target |
SCA POJO implementation class with a @Service annotation |
Prerequisites |
@Service annotation has a single interface class in its value attribute and no name attribute |
Predicate |
Introspected <componentType> has a <service> element with @name equal to the simple name of the interface class in the @Service annotation |
Prescription Level |
mandatory |
Tags |
“componentType” “service” |
Assertion ID |
JCI-TA-8002 |
Source |
[JCI80001] |
Target |
SCA POJO implementation class with a @Service annotation |
Prerequisites |
@Service annotation has a single interface class in its value attribute and no name attribute The interface class contains the @Remotable annotation |
Predicate |
Introspected <componentType> has a <service> element with an <interface.java/> subelement with the @interface attribute set to the fully qualified name of the interface class in the value attribute of the @Service annotation |
Prescription Level |
mandatory |
Tags |
“componentType” “service” |
Assertion ID |
JCI-TA-8003 |
Source |
[JCI80001] |
Target |
SCA POJO implementation class with a @Service annotation and a @Requires annotation with one or more intents declared |
Prerequisites |
|
Predicate |
Introspected <componentType> has a <service> element with @requires attribute containing the set of intents in the @Requires annotation |
Prescription Level |
mandatory |
Tags |
“componentType” “service” |
Assertion ID |
JCI-TA-8004 |
Source |
[JCI80001] |
Target |
SCA POJO implementation class with zero @Service annotations, zero @Reference annotations and zero @Property annotations |
Prerequisites |
Implementation class implements an Interface where the interface class is annotated with @Remotable |
Predicate |
Introspected <componentType> has a <service> element with a) @name set to the simple name of the interface class b) an <interface.java/> subelement with @interface attribute set to the fully qualified name of the interface class |
Prescription Level |
mandatory |
Tags |
“componentType” “service” |
Assertion ID |
JCI-TA-8005 |
Source |
[JCI80001] |
Target |
SCA POJO implementation class with zero @Service annotations, zero @Reference annotations and zero @Property annotations |
Prerequisites |
Implementation class does not implement any interfaces where the interface class is annotated with @Remotable |
Predicate |
Introspected <componentType> has a <service> element with a) @name set to the simple name of the implementation class b) an <interface.java/> subelement with @interface attribute set to the fully qualified name of the implementation class |
Prescription Level |
mandatory |
Tags |
“componentType” “service” |
Assertion ID |
JCI-TA-8006 |
Source |
[JCI80001] |
Target |
SCA POJO implementation class with a @Reference annotation |
Prerequisites |
@Reference annotation has a @name parameter |
Predicate |
Introspected <componentType> has a <reference> element with @name attribute set to the value of the @name parameter of the @Reference annotation |
Prescription Level |
mandatory |
Tags |
“componentType” “reference” |
Assertion ID |
JCI-TA-8007 |
Source |
[JCI80001] |
Target |
SCA POJO implementation class with a @Reference annotation |
Prerequisites |
1) @Reference annotation annotates a field which is an array type 2) @Reference annotation has @required=true |
Predicate |
Introspected <componentType> has a <reference> element with @multiplicity set to 1..n |
Prescription Level |
mandatory |
Tags |
“componentType” “reference” |
Assertion ID |
JCI-TA-8008 |
Source |
[JCI80001] |
Target |
SCA POJO implementation class with a @Reference annotation |
Prerequisites |
1) @Reference annotation has a @required=false 2) @Reference annotation annotates a field with an interface type |
Predicate |
Introspected <componentType> has a <reference> element with @multiplicity set to 0..1 |
Prescription Level |
mandatory |
Tags |
“componentType” “reference” |
Assertion ID |
JCI-TA-8009 |
Source |
[JCI80001] |
Target |
SCA POJO implementation class with a @Reference annotation |
Prerequisites |
@Reference annotation annotates a field which is also annotated with a @Requires annotation |
Predicate |
Introspected <componentType> has a <reference> element with @requires set to the value of the @Requires annotation |
Prescription Level |
mandatory |
Tags |
“componentType” “reference” |
Assertion ID |
JCI-TA-8010 |
Source |
[JCI80001] |
Target |
SCA POJO implementation class with a @Property annotation |
Prerequisites |
1) @Property annotation annotates a setter method 2) Setter method parameter has a type which is not an array or collection type |
Predicate |
Introspected <componentType> has a <property> element with a) @name set to the JavaBeans property name derived from the setter method name b) @type set to the JAXB mapping of the type of the parameter of the setter method |
Prescription Level |
mandatory |
Tags |
“componentType” “reference” |
Assertion ID |
JCI-TA-8011 |
Source |
[JCI80001] |
Target |
SCA POJO implementation class with zero @Service annotations, zero @Reference annotations and zero @Property annotations |
Prerequisites |
Class has a public setter method which is not part of a service interface and which has a parameter typed by an interface class which is annotated with @Remotable |
Predicate |
Introspected <componentType> has a <reference> element with a) @name set to the JavaBeans property name derived from the setter method name b) @multiplicity is 1..1 c) <interface.java/> subelement referencing the fully qualified name of the interface class |
Prescription Level |
mandatory |
Tags |
“componentType” “reference” |
Assertion ID |
JCI-TA-8012 |
Source |
[JCI80001] |
Target |
SCA POJO implementation class with zero @Service annotations, zero @Reference annotations and zero @Property annotations |
Prerequisites |
Class has a public field or setter with a type which is not a Java interface, array or parameterized java.util.Collection |
Predicate |
Introspected <componentType> has a <property> element with: a) @name set to the name of the public field or setter method b) @type set to the JAXB mapping of the type of the field or setter c) @many set to “false: |
Prescription Level |
mandatory |
Tags |
“componentType” “property” |
Assertion ID |
JCI-TA-8013 |
Source |
[JCI80001] |
Target |
SCA POJO implementation class |
Prerequisites |
Implementation class has a @Requires attribute |
Predicate |
Introspected <componentType> has an <implementation.java/> subelement with @requires attribute present with a value equal to the value of the @Requires annotation |
Prescription Level |
mandatory |
Tags |
“componentType” “implementation” |
Assertion ID |
JCI-TA-8014 |
Source |
[JCI80002] |
Target |
SCA POJO implementation class with 2 or more setter methods annotated with @Property |
Prerequisites |
|
Predicate |
The JavaBeans property name for each property setter method is unique. |
Prescription Level |
mandatory |
Tags |
“implementation” “property” |
Assertion ID |
JCI-TA-8015 |
Source |
[JCI80002] |
Target |
SCA POJO implementation class with 2 or more setter methods annotated with @Reference |
Prerequisites |
|
Predicate |
The JavaBeans property name for each reference setter method is unique. |
Prescription Level |
mandatory |
Tags |
“implementation” “reference” |
Assertion ID |
JCI-TA-8016 |
Source |
[JCI80001] |
Target |
SCA POJO implementation class with a @Service annotation and @Remotable annotation |
Prerequisites |
@Service annotation has a single interface class in its value attribute and no name attribute The interface class does not contain the @Remotable annotation |
Predicate |
Introspected <componentType> has a <service> element with an <interface.java/> subelement where:
|
Prescription Level |
mandatory |
Tags |
“componentType” “service” |
Assertion ID |
JCI-TA-8017 |
Source |
[JCI80001] |
Target |
SCA POJO implementation class with a @Reference annotation |
Prerequisites |
|
Predicate |
Introspected <componentType> has a <reference> element with @multiplicity set to 0..1 and a child <interface.java> element with
|
Prescription Level |
mandatory |
Tags |
“componentType” “reference” |
Assertion ID |
JCI-TA-8018 |
Source |
[JCI80001] |
Target |
SCA POJO implementation class with a @Reference annotation |
Prerequisites |
@Reference annotation annotates a setter which takes an interface type parameter |
Predicate |
Introspected <componentType> has a <reference> element with a child <interface.java> element with @interface attribute set to the fully qualified name of the interface type |
Prescription Level |
mandatory |
Tags |
“componentType” “reference” |
Assertion ID |
JCI-TA-8019 |
Source |
[JCI80001] |
Target |
SCA POJO implementation class with a @Reference annotation |
Prerequisites |
@Reference annotation annotates a constructor parameter which is an interface type |
Predicate |
Introspected <componentType> has a <reference> element with a child <interface.java> element with @interface attribute set to the fully qualified name of the interface type |
Prescription Level |
mandatory |
Tags |
“componentType” “reference” |
Assertion ID |
JCI-TA-8020 |
Source |
[JCI80001] |
Target |
SCA POJO implementation class with a @Service annotation and a @PolicySets annotation with one or more policySets declared |
Prerequisites |
|
Predicate |
Introspected <componentType> has a <service> element with @policySets attribute containing the set of policySets in the @PolicySets annotation |
Prescription Level |
mandatory |
Tags |
“componentType” “service” |
Assertion ID |
JCI-TA-8021 |
Source |
[JCI80001] |
Target |
SCA POJO implementation class with a @Reference annotation and a @PolicySets annotation with one or more policySets declared |
Prerequisites |
|
Predicate |
Introspected <componentType> has a <reference> element with @policySets attribute containing the set of policySets in the @PolicySets annotation |
Prescription Level |
mandatory |
Tags |
“componentType” “reference” |
Assertion ID |
JCI-TA-8022 |
Source |
[JCI80001] |
Target |
SCA POJO implementation class with zero @Service annotations, zero @Reference annotations, zero @Property annotations, and a @PolicySets annotation on the class itself with one or more policySets declared |
Prerequisites |
|
Predicate |
Introspected <componentType> has a <service> element with @policySets attribute containing the set of policySets in the @PolicySets annotation |
Prescription Level |
mandatory |
Tags |
“componentType” “service” |
Assertion ID |
JCI-TA-8023 |
Source |
[JCI80001] |
Target |
SCA POJO implementation class with zero @Service annotations, zero @Reference annotations, zero @Property annotations, and a @PolicySets annotation on a public field, typed by an interface annotated with @Remotable, with one or more policySets declared |
Prerequisites |
|
Predicate |
Introspected <componentType> has a <reference> element with @policySets attribute containing the set of policySets in the @PolicySets annotation |
Prescription Level |
mandatory |
Tags |
“componentType” “reference” |
Assertion ID |
JCI-TA-8024 |
Source |
[JCI80001] |
Target |
SCA POJO implementation class |
Prerequisites |
Implementation class has a @PolicySets attribute |
Predicate |
Introspected <componentType> has an <implementation.java/> subelement with @policySets attribute present with a value equal to the value of the @PolicySets annotation |
Prescription Level |
mandatory |
Tags |
“componentType” “implementation” |
Assertion ID |
JCI-TA-8025 |
Source |
[JCI80001] |
Target |
SCA POJO implementation class with zero @Service annotations, zero @Reference annotations and zero @Property annotations |
Prerequisites |
Class has a public setter method which is not part of a service interface and which has a parameter typed by an array of interface classes which are annotated with @Remotable |
Predicate |
Introspected <componentType> has a <reference> element with a) @name set to the JavaBeans property name derived from the setter method name b) @multiplicity is 1..n c) <interface.java/> subelement referencing the fully qualified name of the interface class |
Prescription Level |
mandatory |
Tags |
“componentType” “reference” |
Assertion ID |
JCI-TA-8026 |
Source |
[JCI80001] |
Target |
SCA POJO implementation class with zero @Service annotations, zero @Reference annotations and zero @Property annotations |
Prerequisites |
Class has a public setter method which is not part of a service interface and which has a parameter typed by a java.util.Collection which is parameterized by an interface class which is annotated with @Remotable |
Predicate |
Introspected <componentType> has a <reference> element with a) @name set to the JavaBeans property name derived from the setter method name b) @multiplicity is 1..n c) <interface.java/> subelement referencing the fully qualified name of the interface class |
Prescription Level |
mandatory |
Tags |
“componentType” “reference” |
Assertion ID |
JCI-TA-8027 |
Source |
[JCI80001] |
Target |
SCA POJO implementation class with zero @Service annotations, zero @Reference annotations and zero @Property annotations |
Prerequisites |
Class has a public field or setter with a type which is not a Java interface, but is an array or parameterized (non-interface) java.util.Collection |
Predicate |
Introspected <componentType> has a <property> element with: a) @name set to the name of the public field b) @type set to the JAXB mapping of the type of the field or setter c) @many set to “true” |
Prescription Level |
mandatory |
Tags |
“componentType” “property” |
Assertion ID |
JCI-TA-8028 |
Source |
[JCI80001] |
Target |
SCA POJO implementation class with javax.jws.WebService annotation |
Prerequisites |
|
Predicate |
Introspected <componentType> has a <service> element with: a) @name set to the value of the name property on the @WebService annotation b) <interface.java> child element with the @interface attribute set to the fully qualified name of the implementation class |
Prescription Level |
mandatory |
Tags |
“componentType” “service” “jax-ws” |
Assertion ID |
JCI-TA-8029 |
Source |
[JCI80001] |
Target |
SCA POJO implementation class with javax.jws.WebService annotation |
Prerequisites |
EndpointInterface annotation property is set to a Java interface class |
Predicate |
Introspected <componentType> has a <service> element with: a) @name set to the value of the name property on the @WebService annotation b) <interface.java> child element with the @interface attribute set to the value of the endpointInterface property |
Prescription Level |
mandatory |
Tags |
“componentType” “service” “jax-ws” |
Assertion ID |
JCI-TA-8030 |
Source |
[JCI80001] |
Target |
SCA POJO implementation class with javax.jws.WebService annotation |
Prerequisites |
WsdlLocation property is set and points to a WSDL document |
Predicate |
Introspected <componentType> has a <service> element with: a) @name set to the value of the name property on the @WebService annotation b) <interface.wsdl> child element with the @interface attribute set to the portType referenced by the value of the wsdlLocation property |
Prescription Level |
mandatory |
Tags |
“componentType” “service” “jax-ws” |
Assertion ID |
JCI-TA-8031 |
Source |
[JCI80001] |
Target |
SCA POJO implementation class with javax.jws.WebParam annotation that has the header property set to “true” |
Prerequisites |
|
Predicate |
Introspected <componentType> has a <service> element with a @requires attribute set to “SOAP”. |
Prescription Level |
mandatory |
Tags |
“componentType” “service” “jax-ws” |
Assertion ID |
JCI-TA-8032 |
Source |
[JCI80001] |
Target |
SCA POJO implementation class with javax.jws.WebResult annotation that has the header property set to “true” |
Prerequisites |
|
Predicate |
Introspected <componentType> has a <service> element with a @requires attribute set to “SOAP”. |
Prescription Level |
mandatory |
Tags |
“componentType” “service” “jax-ws” |
Assertion ID |
JCI-TA-8033 |
Source |
[JCI80001] |
Target |
SCA POJO implementation class with javax.jws.soap.SOAPBinding annotation |
Prerequisites |
|
Predicate |
Introspected <componentType> has a <service> element with a @requires attribute set to “SOAP”. |
Prescription Level |
mandatory |
Tags |
“componentType” “service” “jax-ws” |
Assertion ID |
JCI-TA-8034 |
Source |
[JCI80001] |
Target |
SCA POJO implementation class with javax.xml.ws.WebServiceProvider annotation |
Prerequisites |
|
Predicate |
Introspected <componentType> has a <service> element with an <interface.java> child element with the @interface attribute set to the fully qualified name of the implementation class |
Prescription Level |
mandatory |
Tags |
“componentType” “service” “jax-ws” |
Assertion ID |
JCI-TA-8035 |
Source |
[JCI80001] |
Target |
SCA POJO implementation class with javax.xml.ws.WebServiceProvider annotation |
Prerequisites |
WsdlLocation property is set and points to a WSDL document |
Predicate |
Introspected <componentType> has a <service> element with an <interface.wsdl> child element with the @interface attribute set to the portType referenced by the value of the wsdlLocation property |
Prescription Level |
mandatory |
Tags |
“componentType” “service” “jax-ws” |
Assertion ID |
JCI-TA-8036 |
Source |
[JCI80001] |
Target |
SCA POJO implementation class with any JAX-WS annotation |
Prerequisites |
|
Predicate |
Introspected <componentType> has a <service> element with a <binding.ws> child element with the @wsdlElement attribute set to point to a WSDL document that uses the SOAP/HTTP binding (http://schemas.xmlsoap.org/wsdl/soap/http ) |
Prescription Level |
mandatory |
Tags |
“componentType” “service” “jax-ws” |
Assertion ID |
JCI-TA-8037 |
Source |
[JCI80001] |
Target |
SCA POJO implementation class with javax.xml.ws.BindingType annotation |
Prerequisites |
The value of the @BindingType annotation is http://www.w3.org/2003/05/soap/bindings/HTTP/ |
Predicate |
Introspected <componentType> has a <service> element with a <binding.ws> child element with the @requires attribute set to “SOAP.v1_2” |
Prescription Level |
mandatory |
Tags |
“componentType” “service” “jax-ws” |
Assertion ID |
JCI-TA-9001 |
Source |
[JCI90001] |
Target |
SCA <component> using <implementation.java/> |
Prerequisites |
|
Predicate |
The <implementation.java/> element conforms to the sca-implementation-java.xsd schema |
Prescription Level |
mandatory |
Tags |
“implementation” “schema” |
Assertion ID |
JCI-TA-9002 |
Source |
[JCI90002, JCI100008] |
Target |
SCA POJO component implementation class |
Prerequisites |
a) An SCA component that uses the @class attribute to specify its Java implementation class b) The Java implementation class is contained within the same contribution as the component c) The SCA component is instantiated |
Predicate |
The Java class specified on the @class attribute is found |
Prescription Level |
mandatory |
Tags |
“implementation” “resolution” |
Assertion ID |
JCI-TA-9003 |
Source |
[JCI90002, JCI100008] |
Target |
SCA POJO component implementation class |
Prerequisites |
a) An SCA component that uses the @class attribute to specify its Java implementation class b) The Java implementation class is exported by a contribution (Contribution B) in the SCA Domain c) The Java implementation class is also contained within the same contribution (Contribution A) as the component d) Contribution A imports the Java package of the implementation class e) The SCA component is instantiated |
Predicate |
The Java class specified on the @class attribute is loaded from Contribution B |
Prescription Level |
mandatory |
Tags |
“implementation” “resolution” |
Assertion ID |
JCI-TA-9004 |
Source |
[JCI90002, JCI100008] |
Target |
SCA POJO component implementation class |
Prerequisites |
a) An SCA component that uses the @class attribute to specify its Java implementation class b) The Java implementation class is contained within another contribution (Contribution C) in the SCA Domain c) The Java implementation class is exported by another contribution (Contribution B) in the SCA Domain d) The Java implementation class is also contained within the same contribution (Contribution A) as the component e) Contribution A imports the Java package of the implementation class and uses the @location attribute of <import.java/> to specify Contribution C f) The SCA component is instantiated |
Predicate |
The Java class specified on the @class attribute is loaded from Contribution C |
Prescription Level |
mandatory |
Tags |
“implementation” “resolution” |
Assertion ID |
JCI-TA-9005 |
Source |
[JCI90002, JCI100008] |
Target |
SCA POJO component implementation class |
Prerequisites |
a) An SCA component that uses the @class attribute to specify its Java implementation class b) The Java implementation class is contained within another contribution (Contribution C) in the SCA Domain c) The Java implementation class is exported by another contribution (Contribution B) in the SCA Domain d) The Java implementation class is also contained within the same contribution (Contribution A) as the component e) Contribution A uses a Java language specific mechanism to specify the location of the implementation class f) The SCA component is instantiated |
Predicate |
The Java class specified on the @class attribute is loaded by the Java language specific mechanism |
Prescription Level |
mandatory |
Tags |
“implementation” “resolution” |
Assertion ID |
JCI-TA-9006 |
Source |
[JCI90003] |
Target |
Java class referenced by @class attribute of <implementation.java/> |
Prerequisites |
|
Predicate |
The Java class conforms to Java SE 5.0 |
Prescription Level |
mandatory |
Tags |
“implementation” “Java” |
Assertion ID |
JCI-TA-10001 |
Source |
[JCI100001] |
Target |
<import.java/> element of sca-contribution.xml |
Prerequisites |
|
Predicate |
The value of the @package attribute on the <import.java/> element is unique across all other <import.java/> elements within the contribution. |
Prescription Level |
mandatory |
Tags |
“import” |
Assertion ID |
JCI-TA-10002 |
Source |
[JCI100002] |
Target |
Java package with version referenced by <import.java/> |
Prerequisites |
a) An SCA component and implementation that uses the Java package specified in the <import.java/> element contained with Contribution A b) The Java implementation class is exported by another contribution (Contribution B) in the SCA Domain c) The SCA component is instantiated |
Predicate |
The Java classes in the package that is loaded, satisfy the <import.java/> |
Prescription Level |
mandatory |
Tags |
“import” “resolution” |
Assertion ID |
JCI-TA-10003 |
Source |
[JCI100002] |
Target |
Java package with version referenced by <import.java/> |
Prerequisites |
a) An SCA component and implementation that uses the Java package specified in the <import.java/> element contained with Contribution A b) The Java implementation class is contained within contribution (Contribution B) in the SCA Domain c) The @location attribute on <import.java/> points to Contribution B c) The SCA component is instantiated |
Predicate |
The Java classes in the package that is loaded from contribution B, satisfy the <import.java/> |
Prescription Level |
mandatory |
Tags |
“import” “resolution” |
Assertion ID |
JCI-TA-10004 |
Source |
[JCI100003] |
Target |
<export.java> with @package that uses the “uses” directive |
Prerequisites |
a) An SCA component and implementation contained within Contribution A that imports the Java packages specified in the <import.java/> element b) Contribution A also imports one or more of the packages specified in the uses directive of <import.java/> c) Another contribution (Contribution B) contains the <export.java/> element d) A third contribution (Contribution C) also exports the the same Java package as Contribution B, but it does not contain the “uses” directive e) The SCA component is instantiated |
Predicate |
The Java classes required by Contribution A are all loaded from Contribution B |
Prescription Level |
mandatory |
Tags |
“export” “resolution” |
Assertion ID |
JCI-TA-10005 |
Source |
[JCI100004] |
Target |
<export.java/> element of a contribution |
Prerequisites |
|
Predicate |
The value of the @package attribute on the <export.java/> element is unique across all other <export.java/> elements within the contribution. |
Prescription Level |
mandatory |
Tags |
“export” |
Assertion ID |
JCI-TA-10006 |
Source |
[JCI100007] |
Target |
@package attribute of <export.java/> |
Prerequisites |
|
Predicate |
The Java package specified on the @package attribute is contained with the same contribution as the <export.java/> |
Prescription Level |
mandatory |
Tags |
“export” “resolution” |
Assertion ID |
JCI-TA-10007 |
Source |
[JCI100010] |
Target |
SCA Runtime |
Prerequisites |
|
Predicate |
All classes loaded from a contribution are loaded by a contribution unique class loader. |
Prescription Level |
mandatory |
Tags |
“class-loader” |
Assertion ID |
JCI-TA-10008 |
Source |
[JCI100011] |
Target |
SCA Runtime |
Prerequisites |
a) Contribution A imports Java classes b) Contribution B exports the same Java classes |
Predicate |
Contribution B's class loader loads classes from Contribution A |
Prescription Level |
mandatory |
Tags |
“class-loader” |
Assertion ID |
JCI-TA-10009 |
Source |
[JCI100009] |
Target |
SCA Runtime |
Prerequisites |
a) SCA POJO component contained within Contribution A b) The SCA component is instantiated |
Predicate |
SCA Runtime's thread context class loader is the class loader for Contribution A |
Prescription Level |
mandatory |
Tags |
“class-loader” |
Conformance statement |
Test Assertion |
JCI20001 |
JCI-TA-2001 |
JCI20002 |
JCI-TA-2002 |
Conformance statement |
Test Assertion |
JCI40001 |
|
Conformance statement |
Test Assertion |
JCI50001 |
JCI-TA-5001 |
JCI50002 |
JCI-TA-5006 |
JCI50004 |
|
JCI50005 |
JCI-TA-5007 |
Conformance statement |
Test Assertion |
JCI60001 |
|
Conformance statement |
Test Assertion |
JCI8001 |
|
JCI8002 |
|
Conformance statement |
Test Assertion |
JCI90001 |
JCI-TA-9001 |
JCI90002 |
|
JCI90003 |
JCI-TA-9006 |
Conformance statement |
Test Assertion |
JCI100001 |
JCI-TA-10001 |
JCI100002 |
|
JCI100003 |
JCI-TA-10004 |
JCI100004 |
JCI-TA-10005 |
JCI100007 |
JCI-TA-10006 |
JCI100008 |
|
JCI100009 |
JCI-TA-10009 |
JCI100010 |
JCI-TA-10007 |
JCI100011 |
JCI-TA-10008 |
There are no conformance statements relating to the Test Assertions.
The following individuals have participated in the creation of this specification and are gratefully acknowledged
Participant Name |
Affiliation |
Dave Booz |
IBM |
Mark Combellack |
Avaya |
Mike Edwards |
IBM |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Revision |
Date |
Editor |
Changes Made |
1 |
08/28/09 |
David Booz |
Initial version |
2 |
09/29/09 |
David Booz |
Updates in section 5 and 6 as per review comments |
3 |
11/12/09 |
David Booz |
Cleaned up and accepted changes to date. |
4 |
03/11/10 |
Mark Combellack |
Initial updates to match CD02 and applied changes for AI 2009-09-28-05 |
5 |
03/15/10 |
David Booz |
More updates to align with CD02 |
6 |
04/09/10 |
Mark Combellack |
Reverted my changes to section 5 from WD04 and cleaned up to do comments. |
7 |
04/16/10 |
Mark Combellack |
Cleaned up and accepted changes to date. |
wd08 |
07/26/10 |
Mike Edwards |
Editorial changes |
wd09 |
07/27/10 |
Mike Edwards |
Text adjusted for: JCI-TA-8022 |
wd10 |
10/19/10 |
Mike Edwards |
Issue 214 applied |