The top layer of the WVCM Reference Implementation.

Most of the code in here consists of lightweight implementations of the WVCM resource proxy interfaces. The majority of the work is delegated to the repository layer of the WVCM Reference Implementation.

The repository and all its resources are entirely in memory, in order to illustrate the semantics of WVCM without the complexity of an actual repository.

This implementation automatically logs in under whatever username is provided, regardless of the password. Concurrent login by multiple users is not supported.

The methods that create new proxy objects do not check for problems, since that is the responsibility of the server. The the Location object used to create a proxy might not point to a valid repository resource or to a valid location for a repository resource to get created. For example, someone could create an Activity proxy to a Workspace object in the repository. Once a "do" method is called, that will cause the repository to be contacted, and the repository will verify that the specified method can actually be applied to the repository resource identified by the location of that proxy.

Implementation Details

Even though the entire reference implementation runs within the same process, its packages are split between a proxy layer, a service layer, and the repository. This is intended to simplify the development of WVCM implementations for new repositories, since the proxy layer and service layer can be re-used for different repositories.

Proxy Implementation Layer

The proxy implementation layer provides the implementation classes for all the WVCM proxies, but it is designed to be very thin, delegating most of its work to the repository. Much of the little work that the client has to do involves providing strongly typed access to the properties of a resource.