Test client Release Notes

© Copyright International Business Machines Corporation 2006. All rights reserved. US Government Users Restricted Rights - Use, duplication or disclosure restricted by GSA ADP Schedule Contract with IBM Corp.

Release notes

1.0 Description
2.0 Limitations
   2.1 Integration test client requires Java(TM) classes to have a zero argument constructor
   2.2 Transactions and the integration test client
3.0 Known problems and workarounds
   3.1 Debugger may not initialize on first invocation from the test client
   3.2 Asynchronous invocation style is not directly supported
   3.3 SOAP-encoded array types are not supported for invocation
   3.4 Mediation module must be complete before testing

1.0 Description

This release notes file contains late-breaking information about limitations and known problems and workarounds for the WebSphereR Integration Developer test client.

2.0 Limitations

2.1 Integration test client requires Java(TM) classes to have a zero argument constructor

The integration test client requires Java classes, which are arguments in method signatures, to have a zero argument constructor as well as the appropriate get/set methods for each of its fields.

2.2 Transactions and the integration test client

The integration test client executes outside the scope of any application transactions, and so does not participate in transactions. Therefore, there is no support for emulating transaction rollbacks.

3.0 Known problems and workarounds

3.1 Debugger may not initialize on first invocation from the test client

The integration test client will start the WebSphereR Process Server 6.0 prior to invoking the test if the server has not already been started.

At that point, you can choose to start the server in either the debug mode or regular mode. If debug mode is chosen, the test client may invoke the test before the server is fully initialized. Subsequent invocations will run properly.

To work around this problem, either rerun the test if it initially fails, or start the server prior to invoking the test.

3.2 Asynchronous invocation style is not directly supported

The integration test client only allows a component to be invoked using the synchronous invocation style.

For most components, this is fine since, even if the component only supports the asynchronous invocation style, the underlying SCA architecture will convert the synchronous invocation to an asynchronous invocation. But a component could support both invocation styles and could have different code paths depending on the invocation style.

You might want to test both code paths. In this case, you can either create a JavaR component that will perform the asynchronous invocation and invoke that component using the integration test client, or you can use another client such as a JSP page to invoke the component asynchronously.

3.3 SOAP-encoded array types are not supported for invocation

The test client can not be used to invoke components that specify data using SOAP-encoded arrays.

Example XSD snippet:

..
<xsd:restriction base="soapenc:Array">
                        <xsd:attribute ref="soapenc:arrayType"
                            wsdl:arrayType="typens:ResultElement[]" />
  </xsd:restriction>

..

To work around this problem, create a JavaR component to invoke the service. The test client can then be used to invoke the Java component.

3.4 Mediation module must be complete before testing

Before testing a mediation module using the Integration Test Client, all mediation flow component references must be wired and all imports must have a binding.  If these things are not present, exceptions such as the one that follows will be generated when the component is invoked:

Caused by: org.eclipse.emf.common.util.BasicEList$BasicIndexOutOfBoundsException: index=0, size=0
 at org.eclipse.emf.common.util.BasicEList.get(BasicEList.java(Compiled Code))
 at com.ibm.ws.sibx.mediation.flowaction.impl.sca.FlowActionFactoryImpl.getWire(FlowActionFactoryImpl.java:923)
 at com.ibm.ws.sibx.mediation.flowaction.impl.sca.FlowActionFactoryImpl.createRequestSCAFromSMO(FlowActionFactoryImpl.java:854)
 at com.ibm.ws.sibx.mediation.flowaction.impl.sca.SCAInvocationAction.invokeSync(SCAInvocationAction.java:343)
 at com.ibm.ws.sibx.mediation.flowaction.impl.sca.SyncInvocation.complete(SyncInvocation.java:122)
 at com.ibm.ws.sibx.mediation.flowaction.impl.sca.FlowActionFactoryImpl.complete(FlowActionFactoryImpl.java:706)
 at com.ibm.ws.sibx.mediation.flowaction.impl.sca.FlowActionFactoryImpl.create(FlowActionFactoryImpl.java:393)
 at com.ibm.ws.sibx.scax.mediation.engine.SCACalloutElement.invoke(SCACalloutElement.java:134)
 at com.ibm.ws.sibx.scax.mediation.engine.MediationPrimitive.invokeConnections(MediationPrimitive.java:242)
 at com.ibm.ws.sibx.scax.mediation.engine.Input.invoke(Input.java:125)
 at com.ibm.ws.sibx.scax.mediation.engine.RequestFlow.invokeFlow(RequestFlow.java:123)
 at com.ibm.ws.sibx.scax.mediation.engine.MediationFlow.invokeRequestFlow(MediationFlow.java:112)
 at com.ibm.wsspi.sibx.mediation.flow.ejb.MediationFlowBean.invokeRequestFlow(MediationFlowBean.java:189)
 ... 53 more