Test Assertions for the SCA_J Common Annotations and APIs Version 1.1 Specification

Committee Draft 01 / Public Review 01

19 July 2010

Specification URIs:

This Version:

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

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

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

Previous Version:

N/A

Latest Version:

http://docs.oasis-open.org/opencsa/sca-j/sca-j-caa-1.1-test-assertions.html

http://docs.oasis-open.org/opencsa/sca-j/sca-j-caa-1.1-test-assertions.odt

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

Technical Committee:

OASIS Service Component Architecture / J (SCA-J) TC
http://www.oasis-open.org/committees/tc_home.php?wg_abbrev=sca-j

Chair(s):

Mark Combellack           Avaya
David Booz                   IBM

Editor(s):

Mike Edwards,              IBM

Related Work:

This document is related to:

·     Service Component Architecture Java Common Annotations and APIs Specification Version 1.1
http://docs.oasis-open.org/opencsa/sca-j/sca-javacaa-1.1-spec-cd04.pdf

Declared XML Namespace(s):

None

Abstract:

This document defines the Test Assertions for the SCA J CAA specification.

The Test Assertions represent the testable items relating to the normative statements made in the SCA Java Common Annotations and APIs 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.

The non-normative errata page for this specification is located at

http://www.oasis-open.org/committees/sca-j/j/

 

Notices

Copyright © OASIS® 2009, 2010. All Rights Reserved.

All capitalized terms in the following text have the meanings assigned to them in the OASIS Intellectual Property Rights Policy (the "OASIS IPR Policy"). The full Policy may be found at the OASIS website.

This document and translations of it may be copied and furnished to others, and derivative works that comment on or otherwise explain it or assist in its implementation may be prepared, copied, published, and distributed, in whole or in part, without restriction of any kind, provided that the above copyright notice and this section are included on all such copies and derivative works. However, this document itself may not be modified in any way, including by removing the copyright notice or references to OASIS, except as needed for the purpose of developing any document or deliverable produced by an OASIS Technical Committee (in which case the rules applicable to copyrights, as set forth in the OASIS IPR Policy, must be followed) or as required to translate it into languages other than English.

The limited permissions granted above are perpetual and will not be revoked by OASIS or its successors or assigns.

This document and the information contained herein is provided on an "AS IS" basis and OASIS DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT INFRINGE ANY OWNERSHIP RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.

OASIS requests that any OASIS Party or any other party that believes it has patent claims that would necessarily be infringed by implementations of this OASIS Committee Specification or OASIS Standard, to notify OASIS TC Administrator and provide an indication of its willingness to grant patent licenses to such patent claims in a manner consistent with the IPR Mode of the OASIS Technical Committee that produced this specification.

OASIS invites any party to contact the OASIS TC Administrator if it is aware of a claim of ownership of any patent claims that would necessarily be infringed by implementations of this specification by a patent holder that is not willing to provide a license to such patent claims in a manner consistent with the IPR Mode of the OASIS Technical Committee that produced this specification. OASIS may include such claims on its website, but disclaims any obligation to do so.

OASIS takes no position regarding the validity or scope of any intellectual property or other rights that might be claimed to pertain to the implementation or use of the technology described in this document or the extent to which any license under such rights might or might not be available; neither does it represent that it has made any effort to identify any such rights. Information on OASIS' procedures with respect to rights in any document or deliverable produced by an OASIS Technical Committee can be found on the OASIS website. Copies of claims of rights made available for publication and any assurances of licenses to be made available, or the result of an attempt made to obtain a general license or permission for the use of such proprietary rights by implementers or users of this OASIS Committee Specification or OASIS Standard, can be obtained from the OASIS TC Administrator. OASIS makes no representation that any information or list of intellectual property rights will at any time be complete, or that any claims in such list are, in fact, Essential Claims.

The name "OASIS" is a 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 3................................................................................................................................ 10

2.3 Section 4................................................................................................................................ 13

2.4 Section 7................................................................................................................................ 19

2.5 Section 8................................................................................................................................ 21

2.6 Section 9................................................................................................................................ 24

2.7 Section 10.............................................................................................................................. 42

2.8 Section 11.............................................................................................................................. 58

3 Cross Mapping of Conformance Statements to Assertions.............................................................. 64

4 Conformance................................................................................................................................. 71

Appendix A.Acknowledgments.......................................................................................................... 72

Appendix B.Revision History............................................................................................................. 73


 

1      Introduction

This document defines the Test Assertions for the SCA Java Common Annotations and APIs 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

JCA-TA-xxxx

Source

[JCAx00yy]

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 - "JCA" is for the SCA Java Common Annotations and APIs 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 04, Test Assertion Guidelines, February 2010. http://docs.oasis-open.org/tag/guidelines/v1.0/cd04/testassertionsguidelines-cd-04.pdf  

[JAVACAA]             OASIS Committee Draft 04, "Service Component Architecture SCA-J Common Annotations and APIs Specification Version 1.1", July 2010
http://docs.oasis-open.org/opencsa/sca-j/sca-javacaa-1.1-spec-cd04.pdf

1.4    Non-Normative References

N/A

2      Test Assertions

2.1    Section 2

 

Assertion ID

JCA-TA-2001

Source

[JCA20001]

Target

Java service marked remotable

Prerequisites

 

Predicate

Service does not use method overloading

Prescription Level

mandatory

Tags

"remotable" "overloading"

 

 

Assertion ID

JCA-TA-2002

Source

[JCA20002]

Target

Stateless scoped Java implementation instance

Prerequisites

 

Predicate

Implementation instance is dispatched on a single thread at one time

Prescription Level

mandatory

Tags

"stateless scope" "single thread"

 

 

Assertion ID

JCA-TA-2003

Source

[JCA20003]

Target

Stateless scoped Java implementation instance

Prerequisites

 

Predicate

Implementation instance is invoked once through one business method during the lifetime of the implementation instance

Prescription Level

mandatory

Tags

"stateless scope" "lifetime" "invocation"

 

 

Assertion ID

JCA-TA-2004

Source

[JCA20004]

Target

Domain level component implemented by a Java class marked "composite scope"

Prerequisites

 

Predicate

All clients of the component appear to interact with a single runtime instance of the implementation class

Prescription Level

mandatory

Tags

"composite scope" "invocation"

 

 

Assertion ID

JCA-TA-2005

Source

[JCA20005]

Target

Java implementation class marked with "composite scope" and with "eager initialization"

Prerequisites

Containing component is started

Predicate

The Java implementation class instance is created and initialized

Prescription Level

mandatory

Tags

"composite scope" "lifetime" "eager initialization"

 

 

Assertion ID

JCA-TA-2006

Source

[JCA20006]

Target

Method of Java implementation class with marked with @Init annotation

Prerequisites

Implementation instance is created

Predicate

Method is called

Prescription Level

mandatory

Tags

"composite scope" "lifetime" "initialization" "@Init"

 

 

Assertion ID

JCA-TA-2007

Source

[JCA20007]

Target

Instance of a Java implementation class marked "composite scope"

Prerequisites

Implementation class is used as a component implementation

Multiple invocations of services offered by the component are made, which overlap in time

Predicate

Multiple threads run in the single instance of the implementation class

Prescription Level

optional

Tags

"composite scope" "lifetime" "eager initialization"

 

Assertion ID

JCA-TA-2008

Source

[JCA20008]

Target

Java implementation class marked with "composite scope"

Prerequisites

Implementation class is used to implement a component nested inside a composite used to implement a domain level component

Component offers at least one service

Component has one or more clients for its service(s)

Predicate

Clients of the component appear to interact with a single instance of the implementation class

Prescription Level

mandatory

Tags

"composite scope" "nested component" "instance"

 

 

Assertion ID

JCA-TA-2009

Source

[JCA20009]

Target

Client invocation of a method of a service implementation

Prerequisites

Service method implementation marked "allows pass by reference"

Client reference proxy marked "allows pass by reference"

Client and service implementation run in the same JVM

Predicate

The invocation uses pass-by-reference call semantics for the input and response parameters

Prescription Level

optional

Tags

"allows pass by reference" "pass by reference" "local"

 

 

Assertion ID

JCA-TA-2010

Source

[JCA20010]

Target

Client invocation of a service implementation

Prerequisites

Service implementation method not marked "allows pass by reference"

Client and service implementation run in the same JVM

Predicate

The invocation uses pass-by-value semantics for the input and response parameters

Prescription Level

mandatory

Tags

"allows pass by reference" "pass by value "local"

 

 

Assertion ID

JCA-TA-2011

Source

[JCA20010]

Target

Client invocation of a service implementation

Prerequisites

Client reference is not marked "allows pass by reference"

Client and service implementation run in the same JVM

Predicate

The invocation uses pass-by-value semantics for the input and response parameters

Prescription Level

mandatory

Tags

"allows pass by reference" "pass by value "local"

 

 

 

2.2    Section 3

 

Assertion ID

JCA-TA-3001

Source

[JCA30001]

Target

@interface attribute of a <interface.java/> element

Prerequisites

 

Predicate

Value of @interface attribute is the fully qualified name of a Java interface class

Prescription Level

mandatory

Tags

"interface element" "interface attribute" "Java interface class"

 

 

Assertion ID

JCA-TA-3002

Source

[JCA30002]

Target

@callbackInterface attribute of <interface.java/> element

Prerequisites

interface.java element has a @callbackInterface attribute

Predicate

Value of @callbackInterface is the fully qualified name of a Java interface class

Prescription Level

mandatory

Tags

"interface element" "callbackInterface attribute" "Java interface class"

 

 

Assertion ID

JCA-TA-3003

Source

[JCA30003]

Target

@callbackInterface attribute of a <interface.java/> element

Prerequisites

interface.java element has a @callbackInterface attribute

Java interface class referenced by the @interface attribute contains a @Callback annotation which references a Java interface class

Predicate

Value of @callbackInterface attribute is the same Java interface class as the one referenced by the @Callback annotation of the Java interface class referenced by the @interface attribute

Prescription Level

mandatory

Tags

"interface element" "callbackInterface attribute" "Java interface class" "@Callback"

 

 

Assertion ID

JCA-TA-3004

Source

[JCA30004]

Target

<interface.java/> element

Prerequisites

 

Predicate

Conforms to the sca-interface-java.xsd schema

Prescription Level

mandatory

Tags

"interface element" "schema"

 

 

Assertion ID

JCA-TA-3005

Source

[JCA30005]

Target

@remotable attribute on <interface.java/> element

Prerequisites

Java interface class referenced by @interface attribute of interface.java element contains a @Remotable annotation

Predicate

@remotable attribute has the value "true"

Prescription Level

mandatory

Tags

"interface element" "remotable attribute" "Java interface class" "@Remotable"

 

 

Assertion ID

JCA-TA-3006

Source

[JCA30006]

Target

Java interface class referenced by @interface attribute of a <interface.java/> element

Prerequisites

 

Predicate

Java interface class does not contain any of the annotations: @AllowsPassByReference, @ComponentName, @Constructor, @Context, @Destroy, @EagerInit, @Init, @Intent, @Property, @Qualifier, @Reference, @Scope, @Service.

Prescription Level

mandatory

Tags

"interface element" "SCA annotations" "Java interface class"

 

 

Assertion ID

JCA-TA-3007

Source

[JCA30007]

Target

Java interface class referenced by @callbackInterface attribute of a <interface.java/> element

Prerequisites

 

Predicate

Java interface class does not contain any of the annotations: @AllowsPassByReference, @Callback, @ComponentName, @Constructor, @Context, @Destroy, @EagerInit, @Init, @Intent, @Property, @Qualifier, @Reference, @Scope, @Service.

Prescription Level

mandatory

Tags

