Workspace Versioning and Configuration Management API

The WVCM API is being defined under the Java Community Process.  The JSR-147 effort is described below.  The original JCP submission for JSR-147 can be found here, but some clarifications of the goals of JSR-147 have been made since the original submission.  In particular, although the semantics of the WVCM API are designed to be compatible with use of the DeltaV/WebDAV protocol, a WVCM implementation is free to use any protocol it wishes to communicate with the server (i.e. it is not constrained to use the DeltaV/WebDAV protocol).  In addition, the WVCM API has been designed so that a subset of the API can be used to interoperate with a non-versioning server.

Current Documents


WVCM: The Workspace Versioning and Configuration Management API


03 Sep 2003



Workspace Versioning and Configuration Management provides client support for creating and manipulating sets of version-controlled files and web resources.

Specification Lead
Geoffrey Clemm


Expert Group

Broadvision Inc.





Software AG

Sun Microsystems, Inc.





Public Review

02 Dec, 2003

Community Draft Ballot

11 Nov, 2002

Community Review

11 Nov, 2002

Expert Group Formation

11 Sep, 2001

JSR Review Ballot

10 Sep, 2001


Java Community Process version in use: 2.1

Please direct your comments on this JSR to jsr-147-comments@jcp.org


Java Specification Request (JSR)


Section 1. Identification

Submitting Member: IBM

Name of Contact Person: Geoffrey Clemm

E-Mail Address: geoffrey.clemm@us.ibm.com

Telephone Number: +1 781 676 2684

Fax Number: +1 781 676 2400


Section 2: Request

2.1 Please describe the proposed Specification:

Collaborative authoring tools, including tools targeted for software development, document management, and web content management, need access to a variety of services for versioning and configuration management of the files and web resources being created and modified. The DeltaV protocol (which is an extension to the WebDAV protocol, which itself is an extension of the HTTP/1.1 protocol) provides a standard protocol for versioning and configuration management of web resources. The DeltaV protocol is the result of a three-year collaborative effort by a wide range of participants from the open source community, academics, and industry (e.g. IBM, Oracle, Merant, Microsoft, Rational). But this protocol has the following problems when used by a client:
- The client often needs to maintain copies of the web resources in the client file system (e.g. for disconnected use and performance improvement). Unless clients agree on how that local file system state is maintained, it is impossible for multiple clients to maintain correct local file system state.
- There is a large amount of boilerplate coding required to generate and receive HTTP messages. It is far simpler and less error prone for a client application to simply invoke Java routines.
- There are two significantly different variants of the DeltaV protocol: the client-workspace package and the server-workspace package.
From a client's perspective, these two packages provide the same functionality, and only differ by whether or not persistent state is maintained on the client.


This specification will address these problems by defining a client side library that will expose the full DeltaV functionality, but will:

- automatically provide client-side file maintenance required by any operation
- hide whether or not DeltaV or some other protocol is being used to communicate with the server
- hide the distinction between a client workspace and a server workspace in the client side library implementation, so that a user of the
library is presented with a single uniform workspace interface.

2.2 What is the target Java platform? (i.e., desktop, server, personal, embedded, card, etc.)


2.3 What need of the Java community will be addressed by the proposed specification?

A common API to versioning and configuration management services will significantly increase the ability for software development, document management, and web content management tools to interoperate with a variety of versioning and configuration management service providers.

2.4 Why isn't this need met by existing specifications?

No existing specification deals with versioning or configuration management of files and web resources.

2.5 Please give a short description of the underlying technology or technologies:

It will be possible for all communication between the client library and the server that provides the versioning and configuration management services to be done over the DeltaV protocol, which is an application of the HTTP/1.1 protocol.

2.6 Is there a proposed package name for the API Specification? (i.e., javapi.something, org.something, etc.)


2.7 Does the proposed specification have any dependencies on specific operating systems, CPUs, or I/O devices that you know of?


2.8 Are there any security issues that cannot be addressed by the current security model?


2.9 Are there any internationalization or localization issues?

Various routine arguments will take strings that will need to be internationalized, such as version descriptions.

2.10 Are there any existing specifications that might be rendered obsolete, deprecated, or in need of revision as a result of this work?


2.11 Please describe the anticipated schedule for the development of this specification.

Public draft submitted by September 2003
Public review closed December 2003
Proposed Final draft submitted May 2004
Final release July 2004.

2.12 Please describe the anticipated working model for the Expert Group working on developing this specification.

The primary mechanism will be email. In addition, a weekly conference call will be scheduled, to be used when needed. If higher-bandwidth communication is required, a 2 day mid-week meeting (Tue/Wed or Wed/Thu) will be held at most once a month, where the location will rotate among the contributing experts.

Section 3: Contributions

3.1 Please list any existing documents, specifications, or implementations that describe the technology. Please include links to the documents if they are publicly available.

http://www.ietf.org/rfc/rfc2518.txt (WebDAV)
http://www.ietf.org/rfc/rfc2616.txt (HTTP/1.1)
http://www.ietf.org/rfc/rfc3253.txt (DeltaV)

3.2 Explanation of how these items might be used as a starting point for the work.

An implementation of the Workspace Versioning and Configuration Management library can use the DeltaV/WebDAV/HTTP protocol to communicate with the server. The DeltaV protocol is defined in rfc3253, the WebDAV protocol is defined in rfc2518, and the HTTP protocol is defined in rfc2616. If the DeltaV protocol is used, the XML Parsing Specification can be the mechanism for manipulating the XML content of the DeltaV protocol.