WMA TCK Message Service

WMA TCK Message Service.

This proposal is made with the assumption that the minimal requirement for a WMA implementation is that the following functionality is available:

- The ability to send a Message to the network.
- The ability to receive a Message from the network.

Abilities to send a Message to the network and to perform device-to-device exchange are optional.

In this situation, the only possible way for TCK to test for sending/receiving messages is to require that some J2SE-based framework API will provide the functionality of a "network-initiated send" and "network-side receive" to the implementation under test. "Round trip" tests in which the device sends/receives Messages to itself will not work for all expected WMA implementations.

This document contains a proposal for the framework API. The framework is intended to run on J2SE and would be exhibit functionality approximately the same as WMA.

The framework would be located in the package, `com.sun.tck.wma package`. The following APIs that were unnecessary for testing and that have been omitted are:

    Connector.open*Stream
    Connector.open(String, ...)  Methods with more than one parameter
    MessageConnection.numberOfSegments
    MessageConnection.setMessageListener
    MessageListener

The proposal does not contain Javadoc comments, assuming that these will be copied from the WMA specification.

The API consists of a set of interfaces with the single entry point `com.sun.tck.wma.Connector` interface and its `open(String)` method. Licensees and the reference implementation should provide an implementation of these interfaces and should specify the name of the class that implements the `com.sun.tck.wma.Connector` interface to the TCK.

The TCK will use a distributed test framework which tests if the Message, sent from the device, can be received by the network (and vice versa).

Possible problems with this approach:

- There would be an extra requirement of this implementation to provide a J2SE implementation of WMA for TCK testing purposes. The J2SE WMA implementation would be dependent on this implementation's WMA implementation (Message transport and formatting.). The J2SE WMA implementation can be done by the TCK team, with support for any changes to this J2SE-WMA implementation.
- There would be an unreasonable requirement on the licensee to the support "round trip" tests in the WMA implementation. An API would be required to map WMA to the underlying protocol.