"interface element" "SCA annotations" "Java interface class"

 

 

Assertion ID

JCA-TA-3008

Source

[JCA30009]

Target

2 java interface classes, A and B

Prerequisites

a) Interface classes A is compatible with interface class B, or is a compatible superset of B or is a compatible subset of B

b) One or more of the methods contained in A or in B is annotated with @OneWay

Predicate

Every method which is present in both interface A and in interface B and  which is annotated with @OneWay in either interface class is also annotated with @OneWay in the other interface class.

Prescription Level

mandatory

Tags

"interface classes" "@OneWay" "compatible"

 

Assertion ID

JCA-TA-3009

Source

[JCA30010]

Target

<interface.java/> element within a composite

Prerequisites

a) element references a Java class which contains a @WebService annotation or a @WebServiceProvider annotation

b) the annotation contains a non-empty wsdlLocation property pointing at a WSDL document

Predicate

<interface.java/> element is treated as if it were an <interface.wsdl/> element with an @interface attribute identifying the portType in the WSDL document mapped from the Java interface class and containing @requires and @policySets attributes equal to the @requires and @policySets attributes of the <interface.java/> element

Prescription Level

mandatory

Tags

"interface.java element" "@WebService" "@WebServiceProvider" "interface.wsdl element"

 

 

2.3    Section 4

 

Assertion ID

JCA-TA-4001

Source

[JCA40001]

Target

Constructor of Java component implementation class

Prerequisites

Component is at the start of the Constructing state of its lifecycle

Predicate

Constructor is invoked by the SCA runtime

Prescription Level

mandatory

Tags

"lifecycle" "constructing" "constructor"

 

 

Assertion ID

JCA-TA-4002

Source

[JCA40002]

Target

Constructor of Java component implementation class

Prerequisites

Constructor is invoked by the SCA runtime at the start of the Constructing state of its lifecycle

Predicate

Constructor references and properties are injected when the constructor is invoked

Prescription Level

mandatory

Tags

"lifecycle" "constructing" "constructor" "injection" "reference" "property"

 

 

Assertion ID

JCA-TA-4003

Source

[JCA40003]

Target

Java component implementation class in Constructing state

Prerequisites

Constructor method completes successfully

Predicate

Component implementation transitions to the Injecting state

Prescription Level

mandatory

Tags

"lifecycle" "constructing" "injecting" "transition"

 

Assertion ID

JCA-TA-4004

Source

[JCA40004]

Target

Java component implementation class in Constructing state

Prerequisites

Constructor method throws an exception

Predicate

Component implementation class is transitioned to the Terminating state

Prescription Level

mandatory

Tags

"lifecycle" "constructor" "exception" "terminating"

 

Assertion ID

JCA-TA-4005

Source

[JCA40005]

Target

Java component implementation class in Injecting state

Prerequisites

Implementation has one or more properties

Predicate

Properties are injected (via field or setter injection) before any other actions occur

Prescription Level

mandatory

Tags

"lifecycle" "injecting" "property"

 

Assertion ID

JCA-TA-4006

Source

[JCA40006]

Target

Java component implementation class in Injecting state

Prerequisites

Implementation has one or more references

Implementation has one or more properties

Predicate

References are injected (via field or setter injection) after properties have been injected

Prescription Level

mandatory

Tags

"lifecycle" "injecting" "reference"

 

 

Assertion ID

JCA-TA-4007

Source

[JCA40007]

Target

Java component implementation with one or more injected property / reference

Prerequisites

Implementation code does not use synchronization

Predicate

Injected properties and references are visible to the component implementation

Prescription Level

mandatory

Tags

"lifecycle" "injecting" "synchronization" "property" "reference"

 

Assertion ID

JCA-TA-4008

Source

[JCA40008]

Target

Java component implementation in injecting state

Prerequisites

Implementation has 1 or more service methods

Predicate

Service methods are not invoked

Prescription Level

mandatory

Tags

"lifecycle" "injecting" "service methods"

 

Assertion ID

JCA-TA-4009

Source

[JCA40009]

Target

Java component implementation in injecting state

Prerequisites

All properties and references have been injected

Predicate

Component implementation transitions to the Initializing state

Prescription Level

mandatory

Tags

"lifecycle" "injecting" "transition" "initializing"

 

Assertion ID

JCA-TA-4010

Source

[JCA40010]

Target

Java component implementation in injecting state

Prerequisites

Exception is thrown while a property or a reference is being injected

Predicate

Component implementation transitions to the Destroying state

Prescription Level

mandatory

Tags

"lifecycle" "injecting" "exception" "transition" "destroying"

 

Assertion ID

JCA-TA-4011

Source

[JCA40011]

Target

Java component implementation entering initializing state

Prerequisites

Implementation has a method annotated with @Init

Predicate

Method annotated with @Init is invoked

Prescription Level

mandatory

Tags

"lifecycle" "initializing" "@Init"

 

 

Assertion ID

JCA-TA-4012

Source

[JCA40012]

Target

Java component implementation in initializing state

Prerequisites

Implementation has an injected reference

Target of injected reference has not been initialized

Implementation invokes a method on the reference

Predicate

Implementation receives a ServiceUnavailableException

Prescription Level

mandatory

Tags

"lifecycle" "injecting" "exception" "reference" "uninitialized"

 

Assertion ID

JCA-TA-4013

Source

[JCA40013]

Target

Java component implementation in initializing state

Prerequisites

Implementation has 1 or more service methods

Predicate

Service methods are not invoked

Prescription Level

mandatory

Tags

"lifecycle" "injecting" "service" "invocation"

 

Assertion ID

JCA-TA-4014

Source

[JCA40014]

Target

Java component implementation in initializing state

Prerequisites

Invocation of method annotated with @Init completes successfully

Predicate

Component implementation transitions to the Running state

Prescription Level

mandatory

Tags

"lifecycle" "initializing" "transition" "running"

 

Assertion ID

JCA-TA-4015

Source

[JCA40015]

Target

Java component implementation in initializing state

Prerequisites

Exception is thrown by the component implementation

Predicate

Component implementation transitions to the Destroying state

Prescription Level

mandatory

Tags

"lifecycle" "initializing" "exception" "transition" "destroying"

 

Assertion ID

JCA-TA-4016

Source

[JCA40016]

Target

Java component implementation in running state

Prerequisites

Component has one or more service

Client component invokes one of the service operations

Predicate

Implementation service method corresponding to the operation is invoked

Prescription Level

mandatory

Tags

"lifecycle" "running" "service" "invocation" "method"

 

 

Assertion ID

JCA-TA-4017

Source

[JCA40017]

Target

Java component implementation in running state

Prerequisites

Implementation scope ends

Predicate

Component implementation transitions to the Destroying state

Prescription Level

mandatory

Tags

"lifecycle" "running" "scope ends" "transition" "destroying"

 

Assertion ID

JCA-TA-4018

Source

[JCA40018]

Target

Java component implementation entering Destroying state

Prerequisites

Implementation has a method annotated with @Destroy

Predicate

Method annotated with @Destroy is invoked

Prescription Level

mandatory

Tags

"lifecycle" "destroying" "@Destroy" "transition"

 

Assertion ID

JCA-TA-4019

Source

[JCA40019]

Target

Java component implementation in destroying state

Prerequisites

Implementation has an injected reference

Implementation invokes a method on the reference

Target of reference has already been destroyed

Predicate

Implementation receives an InvalidServiceException

Prescription Level

mandatory

Tags

"lifecycle" "destroying" "exception" "reference"

 

Assertion ID

JCA-TA-4020

Source

[JCA40020]

Target

Java component implementation in destroying state

Prerequisites

Implementation has one or more services

Client component invokes service operations

Predicate

Implementation service methods are not invoked

Prescription Level

mandatory

Tags

"lifecycle" "destroying" "service" "method" "invocation"

 

 

Assertion ID

JCA-TA-4021

Source

[JCA40021]

Target

Java component implementation in Destroying state

Prerequisites

Method with @Destroy annotation completes

Predicate

Component implementation transitions to terminated state

Prescription Level

mandatory

Tags

"lifecycle" "destroying" "@Destroy" "transition" "terminated"

 

Assertion ID

JCA-TA-4022

Source

[JCA40022]

Target

Java component implementation in Destroying state

Prerequisites

Method with @Destroy annotation throws an exception

Predicate

Component implementation transitions to the terminated state

Prescription Level

mandatory

Tags

"lifecycle" "destroying" "exception" "transition" "terminated" "@Destroy"

 

Assertion ID

JCA-TA-4023

Source

[JCA40023]

Target

Java component implementation is in Terminated state

Prerequisites

Component implementation has service

Client component invokes operations on a service

Predicate

Implementation service methods are not invoked

Prescription Level

mandatory

Tags

"lifecycle" "terminated" "service" "invocation"

 

Assertion ID

JCA-TA-4024

Source

[JCA40024]

Target

Java component implementation in Injecting state

Prerequisites

A property or a reference is unable to be injected

Predicate

Component implementation transitions to the Destroying state

Prescription Level

mandatory

Tags

"lifecycle" "injecting" "property" "reference" "destroying"

 

 

2.4    Section 7

 

Assertion ID

JCA-TA-7001

Source

[JCA60001]

Target

fields and/or setter methods annotated with @Callback of a component implementation class which has a bidirectional service

Prerequisites

The bidirectional service is invoked

Predicate

A Callback reference object for the invoked service is injected into all fields and setter methods which have the type of the interface for the callback and null is injected into all fields and setter methods which have a different type

Prescription Level

mandatory

Tags

"@Callback" "field" "setter method" "injection" "callback reference"

 

Assertion ID

JCA-TA-7002

Source

[JCA60002]

Target

fields and/or setter methods annotated with @Callback of a component implementation class which has a bidirectional service

Prerequisites

Component implementation also has one or more non-bidirectional services

One of the non-bidirectional services is invoked

Predicate

null is injected into all of the fields and setter methods annotated with @Callback

Prescription Level

mandatory

Tags

"@Callback" "field" "setter method" "injection"

 

Assertion ID

JCA-TA-7003

Source

[JCA60003]

Target

Java interface class which is an asynchronous mapping of WSDL portType with request/response operations

Prerequisites

 

Predicate

Class is annotated with the "asyncInvocation" intent

Prescription Level

mandatory

Tags

 

 

Assertion ID

JCA-TA-7004

Source

[JCA60003]

Target

Java interface class which is an SCA asynchronous service mapping of WSDL portType with request/response operations

Prerequisites

WSDL portType contains an operation with a name

Predicate

Class contains a method with a name that is the JAX-WS mapping of the portType operation name, with the added suffix "Async", which has:

- a void return type

- a set of parameters which match the JAX-WS mapping of the input parameters of the WSDL operation

- an additional final parameter which is a ResponseDispatch object typed by the JAX-WS Response Bean mapping of the output parameter(s) of the WSDL operation

Prescription Level

mandatory

Tags

"SCA asynchronous service" "WSDL mapping"

 

Assertion ID

JCA-TA-7005

Source

[JCA60004]

Target

Interface of an SCA service is declared using an SCA asynchronous service interface

Prerequisites

 

Predicate

The service is supported by the SCA runtime and is invocable.

Prescription Level

mandatory

Tags

"SCA asynchronous service"

 

Assertion ID

JCA-TA-7006

Source

[JCA60005]

Target

ResponseDispatch object passed to SCA service implementation when operation of an SCA asynchronous service interface is invoked

Prerequisites

Either the sendReponse method or the sendFault method of the ResponseDispatch object has already been called once

Predicate

An IllegalStateException is thrown when either the sendResponse method or the sendFault method is invoked

Prescription Level

mandatory

Tags

