From: Ian Bicking <ianb@co...> - 2002-05-05 02:10:49
DAVKit 0.1, a provisional package to add WebDAV support to Webware.
(Provisional, because it's useful for development to have it separate
now, but I think at least parts, and maybe the whole thing, should be
incorporated directly in Webware eventually).
It's located at:
This is a *very* early, *very* rough release, only suitable for people
who want to help develop it. But I wanted to get it out there so we
don't duplicate work, and to get some advice and such (with the XML
representation, which right now is just nested lists ala PyRXP, as well
as compatibility issues, and just general thoughts).
It basically works with cadaver (an ftp-alike webdav client) and nd
(another command-line client). It doesn't work with Web Folders, but
the computer didn't even query my server, it just said it couldn't
contact it (though a browser on the same computer could). I don't know
what's going on there.
It's biggest flaw right now is that it doesn't give good error messages,
especially with compound results (207 Multi-Status). There's no doubt
lots of other flaws, but that's the biggest thing I Just Haven't Done
It's fully dynamic. A filesystem-based namespace is included in the
examples. The framework tries to abstract out semantics which are
defined in the specification (e.g., atomic recursive deletes and other
stuff), so writing backends shouldn't be too hard.
I also created a replacement for HTTPServlet that uses exceptions for a
number of HTTP errors (redirects, not implemented, conflict, etc).
WebDAV pays more attention to those errors than do most normal web
applications, so it was important (and will be important as I do
multi-status as well).
Okay, that's all I can think of for the moment.
From: Ian Bicking <ianb@co...> - 2002-05-05 02:25:37
On Sat, 2002-05-04 at 21:10, Ian Bicking wrote:
> This is a *very* early, *very* rough release, only suitable for people
> who want to help develop it. But I wanted to get it out there so we
> don't duplicate work, and to get some advice and such (with the XML
> representation, which right now is just nested lists ala PyRXP, as well
> as compatibility issues, and just general thoughts).
Another note for people interested in helping out with this
I did all the XML parsing and generation just by looking at the examples
in the specification. I didn't read the DTD and all the information in
the second half of the specification. Maybe someone else who's read
more DTDs than I can tell me if I'm missing anything -- you wouldn't
even have to read my code, just see if the examples (particularly for
PROPFIND and PROPPATCH) don't cover important parts of the XML.
And maybe think hard about implementing locks... I didn't quite get it
on the first reading. It's an optional feature, though.
Oh, and dead property storage.