- From: Julian Reschke <julian.reschke@gmx.de>
- Date: Mon, 16 Jan 2006 17:40:03 +0100
- To: Lisa Dusseault <lisa@osafoundation.org>
- CC: webdav WG <w3c-dist-auth@w3.org>
Lisa Dusseault wrote:
>
> This is an attempt to rewrite GULP purely as a model for inclusion in
> the introductory section of RFC2518bis. Mostly that meant rewording
> requirements in terms of statements about the model. Also recall a
> couple weeks ago I brought up a couple wording issues with GULP -- these
> are addressed here too. Another notable change is that the last point
> (from the last version of GULP) was moved to #3, as I thought
> "conflicting lock" was a required concept before discussing how a new
> member of a locked collection may have a conflicting lock.
Two general comments:
- I think removing the normative language after all is a bad idea; it
means that specs defined on top of WebDAV that add new methods can not
simply ignore locking and delegate it to the base spec.
- One change I expected but do not see here (at least not consequently)
is the removal of actual marshalling considerations (such as replacing
"A LOCK request with a non-empty body..." by "A LOCK creation request...").
Some more comments inline.
> 1. A lock either directly or indirectly locks a resource.
>
> 2. A LOCK request with a non-empty body creates a new lock, and the
> resource identified by the request-URL is directly locked by that
lock.
> The "lock-root" of the new lock is the request-URL. If at the time of
> the request, the request-URL is not mapped to a resource, a new
> resource is created.
Any particular reason why "empty" was removed from the last part?
> 3. A resource cannot be directly or indirectly locked with an exclusive
> lock and any other lock at the same time, as these would be
conflicting.
OK.
> 4. If a collection is directly locked by a depth:infinity lock, all
> members of that collection (other than the collection itself) are
> indirectly locked by that lock. Changes in collection membership
> affect the set of resources indirectly locked by the lock:
> * If an internal member resource is added to a locked collection,
> and if the new member resource does not already have a conflicting
lock,
> then the resource becomes indirectly locked by that collection's lock.
That is incorrect, unless it's a Depth: Infinity lock (see original text).
> * If an internal member resource is removed or deleted such that
> the resource is no longer a member of the locked collection, then the
> resource is no longer locked by that collection's lock.
Same.
> 5. An UNLOCK request deletes the lock with the specified lock token.
> The request-URL identifies a resource that
> is either directly or indirectly locked by that lock.
> After a lock is deleted, no resource is locked by that lock.
>
> 6. A lock token is "submitted" in a request when it appears in an If
> header.
>
> 7. A lock-token must be submitted in a request if that request would
> modify any of the following aspects of a locked resource:
> - any variant,
> - any dead property,
> - any live property (unless otherwise specified for that property),
> - for a collection, an internal member URI (an internal member
> URI of a collection is considered to be modified if it is added,
> removed, or identifies a different resource).
> In addition, the lock-token must be submitted if the request-URI
> mapping changes to another resource or to no resource (e.g. DELETE).
>
> 8. If a request causes the lock-root of any lock to become an
> unmapped URL, then the lock is also deleted by that request.
I think I prefer the previous language, because it keeps things together
that belong together (last part of 7 and 8):
- If a request causes a directly locked resource to no longer be
mapped to the lock-root of that lock, then the request MUST
fail unless the lock-token for that lock is submitted in the
request. If the request succeeds, then that lock MUST have been
deleted by that request.
>
> Other changes to make to RFC2518bis subsequently:
> - define which properties are not lockable (lockdiscovery?)
> - Check for any missing requirements derived from this model and add
> them under LOCK, UNLOCK, or other sections
> - Refer back to these model statements by number if that seems
> appropriate.
> - Consider whether there are statements in the lock introduction that
> are quite redundant with this, and if so, whether to trim.
Best regards, Julian
Received on Monday, 16 January 2006 16:42:25 UTC