"ResponseDispatch" "sendResponse" "sendFault"

 

Assertion ID

JCA-TA-7007

Source

[JCA60006]

Target

Java interface of a service or of a reference

Prerequisites

Interface contains one or more methods characterized as "Asynchronous service methods"

Predicate

Java interface is treated for matching purposes as if the asynchronous service methods are mapped to the equivalent synchronous methods

Prescription Level

mandatory

Tags

"asynchronous service interface" "interface matching" "synchronous methods"

 

2.5    Section 8

 

Assertion ID

JCA-TA-8001

Source

[JCA70001]

Target

Declaration of a Java annotation that corresponds to an SCA intent

Prerequisites

 

Predicate

Declaration includes the @Intent annotation

Prescription Level

mandatory

Tags

"annotation" "declaration" "@Intent" "intent"

 

 

Assertion ID

JCA-TA-8002

Source

[JCA70002]

Target

Method of Java implementation class

Prerequisites

Method is annotated with an Intent annotation

Predicate

Method is a setter method for an SCA reference, either through explicit marking with @Reference or through introspection as defined in component implementation specification

Prescription Level

mandatory

Tags

"annotation" "method" "intent"

 

 

Assertion ID

JCA-TA-8003

Source

[JCA70002]

Target

Field of a Java implementation class

Prerequisites

Field is annotated with an Intent annotation

Predicate

Field is an SCA reference field, either through explicit marking with @Reference or through introspection as defined in the component implementation specification

Prescription Level

mandatory

Tags

"annotation" "field" "intent"

 

Assertion ID

JCA-TA-8004

Source

[JCA70002]

Target

Constructor parameter of a Java implementation class

Prerequisites

Constructor parameter is annotated with an Intent annotation

Predicate

Constructor parameter is marked as an SCA reference using the @Reference annotation

Prescription Level

mandatory

Tags

"annotation" "constructor" "parameter" "intent"

 

Assertion ID

JCA-TA-8005

Source

[JCA70003]

Target

Java element annotated with multiple intent annotations

Prerequisites

 

Predicate

The set of intents which apply to the Java element are the combination of all the separate intents declared by the annotations, following the combination rules defined in the SCA Policy Framework spec

Prescription Level

mandatory

Tags

"annotation" "multiple" "intent" "combination"

 

 

Assertion ID

JCA-TA-8006

Source

[JCA70004]

Target

Method of a Java interface

Prerequisites

One set of Intent annotations are specified on the Java interface

A second set of Intent annotations are specified on the method

Predicate

The set of intents which apply to the method are the combination of the set of intents on the interface with the set of intents on the method, following the merging rules for a structural hierarchy defined in the SCA Policy Framework specification

Prescription Level

mandatory

Tags

"annotation" "multiple" "intent" "combination" "interface" "method"

 

 

Assertion ID

JCA-TA-8007

Source

[JCA70005]

Target

Method of Java implementation class

Prerequisites

Method is annotated with a PolicySets annotation

Predicate

Method is a setter method for an SCA reference, either through explicit marking with @Reference or through introspection as defined in component implementation specification

Prescription Level

mandatory

Tags

"annotation" "reference" "@PolicySets" "method"

 

 

Assertion ID

JCA-TA-8008

Source

[JCA70005]

Target

Field of a Java implementation class

Prerequisites

Field is annotated with a PolicySets annotation

Predicate

Field is an SCA reference field, either through explicit marking with @Reference or through introspection as defined in the component implementation specification

Prescription Level

mandatory

Tags

"annotation" "reference" "@PolicySets" "field"

 

 

Assertion ID

JCA-TA-8009

Source

[JCA70005]

Target

Constructor parameter of a Java implementation class

Prerequisites

Constructor parameter is annotated with a PolicySets annotation

Predicate

Constructor parameter is marked as an SCA reference using the @Reference annotation

Prescription Level

mandatory

Tags

"annotation" "constructor" "@PolicySets" "reference"

 

 

Assertion ID

JCA-TA-8010

Source

[JCA70006]

Target

Method of a Java interface

Prerequisites

Java interface is annotated with @PolicySets annotation

Method is annotated with a second @PolicySets annotation

Predicate

The set of intents which apply to the method is the union of the policy sets specificed by the two @PolicySets annotations.

Prescription Level

mandatory

Tags

"annotation" "@PolicySets" "interface" "method" "combination"

 

2.6    Section 9

 

Assertion ID

JCA-TA-9001

Source

[JCA80001]

Target

invocation of getService(...) method of ComponentContext API

Prerequisites

referenceName parameter of the method identifies a reference of multiplicity 0..n or multiplicity 1..n

Predicate

getService(...) method throws an IllegalArgumentException

Prescription Level

mandatory

Tags

"ComponentContext" "getService" "0..n" "1..n" "IllegalArgumentException"

 

 

Assertion ID

JCA-TA-9002

Source

[JCA80002]

Target

invocation of getRequestContext(...) method of ComponentContext API

Prerequisites

invocation takes place during the execution of a Java business method of a service operation

invocation take place on the same Java thread used by the SCA runtime to invoke the business method

Predicate

invocation returns a non-null value for the RequestContext

Prescription Level

mandatory

Tags

"ComponentContext" "getRequestContext" "business method" "service"

 

 

Assertion ID

JCA-TA-9003

Source

[JCA80003]

Target

invocation of getServiceReference() method of RequestContext API

Prerequisites

invocation takes place during the execution of a Java business method of a service operation

Predicate

getServiceReference() method returns a ServiceReference object that represents the service that was invoked

Prescription Level

mandatory

Tags

"RequestContext" "service operation" "getServiceReference"

 

Assertion ID

JCA-TA-9004

Source

[JCA80003]

Target

invocation of getServiceReference() method of RequestContext API

Prerequisites

invocation takes place during the execution of a Java business method of a callback operation

Predicate

getServiceReference() method returns a ServiceReference object that represents the callback that was invoked

Prescription Level

mandatory

Tags

"RequestContext" "callback operation" "getServiceReference"

 

 

Assertion ID

JCA-TA-9005

Source

[JCA80002]

Target

invocation of getRequestContext(...) method of ComponentContext API

Prerequisites

invocation takes place during the execution of a Java business method of a callback operation

invocation take place on the same Java thread use by the SCA runtime to invoke the business method

Predicate

invocation returns a non-null value for the RequestContext

Prescription Level

mandatory

Tags

"ComponentContext" "getRequestContext" "business method" "callback"

 

 

Assertion ID

JCA-TA-9006

Source

[JCA80005]

Target

invocation of ComponentContext.getServiceReference() method

Prerequisites

reference named by referenceName parameter does not have an interface of the type defined by the businessInterface parameter

Predicate

getServiceReference() method throws an IllegalArgumentException

Prescription Level

mandatory

Tags

"ComponentContext" "getServiceReference()" "IllegalArgumentException" "interface type" "businessInterface"

 

Assertion ID

JCA-TA-9007

Source

[JCA80006]

Target

invocation of ComponentContext.getServiceReference() method

Prerequisites

component which is invoking the method does not have a reference with the name provided in the referenceName parameter

Predicate

getServiceReference() method throws an IllegalArgumentException

Prescription Level

mandatory

Tags

"ComponentContext" "getServiceReference()" "IllegalArgumentException" "referenceName"

 

Assertion ID

JCA-TA-9008

Source

[JCA80007]

Target

invocation of ComponentContext.getServiceReference() method

Prerequisites

a) multiplicity of the reference named by the referenceName parameter is 0..1

b) reference has no target service configured

Predicate

getServiceReference() method returns null

Prescription Level

mandatory

Tags

"ComponentContext" "getServiceReference()" "IllegalArgumentException" "multiplicity" "target service"

 

Assertion ID

JCA-TA-9009

Source

[JCA80008]

Target

invocation of ComponentContext.getURI method

Prerequisites

 

Predicate

returns the absolute URI of the component in the SCA Domain

Prescription Level

mandatory

Tags

"ComponentContext" "getURI"

 

Assertion ID

JCA-TA-9010

Source

[JCA80009]

Target

invocation of ComponentContext.getService method

Prerequisites

reference named by the referenceName parameter has a target service configured

Predicate

method returns a proxy object with the interface passed in the businessInterface parameter for the reference named in the referenceName parameter

Prescription Level

mandatory

Tags

"ComponentContext" "getService" "proxy"

 

Assertion ID

JCA-TA-9011

Source

[JCA80010]

Target

invocation of ComponentContext.getService method

Prerequisites

multiplicity of the reference named by the referenceName parameter is 0..1

reference has no target service configured

Predicate

method returns null

Prescription Level

mandatory

Tags

"ComponentContext" "getService" "0..1" "no target"

 

Assertion ID

JCA-TA-9012

Source

[JCA80011]

Target

invocation of ComponentContext.getService method

Prerequisites

the component does not have a reference with the name in the referenceName parameter

Predicate

method throws an IllegalArgumentException

Prescription Level

mandatory

Tags

"ComponentContext" "getService" "referenceName" "IllegalArgumentException"

 

Assertion ID

JCA-TA-9013

Source

[JCA80012]

Target

invocation of ComponentContext.getService method

Prerequisites

reference named by the referenceName parameter does not have an interface compatible with the interface supplied in the businessInterface parameter

Predicate

method throws an IllegalArgumentException

Prescription Level

mandatory

Tags

"ComponentContext" "getService" "businessInterface" "IllegalArgumentException"

 

Assertion ID

JCA-TA-9014

Source

[JCA80013]

Target

invocation of ComponentContext.getServiceReference method

Prerequisites

reference named by the referenceName parameter has a target service configured

Predicate

method returns a ServiceReference object with the interface passed in the businessInterface parameter for the reference named in the referenceName parameter

Prescription Level

mandatory

Tags

"ComponentContext" "getServiceReference" "ServiceReference"

 

Assertion ID

JCA-TA-9015

Source

[JCA80014]

Target

invocation of ComponentContext.getServices method

Prerequisites

reference identified by the referenceName parameter exists and is configured with one or more target services

identified reference has the interface supplied in the businessInterface parameter

Predicate

returns a Collection containing one proxy object for each target service of the reference, each implementing the interface supplied in the businessInterface parameter

Prescription Level

mandatory

Tags

"ComponentContext" "getServices" "collection" "proxy"

 

Assertion ID

JCA-TA-9016

Source

[JCA80015]

Target

invocation of ComponentContext.getServices method

Prerequisites

reference identified by the referenceName parameter exists but is configured with zero target services

Predicate

returns an empty Collection

Prescription Level

mandatory

Tags

"ComponentContext" "getServices" "collection" "empty"

 

Assertion ID

JCA-TA-9017

Source

[JCA80016]

Target

invocation of ComponentContext.getServices method

Prerequisites

reference identified by the referenceName parameter has a multiplicity of either 0..1 or 1..1

Predicate

method throws an IllegalArgumentException

Prescription Level

mandatory

Tags

"ComponentContext" "getServices" "multiplicity" "0..1" "1..1" "IllegalArgumentException"

 

Assertion ID

JCA-TA-9018

Source

[JCA80017]

Target

invocation of ComponentContext.getServices method

Prerequisites

component does not have a reference with the name identified by the referenceName parameter

Predicate

method throws an IllegalArgumentException

Prescription Level

mandatory

Tags

"ComponentContext" "getServices" "reference" "referenceName" "IllegalArgumentException"

 

Assertion ID

JCA-TA-9019

Source

[JCA80018]

Target

invocation of ComponentContext.getServices method

Prerequisites

reference identified by the referenceName parameter does not have an interface compatible with the interface supplied in the businessInterface parameter

Predicate

method throws an IllegalArgumentException

Prescription Level

mandatory

Tags

