Re: Feature request for CHECKIN/OUT extension

Hi,

I have updated my proposal. The main changes are:

1) I am now using the defined element names for the response bodies
(checkin-response, checkout-response) [Geoff, thanks for adding this to
draft 17]

2) FORBIDDEN is 403, not 409.

Julian

--

Feature request for CHECKIN/OUT extension

In many cases, a versioning-aware client might want to display/include the
URI of the version it's editing *while* it's edited. For instance, a
versioning
aware editor might include this as meta-information, or the author of a
document might want to know the URI of the version *before* it's checked in.
A well-known example is the W3C way of referring to document versions in
recommendations: it contains HREFs to "the current version", to "this
version"
and to the "previous version". Something like this is currently impossible
with deltaV, as the version URI is determined at the time of CHECKIN.

Proposal:

1) Extend CHECKOUT to optionally return an "expected CHECKIN URI".
2) Extend CHECKIN to optionally use the "expected CHECKIN URI", failing the
request if it's not possible to checkin the resource with the desired
version URI (in which case a new "expected CHECKIN URI" is returned).


I propose to pass the information in the request/response bodies of
CHECKIN / CHECKOUT, such as:

CHECKOUT method:

>>REQUEST

  CHECKOUT /foo.html HTTP/1.1
  Host: www.webdav.org
  Content-Type: text/xml; charset="utf-8"
  Content-Length: xxxx

  <D:checkout xmlns:D="DAV:">
    <D:compute-expected-version-URI />
  </D:checkout>


>>RESPONSE

  HTTP/1.1 200 OK
  Cache-Control: no-cache
  Content-Type: text/xml; charset="utf-8"
  Content-Length: xxxx

  <D:checkout-response xmlns:D="DAV:">

<D:expected-version-URI>http://repo.webdav.org/his/23/ver/32</D:expected-ver
sion-URI>
  </D:checkout-response>

(Note: if the expected-version-URI cannot be computed, the server will
simply not
include it in it's answer).


CHECKIN method:


>>REQUEST

  CHECKIN /foo.html HTTP/1.1
  Host: www.webdav.org
  Content-Type: text/xml; charset="utf-8"
  Content-Length: xxxx

  <D:checkin xmlns:D="DAV:">

<D:expected-version-URI>http://repo.webdav.org/his/23/ver/32</D:expected-ver
sion-URI>
  </D:checkin>

>>RESPONSE

  HTTP/1.1 201 Created
  Location: http://repo.webdav.org/his/23/ver/32
  Cache-Control: no-cache

  or

>>RESPONSE

  HTTP/1.1 403 Forbidden
  Cache-Control: no-cache
  Content-Type: text/xml; charset="utf-8"
  Content-Length: xxxx

  <D:checkin-response xmlns:D="DAV:">
    <D:cannot-assign-expected-version-URI />

<D:expected-version-URI>http://repo.webdav.org/his/23/ver/33</D:expected-ver
sion-URI>
  </D:checkin-response>

Received on Friday, 7 September 2001 15:23:55 UTC