SCA POJO Component Implementation v1.1 Test Assertions Version 1.0

Committee Specification Draft 01

8 November 2010

Specification URIs:
This Version:

http://docs.oasis-open.org/opencsa/sca-j/sca-j-pojo-ci-1.1-test-assertions-1.0-csd01.html

http://docs.oasis-open.org/opencsa/sca-j/sca-j-pojo-ci-1.1-test-assertions-1.0-csd01.odt

http://docs.oasis-open.org/opencsa/sca-j/sca-j-pojo-ci-1.1-test-assertions-1.0-csd01.pdf (Authoritative)

Previous Version:

N/A

Latest Version:

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)

Technical Committee:

OASIS Service Component Architecture / J (SCA-J) TC

Chair(s):

Mark Combellack Avaya
David Booz IBM

Editor(s):

Mark Combellack Avaya
David Booz IBM

Mike Edwards IBM

Related Work:

This document is related to:

Declared XML Namespace(s):

None

Abstract:

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.

Status:

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

Citation Format:

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

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

2.2 Section 4 7

2.3 Section 5 8

2.4 Section 6 11

2.5 Section 8 11

2.6 Section 9 24

2.7 Section 10 26

3 Cross Mapping of Conformance Statements to Assertions 30

4 Conformance 32

Appendix A.Acknowledgments 33

Appendix B.Revision History 34





1 Introduction

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

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

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.

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

1.4 Non-normative References

None



2 Test Assertions

2.1 Section 2



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:

  • Java Interface

  • Java Class

  • Java Interface generated from a WSDL document

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”



2.2 Section 4



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”



2.3 Section 5



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”



2.4 Section 6



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”



2.5 Section 8



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:

  • the @interface attribute set to the fully qualified name of the interface class in the value attribute of the @Service annotation

  • the @remotable attribute set to “true”.

Prescription Level

mandatory

Tags

componentType” “service”





Assertion ID

JCI-TA-8017

Source

[JCI80001]

Target

SCA POJO implementation class with a @Reference annotation

Prerequisites

  1. @Reference annotation annotates a field, setter or constructor parameter with an interface type

  2. Interface type has no @Remotable annotation

  3. @Remotable annotation on the same field, setter or constructor parameter as the @Reference annotation

Predicate

Introspected <componentType> has a <reference> element with @multiplicity set to 0..1 and a child <interface.java> element with

  • @interface attribute set to the fully qualified name of the interface type

  • @remotable attribute set to true

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”



2.6 Section 9



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”



2.7 Section 10



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”



3 Cross Mapping of Conformance Statements to Assertions



Conformance statement

Test Assertion

JCI20001

JCI-TA-2001

JCI20002

JCI-TA-2002





Conformance statement

Test Assertion

JCI40001

JCI-TA-4001
JCI-TA-4002





Conformance statement

Test Assertion

JCI50001

JCI-TA-5001

JCI50002

JCI-TA-5006

JCI50004

JCI-TA-5002
JCI-TA-5003
JCI-TA-5004
JCI-TA-5005

JCI50005

JCI-TA-5007





Conformance statement

Test Assertion

JCI60001

JCI-TA-6001
JCI-TA-6002





Conformance statement

Test Assertion

JCI8001

JCI-TA-8001, JCI-TA-8002, JCI-TA-8003,
JCI-TA-8004, JCI-TA-8005, JCI-TA-8006,
JCI-TA-8007, JCI-TA-8008, JCI-TA-8009,
JCI-TA-8010, JCI-TA-8011, JCI-TA-8012,
JCI-TA-8013, JCI-TA-8016, JCI-TA-8017,
JCI-TA-8018, JCI-TA-8019, JCI-TA-8020,
JCI-TA-8021, JCI-TA-8022, JCI-TA-8023,
JCI-TA-8024, JCI-TA-8025, JCI-TA-8026,
JCI-TA-8027, JCI-TA-8028, JCI-TA-8029,
JCI-TA-8030, JCI-TA-8031, JCI-TA-8032,
JCI-TA-8033, JCI-TA-8034, JCI-TA-8035,
JCI-TA-8036, JCI-TA-8037

JCI8002

JCI-TA-8014
JCI-TA-8015





Conformance statement

Test Assertion

JCI90001

JCI-TA-9001

JCI90002

JCI-TA-9002
JCI-TA-9003
JCI-TA-9004
JCI-TA-9005

JCI90003

JCI-TA-9006





Conformance statement

Test Assertion

JCI100001

JCI-TA-10001

JCI100002

JCI-TA-10002

JCI-TA-10003

JCI100003

JCI-TA-10004

JCI100004

JCI-TA-10005

JCI100007

JCI-TA-10006

JCI100008

JCI-TA-9002
JCI-TA-9003
JCI-TA-9004

JCI-TA-9005

JCI100009

JCI-TA-10009

JCI100010

JCI-TA-10007

JCI100011

JCI-TA-10008





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

Dave Booz

IBM

Mark Combellack

Avaya

Mike Edwards

IBM



















  1. Revision History



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
JCI-TA-8023
JCI-TA-8036
JCI-TA-8037

wd10

10/19/10

Mike Edwards

Issue 214 applied
- JCI-TA-8037



sca-j-pojo-ci-1.1-test-assertions-1.0-csd01 8 November 2010
Copyright © OASIS® 2010. All Rights Reserved. Standards Track Work Product Page 34 of 34