"ComponentContext" "getServices" "reference" "businessInterface" "IllegalArgumentException"

 

Assertion ID

JCA-TA-9020

Source

[JCA80019]

Target

invocation of ComponentContext.getServiceReferences method

Prerequisites

reference identified by the referenceName parameter exists and is configured with one or more target services

identified reference has the interface supplied in the businessInterface parameter

Predicate

returns a Collection containing one ServiceReference object for each target service of the reference, each implementing the interface supplied in the businessInterface parameter

Prescription Level

mandatory

Tags

"ComponentContext" "getServiceReferences" "collection" "ServiceReference"

 

Assertion ID

JCA-TA-9021

Source

[JCA80020]

Target

invocation of ComponentContext.getServiceReferencess method

Prerequisites

reference identified by the referenceName parameter exists and is configured with zero target services

Predicate

returns an empty Collection

Prescription Level

mandatory

Tags

"ComponentContext" "getServiceReferences" "collection" "ServiceReference" "unwired"

 

Assertion ID

JCA-TA-9022

Source

[JCA80021]

Target

invocation of ComponentContext.getServiceReferencess method

Prerequisites

reference identified by the referenceName parameter has multiplicity of 0..1 or 1..1

Predicate

method throws an IllegalArgumentException

Prescription Level

mandatory

Tags

"ComponentContext" "getServiceReferences" "0..1" "1..1" "IllegalArgumentException"

 

Assertion ID

JCA-TA-9023

Source

[JCA80022]

Target

invocation of ComponentContext.getServiceReferencess method

Prerequisites

component does not have a reference with the name contained in the referenceName parameter

Predicate

method throws an IllegalArgumentException

Prescription Level

mandatory

Tags

ComponentContext" "getServiceReferences" "referenceName" "IllegalArgumentException"

 

Assertion ID

JCA-TA-9024

Source

[JCA80023]

Target

invocation of ComponentContext.getServiceReferencess method

Prerequisites

reference identified by the referenceName parameter does not have an interface compatible with the interface supplied in the businessInterface parameter

Predicate

method throws an IllegalArgumentException

Prescription Level

mandatory

Tags

"ComponentContext" "getServiceReferences" "businessInterface" "IllegalArgumentException"

 

Assertion ID

JCA-TA-9025

Source

[JCA80024]

Target

invocation of ComponentContext.createSelfReference(businessInterface) method

Prerequisites

invoking component has one or more services with the interface specified in the businessInterface parameter

Predicate

returns a ServiceReference object typed by the interface defined by the businessInterface parameter for one of the services of the invoking component which has that interface

Prescription Level

mandatory

Tags

"ComponentContext" "createSelfReference" "ServiceReference" "businessInterface"

 

Assertion ID

JCA-TA-9026

Source

[JCA80025]

Target

invocation of ComponentContext.createSelfReference(businessInterface) method

Prerequisites

invoking component has no service with the interface specified in the businessInterface parameter

Predicate

method throws an IllegalArgumentException

Prescription Level

mandatory

Tags

"ComponentContext" "createSelfReference" "IllegalArgumentException" "businessInterface"

 

Assertion ID

JCA-TA-9027

Source

[JCA80026]

Target

invocation of ComponentContext.createSelfReference(businessInterface, serviceName) method

Prerequisites

invoking component has a service with the name specified in the serviceName parameter

service with the name specified in serviceName has an interface

Predicate

returns a ServiceReference object typed by the interface defined by the businessInterface parameter for one of the services of the invoking component which has that interface

Prescription Level

mandatory

Tags

"ComponentContext" "createSelfReference" "serviceName" "ServiceReference" "businessInterface"

 

Assertion ID

JCA-TA-9028

Source

[JCA80027]

Target

invocation of ComponentContext.createSelfReference(businessInterface, serviceName) method

Prerequisites

invoking component has no service with the name specified in the serviceName parameter

Predicate

method throws an IllegalArgumentException

Prescription Level

mandatory

Tags

"ComponentContext" "createSelfReference" "serviceName" "IllegalArgumentException"

 

Assertion ID

JCA-TA-9029

Source

[JCA80028]

Target

invocation of ComponentContext.createSelfReference(businessInterface, serviceName) method

Prerequisites

the service with the name specified in the serviceName parameter does not have the interface defined in the businessInterface parameter

Predicate

method throws an IllegalArgumentException

Prescription Level

mandatory

Tags

"ComponentContext" "createSelfReference" "serviceName" "IllegalArgumentException" "businessInterface"

 

Assertion ID

JCA-TA-9030

Source

[JCA80029]

Target

invocation of ComponentContext.getProperty method

Prerequisites

component configuration contains a value for the property with name supplied in the propertyName parameter

Predicate

method returns an object of the type identified by the type parameter containing the value in the component configuration for the property with the name in the propertyName parameter

Prescription Level

mandatory

Tags

"ComponentContext" "getProperty" "property value" "propertyName"

 

Assertion ID

JCA-TA-9031

Source

[JCA80029]

Target

invocation of ComponentContext.getProperty method

Prerequisites

component configuration contains no value for the property with name supplied in the propertyName parameter

Predicate

method returns null

Prescription Level

mandatory

Tags

"ComponentContext" "getProperty" "property value" "propertyName" "null"

 

Assertion ID

JCA-TA-9032

Source

[JCA80030]

Target

invocation of ComponentContext.getProperty method

Prerequisites

component does not have a property with name supplied in the propertyName parameter

Predicate

method throws an IllegalArgumentException

Prescription Level

mandatory

Tags

"ComponentContext" "getProperty" "propertyName" "IllegalArgumentException"

 

Assertion ID

JCA-TA-9033

Source

[JCA80031]

Target

invocation of ComponentContext.getProperty method

Prerequisites

component property with the name supplied in the propertyName parameter does not have a type compatible with the supplied type parameter

Predicate

method throws an IllegalArgumentException

Prescription Level

mandatory

Tags

"ComponentContext" "getProperty" "type" "IllegalArgumentException"

 

Assertion ID

JCA-TA-9034

Source

[JCA80032]

Target

invocation of ComponentContext.cast method

Prerequisites

 

Predicate

method returns a ServiceReference object typed by the same interface as specified by the reference proxy object supplied in the target parameter

Prescription Level

mandatory

Tags

"ComponentContext" "cast" "ServiceReference"

 

Assertion ID

JCA-TA-9035

Source

[JCA80033]

Target

invocation of ComponentContext.cast method

Prerequisites

supplied target parameter is not an SCA reference proxy object

Predicate

method throws an IllegalArgumentException

Prescription Level

mandatory

Tags

"ComponentContext" "cast" "IllegalArgumentException"

 

Assertion ID

JCA-TA-9036

Source

[JCA80034]

Target

invocation of RequestContext.getSecuritySubject method

Prerequisites

current request has a JAAS subject

method is invoked from code processing a service request or a callback request

Predicate

method returns the JAAS subject of the request

Prescription Level

mandatory

Tags

"RequestContext" "getSecuritySubject" "JAAS subject"

 

Assertion ID

JCA-TA-9037

Source

[JCA80034]

Target

invocation of RequestContext.getSecuritySubject method

Prerequisites

current request has no JAAS subject

Predicate

method returns null

Prescription Level

mandatory

Tags

"RequestContext" "getSecuritySubject" "JAAS subject" "null"

 

Assertion ID

JCA-TA-9038

Source

[JCA80034]

Target

invocation of RequestContext.getSecuritySubject method

Prerequisites

method is invoked from code not processing a service request or a callback request

Predicate

method returns null

Prescription Level

mandatory

Tags

"RequestContext" "getSecuritySubject" "JAAS subject" "null"

 

Assertion ID

JCA-TA-9039

Source

[JCA80035]

Target

invocation of RequestContext.getServiceName method

Prerequisites

invocation is from thread processing service operation or callback operation

Predicate

method returns the name of the service for which operation is being processed

Prescription Level

mandatory

Tags

"RequestContext" "getServiceName" "operation"

 

Assertion ID

JCA-TA-9040

Source

[JCA80035]

Target

invocation of RequestContext.getServiceName method

Prerequisites

invocation is not from thread processing service operation or callback operation

Predicate

method returns null

Prescription Level

mandatory

Tags

"RequestContext" "getServiceName" "null"

 

Assertion ID

JCA-TA-9041

Source

[JCA80036]

Target

invocation of RequestContext.getCallbackReference method

Prerequisites

method invoked from a thread processing an operation of a bidirectional service

Predicate

method returns a ServiceReference typed by the interface of the callback 

Prescription Level

mandatory

Tags

"RequestContext" "getCallbackReference" "bidirectional service"

 

Assertion ID

JCA-TA-9042

Source

[JCA80036]

Target

invocation of RequestContext.getCallbackReference method

Prerequisites

method invoked from a thread processing an operation of a service which is not bidirectional

Predicate

method returns null

Prescription Level

mandatory

Tags

"RequestContext" "getCallbackReference" "not bidirectional service"

 

Assertion ID

JCA-TA-9043

Source

[JCA80036]

Target

invocation of RequestContext.getCallbackReference method

Prerequisites

method invoked from a thread not processing an operation of a service

Predicate

method returns null

Prescription Level

mandatory

Tags

"RequestContext" "getCallbackReference" "null service"

 

Assertion ID

JCA-TA-9044

Source

[JCA80037]

Target

invocation of RequestContext.getCallback method

Prerequisites

method invoked from a thread processing an operation of a bidirectional service

Predicate

method returns a reference proxy object typed by the interface of the callback 

Prescription Level

mandatory

Tags

"RequestContext" "getCallback" "bidirectional service"

 

Assertion ID

JCA-TA-9045

Source

[JCA80037]

Target

invocation of RequestContext.getCallback method

Prerequisites

method invoked from a thread processing an operation of a service which is not bidirectional

Predicate

method returns null

Prescription Level

mandatory

Tags

"RequestContext" "getCallback" "not bidirectional service"

 

Assertion ID

JCA-TA-9046

Source

[JCA80037]

Target

invocation of RequestContext.getCallback method

Prerequisites

method invoked from a thread not processing an operation of a service

Predicate

method returns null

Prescription Level

mandatory

Tags

"RequestContext" "getCallback" "null service"

 

Assertion ID

JCA-TA-9047

Source

[JCA80038]

Target

invocation of RequestContext.getServiceReference method

Prerequisites

method is invoked by a thread processing a callback operation

Predicate

method returns a ServiceReference that represents the callback service

Prescription Level

mandatory

Tags

"RequestContext" "getServiceReference" "callback operation" "ServiceReference"

 

Assertion ID

JCA-TA-9048

Source

[JCA80039]

Target

invocation of RequestContext.getServiceReference method

Prerequisites

method is invoked by a thread not involved in processing either a service operation or a callback operation

Predicate

method returns null

Prescription Level

mandatory

Tags

"RequestContext" "getServiceReference" "null"

 

Assertion ID

JCA-TA-9049

Source

[JCA80040]

Target

invocation of ServiceReference.getService method

Prerequisites

 

Predicate

method returns a reference proxy object typed by the business interface of the reference and which can be used to invoke operations on the target service of the reference

Prescription Level

mandatory

Tags

"ServiceReference" "getService" "reference proxy"

 

Assertion ID

JCA-TA-9050

Source

[JCA80041]

Target

invocation of ServiceReference.getBusinessInterface method

Prerequisites

 

Predicate

method returns a Class object representing the business interface of the reference

Prescription Level

mandatory

Tags

"ServiceReference" "getBusinessInterface" "reference" "interface"

 

Assertion ID

JCA-TA-9051

Source

[JCA80042]

Target

invocation of SCAClientFactory.newInstance( URI ) method

Prerequisites

domainURI parameter identifies a valid SCA Domain

Predicate

method returns an object which implements the SCAClientFactory class for the SCA Domain identified by the domainURI parameter

Prescription Level

mandatory

Tags

"SCAClientFactory" "domainURI" "SCAClientFactory"

 

Assertion ID

JCA-TA-9052

Source

[JCA80043]

Target

invocation of SCAClientFactory.newInstance( URI ) method

Prerequisites

domainURI parameter does not identify a valid SCA Domain

Predicate

method throws a NoSuchDomainException

Prescription Level

mandatory

Tags

"SCAClientFactory" "domainURI" "SCAClientFactory" "NoSuchDomainException"

 

Assertion ID

JCA-TA-9053

Source

[JCA80044]

Target

invocation of SCAClientFactory.newInstance( Properties, URI ) method

Prerequisites

domainURI parameter identifies a valid SCA Domain

Predicate

method returns an object which implements the SCAClientFactory class for the SCA Domain identified by the domainURI parameter

Prescription Level

mandatory

Tags

"SCAClientFactory" "domainURI" "Properties" "SCAClientFactory"

 

Assertion ID

JCA-TA-9054

Source

[JCA80045]

Target

invocation of SCAClientFactory.newInstance( Properties, URI ) method

Prerequisites

domainURI parameter does not identify a valid SCA Domain

Predicate

method throws a NoSuchDomainException

Prescription Level

mandatory

Tags

"SCAClientFactory" "domainURI" "Properties" "SCAClientFactory" "NoSuchDomainException"

 

Assertion ID

JCA-TA-9055

Source

[JCA80046]

Target

invocation of SCAClientFactory.newInstance( Classloader, URI ) method

Prerequisites

domainURI parameter identifies a valid SCA Domain

Predicate

method returns an object which implements the SCAClientFactory class for the SCA Domain identified by the domainURI parameter

Prescription Level

mandatory

Tags

"SCAClientFactory" "domainURI" "Classloader" "SCAClientFactory"

 

Assertion ID

JCA-TA-9056

Source

[JCA80047]

Target

invocation of SCAClientFactory.newInstance( Classloader, URI ) method

Prerequisites

domainURI parameter does not identify a valid SCA Domain

Predicate

method throws a NoSuchDomainException

Prescription Level

mandatory

Tags

"SCAClientFactory" "domainURI" "Classloader" "SCAClientFactory" "NoSuchDomainException"

 

Assertion ID

JCA-TA-9057

Source

[JCA80048]

Target

invocation of SCAClientFactory.newInstance( Properties, Classloader, URI ) method

Prerequisites

domainURI parameter identifies a valid SCA Domain

Predicate

method returns an object which implements the SCAClientFactory class for the SCA Domain identified by the domainURI parameter

Prescription Level

mandatory

Tags

"SCAClientFactory" "domainURI" "Properties" "Classloader" "SCAClientFactory"

 

Assertion ID

JCA-TA-9058

Source

[JCA80049]

Target

invocation of SCAClientFactory.newInstance( Properties, Classloader, URI ) method

Prerequisites

domainURI parameter does not identify a valid SCA Domain

Predicate

method throws a NoSuchDomainException

Prescription Level

mandatory

Tags

"SCAClientFactory" "domainURI" "Properties" "Classloader" "SCAClientFactory" "NoSuchDomainException"

 

Assertion ID

JCA-TA-9059

Source

[JCA80050]

Target

invocation of SCAClientFactory.getService method

Prerequisites

service identified by the serviceURI parameter exists

service has a service interface compatible with the interface supplied inthe interfaze parameter

Predicate

method returns a proxy object which implements the business interface supplied by the interfaze parameter which can be used to invoke operations on the service identified by the serviceURI parameter

Prescription Level

mandatory

Tags

"SCAClientFactory" "getService" "proxy"

 

Assertion ID

JCA-TA-9060

Source

[JCA80051]

Target

invocation of SCAClientFactory.getService method

Prerequisites

service identified by the serviceURI parameter does not exist

OR

service does not have a service interface compatible with the interface supplied inthe interfaze parameter

Predicate

method throws a NoSuchServiceException

Prescription Level

mandatory

Tags

"SCAClientFactory" "getService" "NoSuchServiceException"

 

Assertion ID

JCA-TA-9061

Source

[JCA80052]

Target

invocation of SCAClientFactory.getService method

Prerequisites

domain URI associated with SCAClientFactory  does not itentify a valid SCA Domain

Predicate

method throws a NoSuchServiceException

Prescription Level

mandatory

Tags

"SCAClientFactory" "getService" "NoSuchServiceException"

 

Assertion ID

JCA-TA-9062

Source

[JCA80053]

Target

invocation of SCAClientFactory.getDomainURI method

Prerequisites

 

Predicate

returns the SCA Domain URI of the Domain associated with the SCAClientFactory object

Prescription Level

mandatory

Tags

"SCAClientFactory" "getDomainURI" "Domain URI"

 

Assertion ID

JCA-TA-9063

Source

[JCA80054]

Target

invocation of SCAClientFactory.getDomainURI method

Prerequisites

domain URI associated with SCAClientFactory  does not itentify a valid SCA Domain

Predicate

method throws a NoSuchServiceException

Prescription Level

mandatory

Tags

"SCAClientFactory" "getDomainURI" "NoSuchServiceException"

 

Assertion ID

JCA-TA-9064

Source

[JCA80055]

Target

invocation of SCAClientFactoryFinder.find method

Prerequisites

SCAClientFactory implementation exists and can be found

Predicate

returns an object which implements the SCAClientFactory interface for the SCA Domain represented by the domainURI parameter

Prescription Level

mandatory

Tags

"SCAClientFactoryFinder" "find" "SCAClientFactory"

 

Assertion ID

JCA-TA-9065

Source

[JCA80056]

Target

invocation of SCAClientFactoryFinder.find method

Prerequisites

SCAClientFactory implementation cannot be found

Predicate

method throws a ServiceRuntimeException

Prescription Level

mandatory

Tags

"SCAClientFactoryFinder" "find"  "ServiceRuntimeException"

 

Assertion ID

JCA-TA-9066

Source

[JCA80057]

Target

invocation of ResponseDispatch.sendResponse() method

Prerequisites

sendResponse() and sendFault() methods of the ResponseDispatch object have not been called previously

Predicate

method sends the supplied response message to the client of the asynchronous service

Prescription Level

mandatory

Tags

"ResponseDispatch" "sendResponse"

 

Assertion ID

JCA-TA-9067

Source

[JCA80058]

Target

invocation of ResponseDispatch.sendResponse() method

Prerequisites

one of sendResponse() or sendFault() methods of the ResponseDispatch object have been called previously

Predicate

method throws an InvalidStateException

Prescription Level

mandatory

Tags

"ResponseDispatch" "sendResponse"  "InvalidStateException"

 

Assertion ID

JCA-TA-9068

Source

[JCA80059]

Target

invocation of ResponseDispatch.sendFault() method

Prerequisites

sendResponse() and sendFault() methods of the ResponseDispatch object have not been called previously

Predicate

method sends the supplied fault to the client of the asynchronous service

Prescription Level

mandatory

Tags

"ResponseDispatch" "sendFault"

 

Assertion ID

JCA-TA-9069

Source

[JCA80060]

Target

invocation of ResponseDispatch.sendFault() method

Prerequisites

one of sendResponse() or sendFault() methods of the ResponseDispatch object have been called previously

Predicate

method throws an InvalidStateException

Prescription Level

mandatory

Tags

"ResponseDispatch" "sendFault"  "InvalidStateException"

 

Assertion ID

JCA-TA-9070

Source

[JCA80004]

Target

invocation of ComponentContext.getServiceReference() method

Prerequisites

reference named by referenceName parameter has a multiplicity > 1

Predicate

getServiceReference() method throws an IllegalArgumentException

Prescription Level

mandatory

Tags

"ComponentContext" "getServiceReference()" "multiplicity" "IllegalArgumentException"

 

2.7    Section 10

 

Assertion ID

JCA-TA-10001

Source

[JCA90001]

Target

Component implementation contains an SCA annotation that is improperly used

Prerequisites

 

Predicate

The component which uses the implementation does not run

Prescription Level

mandatory

Tags

"implementation" "invalid annotation"

 

Assertion ID

JCA-TA-10002

Source

[JCA90002]

Target

Component implementation class

Prerequisites

Class has static method

Class has an SCA annotation

Predicate

Class does not have SCA annotation applied to static method

Prescription Level

mandatory

Tags

"SCA annotation" "static method"

 

 

Assertion ID

JCA-TA-10003

Source

[JCA90002]

Target

Component implementation class

Prerequisites

Class has static field

Class has an SCA annotation

Predicate

Class does not have SCA annotation applied to static field

Prescription Level

mandatory

Tags

"SCA annotation" "static field"

 

 

Assertion ID

JCA-TA-10004

Source

[JCA90052]

Target

Java class containing @AllowsPassByReference annotation

Prerequisites

 

Predicate

@AllowsPassByRefereence annotation is attached to:

- the Java class itself

- or a method of a remotable service offered by the class

- or an SCA reference of the class, in which case it is attached to the reference in a place where a @Reference annotation is valid

Prescription Level

mandatory

Tags

"@AllowsPassByReference" "Java class" "attachment"

 

Assertion ID

JCA-TA-10031

Source

[JCA90046]

Target

@Callback annotation on a setter method or on a field of an implementation class, for injection of a callback object

Prerequisites

 

Predicate

@Callback annotation does not specify any attributes

Prescription Level

mandatory

Tags

"annotation" "Callback" "implementation" "injection"

 

Assertion ID

JCA-TA-10005

Source

[JCA90003]

Target

Constructor of an implementation class

Prerequisites

Constructor has parameters

Constructor is annotated with the @Constructor annotation

Predicate

Each parameter of the Constructor is annotated with either @Reference or with @Property

Prescription Level

mandatory

Tags

"annotation" "constructor" "parameters" "@Reference" "@Property"

 

Assertion ID

JCA-TA-10006

Source

[JCA90004]

Target

Method of Java implementation class annotated with @Destroy

Prerequisites

 

Predicate

Method has void return type and no arguments

Prescription Level

mandatory

Tags

"annotation" "@Destroy" "return type" "arguments"

 

Assertion ID

JCA-TA-10007

Source

[JCA90005]

Target

Java implementation class with a method annotated with @Destroy

Prerequisites

Scope of the implementation class ends

Predicate

Method annotated with @Destroy is invoked.

Prescription Level

mandatory

Tags

"annotation" "@Destroy" "invoke" "scope"

 

Assertion ID

JCA-TA-10008

Source

[JCA90007]

Target

Java implementation class annotated with @EagerInit

Prerequisites

Implementation class is Composite scoped

Component using the implementation is started

Predicate

Java implementation class is started

Prescription Level

mandatory

Tags

"annotation" "@EagerInit" "composite scope" "started"

 

Assertion ID

JCA-TA-10009

Source

[JCA90008]

Target

Method annotated with @Init in a Java implementation class

Prerequisites

 

Predicate

Method has void return type and no arguments

Prescription Level

mandatory

Tags

"anotation" "method" "@Init" "return type" "arguments"

 

Assertion ID

JCA-TA-10010

Source

[JCA90009]

Target

Method annotated with @Init

Prerequisites

Java class is started

Property and Reference injection is complete

Predicate

Method is invoked

Prescription Level

mandatory

Tags

"annotation" "@Init" "started" "invoked"

 

Assertion ID

JCA-TA-10011

Source

[JCA90011]

Target

Java implementation class field annotated with @Property

Prerequisites

 

Predicate

Class field is not declared as final

Prescription Level

mandatory

Tags

"annotation" "@Property" "field" "final"

 

Assertion ID

JCA-TA-10012

Source

[JCA90013]

Target

@Property annotation of a constructor parameter

Prerequisites

 

Predicate

@Property annotation has a @name attribute present

Prescription Level

mandatory

Tags

"annotation" "@Property" "@name" "constructor" "parameter"

 

 

Assertion ID

JCA-TA-10013

Source

[JCA90014]

Target

@Property annotation of a constructor parameter

Prerequisites

 

Predicate

@Property annotation has @required=true

Prescription Level

mandatory

Tags

"annotation" "@Property" "@required" "constructor" "parameter"

 

Assertion ID

JCA-TA-10014

Source

[JCA90047]

Target

Introspected component type of Java implementation class

Prerequisites

@Property annnotation is applied to a class field or to the input parameter of a setter method or of a constructor

Type of the element to which @Property is applied is an array or is a type that implements or extends java.util.Collection

Predicate

Component type contains a <property/> element corresponding to the @Property annotation, with @many attribute set to "true"

Prescription Level

mandatory

Tags

"annotation" "@Property" "componentType" "@many" "array" "collection"

 

Assertion ID

JCA-TA-10015

Source

[JCA90047]

Target

Introspected component type of Java implementation class

Prerequisites

@Property annnotation is applied to a class field or to the input parameter of a setter method or of a constructor

Type of the element to which @Property is applied is not an array and is not a type that implements or extends java.util.Collection

Predicate

Component type contains a <property/> element corresponding to the @Property annotation, with @many attribute set to "false"

Prescription Level

mandatory

Tags

"annotation" "@Property" "componentType" "@many" "array" "collection"

 

Assertion ID

JCA-TA-10016

Source

[JCA90015]

Target

Definition of an Intent annotation

Prerequisites

The SCA intent has qualifiers

Predicate

The Intent annotation definition contains the @Qualifier annotation

Prescription Level

mandatory

Tags

"annotation" "defintion" "intent" "qualifiiers" "@Qualifier"

 

Assertion ID

JCA-TA-10017

Source

[JCA90016]

Target

Java implementation class field annotated with @Reference

Prerequisites

 

Predicate

Class field is not declared as final

Prescription Level

mandatory

Tags

"annotation" "@Reference" "field" "final"

 

Assertion ID

JCA-TA-10018

Source

[JCA90018]

Target

@Reference annotation of a constructor method parameter

Prerequisites

 

Predicate

@Reference annotation has a @name attribute present

Prescription Level

mandatory

Tags

"annotation" "constructor" "parameter" "@Reference" "@name"

 

Assertion ID

JCA-TA-10019

Source

[JCA0019]

Target

@Reference annotation of a constructor method parameter

Prerequisites

 

Predicate

@Reference annotation has its @required attribute with the value "true"

Prescription Level

mandatory

Tags

"annotation" "constructor" "parameter" "@Reference" "@required"

 

Assertion ID

JCA-TA-10020

Source

[JCA90020]

Target

Introspected component type of Java implementation class

Prerequisites

@Reference annnotation is applied to a class field or to the input parameter of a setter method or of a constructor

Type of the element to which @Reference is applied is not an array and is not a type that implements or extends java.util.Collection

@Reference @required attribute has the value "false"

Predicate

Component type contains a <reference/> element corresponding to the @Refeence annotation, with @multiplicity attribute set to "0..1"

Prescription Level

mandatory

Tags

"annotation" "@Reference" "componentType" "@multiplicity" "array" "collection"

 

Assertion ID

JCA-TA-10021

Source

[JCA90020]

Target

Introspected component type of Java implementation class

Prerequisites

@Reference annnotation is applied to a class field or to the input parameter of a setter method or of a constructor

Type of the element to which @Reference is applied is not an array and is not a type that implements or extends java.util.Collection

@Reference @required attribute has the value "true"

Predicate

Component type contains a <reference/> element corresponding to the @Refeence annotation, with @multiplicity attribute set to "1..1"

Prescription Level

mandatory

Tags

"annotation" "@Reference" "componentType" "@multiplicity" "array" "collection"

 

Assertion ID

JCA-TA-10022

Source

[JCA90021]

Target

Introspected component type of Java implementation class

Prerequisites

@Reference annnotation is applied to a class field or to the input parameter of a setter method or of a constructor

Type of the element to which @Reference is applied is an array or is a type that implements or extends java.util.Collection

@Reference @required attribute has the value "false"

Predicate

Component type contains a <reference/> element corresponding to the @Refeence annotation, with @multiplicity attribute set to "0..n"

Prescription Level

mandatory

Tags

"annotation" "@Reference" "componentType" "@multiplicity" "array" "collection"

 

Assertion ID

JCA-TA-10023

Source

[JCA90021]

Target

Introspected component type of Java implementation class

Prerequisites

@Reference annnotation is applied to a class field or to the input parameter of a setter method or of a constructor

Type of the element to which @Reference is applied is an array or is a type that implements or extends java.util.Collection

@Reference @required attribute has the value "true"

Predicate

Component type contains a <reference/> element corresponding to the @Refeence annotation, with @multiplicity attribute set to "1..n"

Prescription Level

mandatory

Tags

"annotation" "@Reference" "componentType" "@multiplicity" "array" "collection"

 

Assertion ID

JCA-TA-10024

Source

[JCA90022]

Target

Reference obtained by the Java implementation either via injection or via the ComponentContext getService(...) method

Prerequisites

Reference has multiplicity of 0..1

Component reference is unwired

Predicate

Reference is null

Prescription Level

mandatory

Tags

"reference" "unwired" "null" "0..1" "multiplicity"

 

Assertion ID

JCA-TA-10025

Source

[JCA90023]

Target

Reference obtained by the Java implementation either via injection or via the ComponentContext getService(...) method

Prerequisites

Reference has multiplicity of 0..n

Component reference is unwired

Predicate

Reference is an empty array/collection

Prescription Level

mandatory

Tags

"reference" "unwired" "empty" "0..n" "multiplicity"

 

Assertion ID

JCA-TA-10026

Source

[JCA90024]

Target

Component reference is rewired during lifetime of an implementation instance

Prerequisites

 

Predicate

Reference object is reinjected into the implementation instance

Prescription Level

optional

Tags

"reinjection" "reference" "rewire" "implementation" "instance"

 

Assertion ID

JCA-TA-10027

Source

[JCA90025]

Target

Implementation class which has a reference reinjected due to wiring changes

Prerequisites

SCA Runtime supports reinjection.

Predicate

Implementation is not STATELESS scope

Prescription Level

mandatory

Tags

"reinjection" "reference" "implementation" "stateless" "scope"

 

Assertion ID

JCA-TA-10028

Source

[JCA90025]

Target

Implementation class which has a reference reinjected due to wiring changes

Prerequisites

 

Predicate

Implementation does not use constructor based injection for that reference

Prescription Level

mandatory

Tags

"reinjection" "reference" "implementation" "constructor"

 

Assertion ID

JCA-TA-10029

Source

[JCA90026]

Target

Reference object of an implementation instance

Prerequisites

Reference wiring changes so that reference target is changed

Reference is not reinjected

Predicate

Reference object continues to work as if the reference target is not changed

Prescription Level

mandatory

Tags

"reference" "rewire" "reinjection"

 

 

Assertion ID

JCA-TA-10030

Source

[JCA90027]

Target

Operation invocation on a reference of an implementation instance

Prerequisites

Target of the reference has been undeployed since the reference was injected

Predicate

Operation throws InvalidServiceException

Prescription Level

recommended

Tags

"reference" "target" "undeployed" "invocation" "InvalidServiceException"

 

Assertion ID

JCA-TA-10032

Source

[JCA90028]

Target

Operation invocation on a reference of an implementation instance

Prerequisites

Target of the reference has become unavailable for some reason

Predicate

Operation throws ServiceUnavailableException

Prescription Level

recommended

Tags

"reference" "target" "unavailable" "invocation" "ServiceUnavailableException"

 

Assertion ID

JCA-TA-10033

Source

[JCA90029]

Target

Operation invocation on a reference of an implementation instance

Prerequisites

Target of the reference has been changed since the reference was injected

Predicate

Operation either works or throws InvalidServiceException

Prescription Level

mandatory

Tags

"reference" "target" "changed" "invocation" "InvalidServiceException"

 

Assertion ID

JCA-TA-10034

Source

[JCA90030]

Target

ServiceReference obtained from a reference object via the ComponentContext.cast() method

Prerequisites

Reference is reinjected

Predicate

ServiceReference object continues to work as if the reference target were not changed

Prescription Level

mandatory

Tags

"ServiceReference" "reference" "reinjection" "cast(...)"

 

Assertion ID

JCA-TA-10035

Source

[JCA90031]

Target

Operation invocation on ServiceReference object

Prerequisites

Target of the ServiceReference is undeployed

Predicate

Operation throws an InvalidServiceException

Prescription Level

recommended

Tags

"ServiceReference" "target" "undeployed" "InvalidServiceException" "invocation"

 

Assertion ID

JCA-TA-10036

Source

[JCA90032]

Target

Operation invocation on ServiceReference object

Prerequisites

Target of the ServiceReference becomes unavailable

Predicate

Operation throws a ServiceUnavailableException

Prescription Level

recommended

Tags

"ServiceReference" "target" "unavailable" "ServiceUnavailableException" "invocation"

 

Assertion ID

JCA-TA-10037

Source

[JCA90033]

Target

Operation invocation on a ServiceReference object

Prerequisites

Target of the ServiceReference has been changed since the ServiceReference was obtained

Predicate

Operation either works or throws InvalidServiceException

Prescription Level

mandatory

Tags

"ServiceReference" "target" "changed" "InvalidServiceException" "invocation"

 

Assertion ID

JCA-TA-10038

Source

[JCA90034]

Target

Reference obtained from getService() method of ComponentContext

Prerequisites

Domain configuration has changed since the component was started

Configuration changes affect the reference

Predicate

Reference configuration reflects the Domain configuration at the time the getService() method was called

Prescription Level

mandatory

Tags

"reference" "getService()" "domain" "configuration" "changed"

 

Assertion ID

JCA-TA-10039

Source

[JCA90034]

Target

ServiceReference obtained from getServiceReference() method of ComponentContext

Prerequisites

Domain configuration has changed since the component was started

Configuration changes affect the reference

Predicate

ServiceReference configuration reflects the Domain configuration at the time the getServiceReference() method was called

Prescription Level

mandatory

Tags

"ServiceReference" "getServiceReference()" "domain" "configuration" "changed"

 

 

Assertion ID

JCA-TA-10056

Source

[JCA90035]

Target

Business method of a reference obtained through the component context getService() method or of a ServiceReference obtained through the component context getServiceReference() method

Prerequisites

Target of reference/ServiceReference has been undeployed or has become unavailable

Predicate

Invocation of the business method throws InvalidServiceException or ServiceUnavailableException

Prescription Level

mandatory

Tags

"reference"  "getService()" "ServiceReference" "getServiceReference()" "target" "undeployed" "unavailable"

 

Assertion ID

JCA-TA-10040

Source

[JCA90036]

Target

Reference obtained from getService() method of ComponentContext

Prerequisites

Target service of the component reference has changed since the component was started

Predicate

Reference target is the new target for the component reference

Prescription Level

recommended

Tags

"reference" "getService()" "target" "changed"

 

Assertion ID

JCA-TA-10041

Source

[JCA90036]

Target

ServiceReference obtained from getServiceReference() method of ComponentContext

Prerequisites

Target service of the component reference has changed since the component was started

Predicate

ServiceReference target is the new target for the reference

Prescription Level

recommended

Tags

"ServiceReference" "getServiceReference()" "target" "changed"

 

Assertion ID

JCA-TA-10042

Source

[JCA90037]

Target

Array or Collection object for a reference of multiplicity 0..n or 1..n

Prerequisites

Changes occur to the wiring of the reference or to the target(s) of the wiring

Reference reinjection is not allowed

Predicate

Contents of the Array / Collection do not change

Prescription Level

mandatory

Tags

"reference" "multiplicity" "0..n" "1..n" "wiring" "target" "change" "injection"

 

 

Assertion ID

JCA-TA-10043

Source

[JCA90038]

Target

Reference with multiplicity 0..n or 1..n with a setter method for injection

Prerequisites

Changes occur to the wiring of the reference or to the target(s) of the wiring

Reference was originally injected with an array or a collection object

Runtime supports reference reinjection.

Predicate

Setter method is invoked with an array / collection object containing the new targets of the component reference

Prescription Level

mandatory

Tags

"reference" "multiplicity" "0..n" "1..n" "wiring" "target" "change" "injection"

 

Assertion ID

JCA-TA-10044

Source

[JCA90039]

Target

Array or Collection object for a reference, where reinjection takes place

Prerequisites

Reference of multiplicity 0..n or 1..n

Changes occur to the wiring of the reference or to the target(s) of the wiring

Runtime supports reinjection

Predicate

Array or Collection object is not the same object that was originally injected for this reference

Prescription Level

mandatory

Tags

"reference" "multiplicity" "0..n" "1..n" "wiring" "target" "change" "injection"

 

Assertion ID

JCA-TA-10045

Source

[JCA90040]

Target

Interface of a service marked remotable by the @Remotable annotation

Prerequisites

 

Predicate

The interface is translatable into a WSDL portType

Prescription Level

mandatory

Tags

"interface" "service" "remotable" "WSDL" "portType" "translatable"

 

Assertion ID

JCA-TA-10046

Source

[JCA90046]

Target

@Scope annotation

Prerequisites

 

Predicate

Annotation is applied to a component implementation class

Prescription Level

mandatory

Tags

"annotation" "@Scope" "implementation class"

 

Assertion ID

JCA-TA-10047

Source

[JCA90042]

Target

Implementation class annotated with @Service annotation

Prerequisites

@Service annotation declares a set of services which implies a set of service interfaces

Predicate

Implementation class implements all of the methods of all the declared service interfaces

Prescription Level

mandatory

Tags

"annotation" "@Service" "methods" "interface" "implementation"

 

Assertion ID

JCA-TA-10050

Source

[JCA90050]

Target

@names attribute of @Service annotation

Prerequisites

 

Predicate

Number of strings in the @names attribute array is the same as the number of elements in the @value attribute array

Prescription Level

mandatory

Tags

"annotation" "@Service" "@names" "@interfaces" "number"

 

Assertion ID

JCA-TA-10055

Source

[JCA90045]

Target

Implementation class declaring 2 or more services

Prerequisites

 

Predicate

Each service has a distinct Java simple name

Prescription Level

mandatory

Tags

"annotation" "@Service" "service" "name"

 

Assertion ID

JCA-TA-10058

Source

[JCA90060]

Target

@names attribute array of a @Service annotation

Prerequisites

@names attribute array has more than 1 entry

Predicate

Each entry in the @names attribute array is a unique string

Prescription Level

mandatory

Tags

"annotation" "@Service" "service" "names"

 

Assertion ID

JCA-TA-10059

Source

[JCA90053]

Target

@Remotable annotation

Prerequisites

 

Predicate

Annotation applies to an interface class, a Java implementation class, a field, a setter method or a constructor parameter

Prescription Level

mandatory

Tags

"annotation" "@Remotable" "interface" "implementation" "field" "setter method" "constructor"

 

Assertion ID

JCA-TA-10060

Source

[JCA90054]

Target

Field or method of an implementation class annotated with @Callback

Prerequisites

Implementation class offers at least one bidirectional service

Predicate

Type of the field or of the method is the callback interface of one of the bidirectional services offered by the class

Prescription Level

mandatory

Tags

"annotation" "@Callback" "implementation" "field" "method"

 

Assertion ID

JCA-TA-10061

Source

[JCA90055]

Target

Method annotated with @OneWay

Prerequisites

 

Predicate

Method has void return type and does not delare checked exceptions

Prescription Level

mandatory

Tags

"annotation" "@OneWay" "void return" "exceptions"

 

Assertion ID

JCA-TA-10062

Source

[JCA90056]

Target

Method of Java interface annotated with @OneWay

Prerequisites

 

Predicate

All invocations of the method are executed in a non-blocking fashion

Prescription Level

mandatory

Tags

"annotation" "@OneWay" "invocation" "non blocking"

 

Assertion ID

JCA-TA-10063

Source

[JCA90057]

Target

Setter method or field of an implementation class with COMPOSITE scope

Prerequisites

 

Predicate

Setter method or field is not annotated with @Callback

Prescription Level

mandatory

Tags

"annotation" "@Callback" "setter method" "field" "COMPOSITE"

 

Assertion ID

JCA-TA-10064

Source

[JCA90058]

Target

Setter method or field of implementation class, annotated with @Callback

Prerequisites

Component is invoked via a bidirectional service

Stter method or field has a type which corresponds to the callback interface of the bidectional service

Predicate

SCA runtime injects a callback reference proxy into the setter method or field, when the Java class is initialized

Prescription Level

mandatory

Tags

"annotation" "@Callback" "invocation" "setter method" "field" "callback reference proxy"

 

Assertion ID

JCA-TA-10065

Source

[JCA90061]

Target

Field, setter method or constructor parameter annotated with @Property

Prerequisites

Java type of the field, setter method or constructor parameter is a primitive type or is a JAXB annotated class

Component configuration contains a value for the property corresponding to the field,  setter method or constructor parameter

Predicate

Component property value is converted into an instance of the Java type as defined by the XML to Java mapping in the JAXB specification, with XML schema validation enabled

Prescription Level

mandatory

Tags

"annotation" "@Property" "value" "JAXB" "mapping"

 

2.8    Section 11

 

Assertion ID

JCA-TA-11001

Source

[JCA100001]

Target

Java interface which is mapped to WSDL by SCA runtime

Prerequisites

Java interface does not have a @WebService annotation

Predicate

Interface is mapped to WSDL as if it did have @WebService annotation

Prescription Level

mandatory

Tags

"interface" "Java" "WSDL" "mapping" "@WebService"

 

Assertion ID

JCA-TA-11002

Source

[JCA100002]

Target

Java interface containing @org.oasisopen.sca.annotation.OneWay annotation, mapped to WSDL by SCA runtime

Prerequisites

 

Predicate

Interface is mapped to WSDL as if it contained a @javax.jws.OneWay annotation

Prescription Level

mandatory

Tags

"interface" "Java" "WSDL" "mapping" "@OneWay"

 

Assertion ID

JCA-TA-11003

Source

[JCA100003]

Target

WSDL interface mapped to a Java interface by SCA runtime

Prerequisites

 

Predicate

Generated @WebService annotation in Java interface is taken to mean that the service interface is Remotable

Prescription Level

mandatory

Tags

"interface" "Java" "WSDL" "mapping" "@WebService" "remotable"

 

Assertion ID

JCA-TA-11004

Source

[JCA100004]

Target

Java interface used for service interface

Prerequisites

Interface contains JAXB 2.1 data types and annotations

Predicate

SCA runtime is able to map the interface to WSDL

Prescription Level

mandatory

Tags

"interface" "WSDL" "mapping" "JAXB" "2.1"

 

Assertion ID

JCA-TA-11005

Source

[JCA100005]

Target

Java interface used for service interface

Prerequisites

Interface contains SDO 2.1 data types and annotations

Predicate

SCA runtime is able to map the interface to WSDL

Prescription Level

optional

Tags

"interface" "WSDL" "mapping" "SDO" "2.1"

 

Assertion ID

JCA-TA-11006

Source

[JCA100006]

Target

Java interface used to declare SCA service interface in <interface.java/> element

Prerequisites

 

Predicate

Java interface does not contain additional client side asynchronous polling and callback methods defined by JAX-WS

Prescription Level

mandatory

Tags

"interface" "service" "asynchronous" "polling" "callback" "methods"

 

Assertion ID

JCA-TA-11007

Source

[JCA100007]

Target

Java interface used to declare SCA reference interface in a Java implementation class

Prerequisites

Java interface contains the additional client side asynchronous polling and callback methods defined by JAX-WS

Predicate

Java interface is treated as valid and is used

Prescription Level

optional

Tags

"interface" "reference" "asynchronous" "polling" "callback" "methods"

 

Assertion ID

JCA-TA-11008

Source

[JCA100008]

Target

SCA reference interface in the component type of a Java implementation class

Prerequisites

Reference is declared in the implementation class using a Java interface  which contains the additional client side asynchronous polling and callback methods defined by JAX-WS

Predicate

Reference interface in the component type does not contain the additional client side asynchronous polling and callback methods defined by JAX-WS

Prescription Level

mandatory

Tags

"interface" "reference" "componentType" "asynchronous" "polling" "callback" "methods"

 

Assertion ID

JCA-TA-11009

Source

[JCA100009]

Target

Java interface used to declare SCA reference interface in a Java implementation class

Prerequisites

Java interface contains the additional client side asynchronous polling and callback methods defined by JAX-WS

Predicate

The implementation class is able to use the client side asynchronous polling and callback methods, with the semantics as described in the JAX-WS 2.1 specification

Prescription Level

mandatory

Tags

"interface" "reference" "asynchronous" "polling" "callback" "methods"

 

Assertion ID

JCA-TA-11010

Source

[JCA100010]

Target

interface of a service

Prerequisites

interface contains SCA defined service-side asynchronous methods

Predicate

SCA runtime supports the interface

Prescription Level

mandatory

Tags

"interface" "servicer-side" "service" "asynchronous methods"

 

Assertion ID

JCA-TA-11011

Source

[JCA100012]

Target

Java interface or Java class annotated with @WebService

Prerequisites

 

Predicate

SCA runtime treats the interface or class as if it was annotated with @Remotable

Prescription Level

mandatory

Tags

"interface" "class" "@WebService" "@Remotable"

 

Assertion ID

JCA-TA-11012

Source

[JCA100013]

Target

Java class annotated with @WebService

Prerequisites

@wsdlLocation attribute of the @WebService annotation is set, referencing a WSDL document

Predicate

The interface of the Java class is defined by the referenced WSDL definition

Prescription Level

mandatory

Tags

"interface" "@WebService" "wsdlLocation" "class"

 

Assertion ID

JCA-TA-11013

Source

[JCA100014]

Target

Java class annotated with @WebService

Prerequisites

@endpointInterface attribute of the @WebService annotation is set, referencing an interface

Predicate

The interface of the Java class is defined by the referenced interface

Prescription Level

mandatory

Tags

"interface" "@WebService" "endpointInterface" "class"

 

Assertion ID

JCA-TA-11014

Source

[JCA100015]

Target

Java class or interface containing @WebParam annotation

Prerequisites

@WebParam annotation has @header attribute set to "true"

Predicate

Java class or interface is treated as if has the SOAP intent applied

Prescription Level

mandatory

Tags

"interface" "@WebParam" "@header" "SOAP"

 

Assertion ID

JCA-TA-11015

Source

[JCA100016]

Target

Java class or interface containing @WebResult annotation

Prerequisites

@WebResult annotation has @header attribute set to "true"

Predicate

Java class or interface is treated as if has the SOAP intent applied

Prescription Level

mandatory

Tags

"interface" "@WebResult" "@header" "SOAP"

 

Assertion ID

JCA-TA-11016

Source

[JCA100017]

Target

Java class containing @ServiceMode annotation

Prerequisites

 

Predicate

Java class is treated as if has the SOAP intent applied

Prescription Level

mandatory

Tags

"interface" "@ServiceMode" "SOAP"

 

Assertion ID

JCA-TA-11017

Source

[JCA100018]

Target

Java interface or class used to define an SCA interface

Prerequisites

 

Predicate

Interface or class does not contain a @WebServiceClient annotation

Prescription Level

mandatory

Tags

"interface" "class" "@WebServiceClient"

 

Assertion ID

JCA-TA-11018

Source

[JCA100019]

Target

Java class annotated with @WebServiceProvider

Prerequisites

 

Predicate

Class is treated as if annotated with SCA @Remotable

Prescription Level

mandatory

Tags

"class" "WebServiceProvider" "@Remotable"

 

Assertion ID

JCA-TA-11019

Source

[JCA100020]

Target

Java class annotated with @WebServiceProvider

Prerequisites

@wsdlLocation attribute of @WebServiceProvider is declared, referencing a WSDL document

Predicate

Java class is treated as if its interface is defined by the referenced WSDL

Prescription Level

mandatory

Tags

"class" "interface" "@WebServiceProvider" "@wsdlLocation"

 

Assertion ID

JCA-TA-11020

Source

[JCA100021]

Target

Java class or interface annotated with @SOAPBinding

Prerequisites

 

Predicate

Class or interface is treated as if SOAP intent is applied

Prescription Level

mandatory

Tags

"interface" "class" "@SOAPBinding" "SOAP"

 

Assertion ID

JCA-TA-11021

Source

[JCA100022]

Target

Mappings from WSDL to Java and from Java to WSDL

Prerequisites

 

Predicate

JAX-WS 2.1 mappings are supported

Prescription Level

mandatory

Tags

"interface"

 

3      Cross Mapping of Conformance Statements to Assertions

 

Conformance statement

Test Assertion

JCA20001

JCA-TA-2001

JCA20002

JCA-TA-2002

JCA20003

JCA-TA-2003

JCA20004

JCA-TA-2004

JCA20005

JCA-TA-2005

JCA20006

JCA-TA-2006

JCA20007

JCA-TA-2007

JCA20008

JCA-TA-2008

JCA20009

JCA-TA-2009

JCA20010

JCA-TA-2010

JCA-TA-2011

 

 

Conformance statement

Test Assertion

JCA30001

JCA-TA-3001

JCA30002

JCA-TA-3002

JCA30003

JCA-TA-3003

JCA30004

JCA-TA-3004

JCA30005

JCA-TA-3005

JCA30006

JCA-TA-3006

JCA30007

JCA-TA-3007

JCA30009

JCA-TA-3008

JCA30010

JCA-TA-3009

 

 

Conformance statement

Test Assertion

JCA40001

JCA-TA-4001

JCA40002

JCA-TA-4002

JCA40003

JCA-TA-4003

JCA40004

JCA-TA-4004

JCA40005

JCA-TA-4005

JCA40006

JCA-TA-4006

JCA40007

JCA-TA-4007

JCA40008

JCA-TA-4008

JCA40009

JCA-TA-4009

JCA40010

JCA-TA-4010

JCA40011

JCA-TA-4011

JCA40012

JCA-TA-4012

JCA40013

JCA-TA-4013

JCA40014

JCA-TA-4014

JCA40015

JCA-TA-4015

JCA40016

JCA-TA-4016

JCA40017

JCA-TA-4017

JCA40018

JCA-TA-4018

JCA40019

JCA-TA-4019

JCA40020

JCA-TA-4020

JCA40021

JCA-TA-4021

JCA40022

JCA-TA-4022

JCA40023

JCA-TA-4023

JCA40024

JCA-TA-4024

 

Conformance statement

Test Assertion

JCA60001

JCA-TA-7001

JCA60002

JCA-TA-7002

JCA60003

JCA-TA-7003

JCA-TA-7004

JCA60004

JCA-TA-7005

JCA60005

JCA-TA-7006

JCA60006

JCA-TA-7007

 

Conformance statement

Test Assertion

JCA70001

JCA-TA-8001

JCA70002

JCA-TA-8002
JCA-TA-8003
JCA-TA-8004

JCA70003

JCA-TA-8005

JCA70004

JCA-TA-8006

JCA70005

JCA-TA-8007
JCA-TA-8008
JCA-TA-8009

JCA70006

JCA-TA-8010

 

Conformance statement

Test Assertion

JCA80001

JCA-TA-9001

JCA80002

JCA-TA-9002
JCA-TA-9005

JCA80003

JCA-TA-9003
JCA-TA-9004

JCA80004

JCA-TA-9070

JCA80005

JCA-TA-9006

JCA80006

JCA-TA-9007

JCA80007

JCA-TA-9008

JCA80008

JCA-TA-9009

JCA80009

JCA-TA-9010

JCA80010

JCA-TA-9011

JCA80011

JCA-TA-9012

JCA80012

JCA-TA-9013

JCA80013

JCA-TA-9014

JCA80014

JCA-TA-9015

JCA80015

JCA-TA-9016

JCA80016

JCA-TA-9017

JCA80017

JCA-TA-9018

JCA80018

JCA-TA-9019

JCA80019

JCA-TA-9020

JCA80020

JCA-TA-9021

JCA80021

JCA-TA-9022

JCA80022

JCA-TA-9023

JCA80023

JCA-TA-9024

JCA80024

JCA-TA-9025

JCA80025

JCA-TA-9026

JCA80026

JCA-TA-9027

JCA80027

JCA-TA-9028

JCA80028

JCA-TA-9029

JCA80029

JCA-TA-9030
JCA-TA-9031

JCA80030

JCA-TA-9032

JCA80031

JCA-TA-9033

JCA80032

JCA-TA-9034

JCA80033

JCA-TA-9035

JCA80034

JCA-TA-9036
JCA-TA-9037
JCA-TA-9038

JCA80035

JCA-TA-9039
JCA-TA-9040

JCA80036

JCA-TA-9041
JCA-TA-9042
JCA-TA-9043

JCA80037

JCA-TA-9044
JCA-TA-9045
JCA-TA-9046

JCA80038

JCA-TA-9047

JCA80039

JCA-TA-9048

JCA80040

JCA-TA-9049

JCA80041

JCA-TA-9050

JCA80042

JCA-TA-9051

JCA80043

JCA-TA-9052

JCA80044

JCA-TA-9053

JCA80045

JCA-TA-9054

JCA80046

JCA-TA-9055

JCA80047

JCA-TA-9056

JCA80048

JCA-TA-9057

JCA80049

JCA-TA-9058

JCA80050

JCA-TA-9059

JCA80051

JCA-TA-9060

JCA80052

JCA-TA-9061

JCA80053

JCA-TA-9062

JCA80054

JCA-TA-9063

JCA80055

JCA-TA-9064

JCA80056

JCA-TA-9065

JCA80057

JCA-TA-9066

JCA80058

JCA-TA-9067

JCA80059

JCA-TA-9068

JCA80060

JCA-TA-9069

 

Conformance statement

Test Assertion

JCA90001

JCA-TA-10001

JCA90002

JCA-TA-10002
JCA-TA-10003

JCA90003

JCA-TA-10005

JCA90004

JCA-TA-10006

JCA90005

JCA-TA-10007

JCA90007

JCA-TA-10008

JCA90008

JCA-TA-10009

JCA90009

JCA-TA-10010

JCA90011

JCA-TA-10011

JCA90013

JCA-TA-10012

JCA90014

JCA-TA-10013

JCA90015

JCA-TA-10016

JCA90016

JCA-TA-10017

JCA90018

JCA-TA-10018

JCA90019

JCA-TA-10019

JCA90020

JCA-TA-10020
JCA-TA-10021

JCA90021

JCA-TA-10022
JCA-TA-10023

JCA90022

JCA-TA-10024

JCA90023

JCA-TA-10025

JCA90024

JCA-TA-10026

JCA90025

JCA-TA-10027
JCA-TA-10028

JCA90026

JCA-TA-10029

JCA90027

JCA-TA-10030

JCA90028

JCA-TA-10032

JCA90029

JCA-TA-10033

JCA90030

JCA-TA-10034

JCA90031

JCA-TA-10035

JCA90032

JCA-TA-10036

JCA90033

JCA-TA-10037

JCA90034

JCA-TA-10038
JCA-TA-10039

JCA90035

JCA-TA-10056

JCA90036

JCA-TA-10040
JCA-TA-10041

JCA90037

JCA-TA-10042

JCA90038

JCA-TA-10043

JCA90039

JCA-TA-10044

JCA90040

JCA-TA-10045

JCA90041

JCA-TA-10046

JCA90042

JCA-TA-10047

 

 

 

 

JCA90045

JCA-TA-10055

JCA90046

JCA-TA-10031

JCA90047

JCA-TA-10014
JCA-TA-10015

 

 

 

 

JCA90050

JCA-TA-10050

 

 

JCA90052

JCA-TA-10004

JCA90053

JCA-TA-10059

JCA90054

JCA-TA-10060

JCA90055

JCA-TA-10061

JCA90056

JCA-TA-10062

JCA90057

JCA-TA-10063

JCA90058

JCA-TA-10064

 

 

JCA90060

JCA-TA-10058

JCA90061

JCA-TA-10065

 

 

Conformance statement

Test Assertion

JCA10001

JCA-TA-11001

JCA10002

JCA-TA-11002

JCA10003

JCA-TA-11003

JCA10004

JCA-TA-11004

JCA10005

JCA-TA-11005

JCA10006

JCA-TA-11006

JCA10007

JCA-TA-11007

JCA10008

JCA-TA-11008

JCA10009

JCA-TA-11009

JCA10010

JCA-TA-11010

JCA10011

No meaningful assertion

JCA10012

JCA-TA-11011

JCA10013

JCA-TA-11012

JCA10014

JCA-TA-11013

JCA10015

JCA-TA-11014

JCA10016

JCA-TA-11015

JCA10017

JCA-TA-11016

JCA10018

JCA-TA-11017

JCA10019

JCA-TA-11018

JCA10020

JCA-TA-11019

JCA10021

JCA-TA-11020

JCA10022

JCA-TA-11021

 

4      Conformance

There are no conformance statements relating to the Test Assertions.

 

Appendix A.  Acknowledgments

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

Participants:

 

Participant Name

Affiliation

Dave Booz

IBM

Mike Edwards

IBM

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Appendix B.  Revision History

 

 

Revision

Date

Editor

Changes Made

1

08/06/09

Mike Edwards

Initial version

2

09/06/09

Mike Edwards

Added TAs for Section 3

3

11/06/09

Mike Edwards

Added TAs for Section 4

4

14/06/09

Mike Edwards

Added TAs for Section 8

5

15/06/09

Mike Edwards

Added TAs for Section 9

Added TAs for Section 10

Added TAs for Section 11

8

02/10/09

Dave Booz

Deleted useless TA-3008,

9

08/10/09

Mike Edwards

Minor cleanup and corrections

Change TAs relating to @Service annotation following Issue 161 updates to CAA specification:
Deleted 10048, 10049, 10051, 10052, 10053, 10054
Changed 10050
Added 10057, 10058

10

12/06/10

Mike Edwards

Bringing test assertions into line with CD04 of the Java CAA specification

- few TAs deleted

- major additions of new TAs , especially in 70xx, 90xx and 100xx ranges

11

21/06/10

Mike Edwards

Editorial corrections

cd01

19/07/10

Mike Edwards

CD01 - all changes accepted

Frontmatter updated to OASIS requirements