[Checkins] SVN: z3c.dav/trunk/src/z3c/dav/ Update the README documentation and the TODO file.

Michael Kerrin michael.kerrin at openapp.ie
Sun Jun 24 14:09:19 EDT 2007


Log message for revision 77013:
  Update the README documentation and the TODO file.
  

Changed:
  U   z3c.dav/trunk/src/z3c/dav/README.txt
  U   z3c.dav/trunk/src/z3c/dav/TODO.txt

-=-
Modified: z3c.dav/trunk/src/z3c/dav/README.txt
===================================================================
--- z3c.dav/trunk/src/z3c/dav/README.txt	2007-06-24 17:59:09 UTC (rev 77012)
+++ z3c.dav/trunk/src/z3c/dav/README.txt	2007-06-24 18:09:18 UTC (rev 77013)
@@ -1,88 +1,50 @@
-============
-Introduction
-============
+======
+WebDAV
+======
 
-The *z3c.dav* package is an implementation of the WebDAV protocol.
-It includes support for all the different methods, properties and error codes
-has defined in RFC2518 and draft-ietf-webdav-rfc2518bis-15.txt.
+The *z3c.dav* package is an implementation of the WebDAV protocol for Zope3.
+*z3c.dav* only supports the *zope.app.folder* content type, within the core
+RFC2518 protocol, but *z3c.dav* does contain a number of components that help
+developers support WebDAV in their application. These components include
+the ability to handle WebDAV specific errors, to generate multi-status
+responses, and an implementation of all core WebDAV methods exist that use
+zope component to lookup specific adapters that perform the required action.
+For example `locking`_ looks up a IDAVLockmanager to perform the actual
+locking and unlocking of objects. But if the required adapter does not
+exist then a `405 Method Not Allowed` response is returned to the client.
 
-Installation
-============
+In other to support the other standard Zope content types and services that
+might be used within your application the following add on packages are
+available:
 
-This module should be installed like any other Zope3 module, that is it should
-be copied verbatim into your Python path and all zcml slugs should be installed
-into the *package-includes* directory. The zcml slugs for this package include
-*z3c.dav-configure.zcml* and *ietree-configure.zcml*. If you want to run
-the functional tests successfully then you must also install the
-*z3c.dav-ftesting.zcml* file.
+* z3c.davapp.zopeappfile
 
-Now the *ietree-configure.zcml* file tells Zope what ElementTree engine you
-want to use to process the XML. You will probably want to edit this file to
-use the elementtree implementation that is installed on your system. There are
-two supported implementations, ElementTree and lxml. To use ElementTree
-just make sure that the utility declaration for *z3c.dav.zetree.EtreeEtree*
-is the only uncommented utility declaration. For lxml just make sure that
-*z3c.dav.zetree.LxmlEtree* is the only uncommented utility declaration.
+  Defines a common WebDAV data model for zope.app.file.file.File, and
+  zope.app.file.file.Image content objects.
 
-Data Model
-==========
+* z3c.davapp.zopefile
 
-Read how to extend the `WebDAV Data Model`_ by defining your own properties.
+  Defines a common WebDAV data model for zope.file.file.File content objects.
 
-XML Processing
-==============
+* z3c.davapp.zopelocking
 
-WebDAV uses XML for conveying property names and values to and from the client.
-This package uses ElementTree API for processing this XML. Because of this all
-property names must be strings that conform to the syntax of ElementTree's
-element name (or tag). For example, for the property *getcontenttype* which
-belongs to the *DAV:* XML namespace will be referenced by the name
-*{DAV:}getcontenttype* within *z3c.dav*.
+  Implements wrappers around the zope.locking utility to integrate with
+  z3c.dav.
 
-Error Handling
-==============
+Each of these packages uses an other Zope3 package to provide the underlying
+functionality. For example *z3c.davapp.zopelocking* provides WebDAV locking
+support by implementing a common IDAVLockmanager adapter defined in *z3c.dav*
+which hooks into the z3c.dav locking mechanism to do the actual locking of
+the objects while z3c.dav will parse the request from the client, lookup the
+IDAVLockmanager and call some method on this adapter depending on the request.
 
-WebDAV defines new HTTP status codes in order convey more meaningful
-information about what just happened back to the client. The WebDAV
-specification also defines a multi-status response (with HTTP status code
-207) for situations where multiple status codes are more appropriate. For
-example the PROPPATCH method can modify multiple properties with multiple
-degrees of success. For each property we can say if the property update
-succeeded, failed, the property did not exists, or the user did not have the
-appropriate permissions to modify that property. To deal with this we have
-defined new exceptions that should be raised if a request can not be processed
-for a specific reason.
+More information
+----------------
 
-When a multi-status response is desirable then *z3c.dav* will encapsulate
-all the errors that occurred during the request into either a
-*webdav.interfaces.WebDAVErrors* or a *webdav.interfaces.WebDAVPropstatErrors*
-exception and throw this error to the publisher. The publisher will then abort
-the current transaction and look up and render a *IHTTPException* view of this
-error.
+* `Data model`_
 
-This view will generally be either *webdav.exceptions.MultiStatusErrorView* or
-*webdav.exceptions.WebDAVPropstatErrorView*. Both these views work by looping
-over all exceptions contained within the error and for each error it looks up
-a *webdav.interfaces.IDAVErrorWidget* which will contain all the information
-necessary to build up the final multi-status XML element which is sent back
-to the client.
+* `Locking`_
 
-Each of these new exception implemented a derived interface of the
-*webdav.interfaces.IDAVException* interface (although this isn't necessary).
-As of writing the following exceptions can occur:
+.. _data model: z3c.dav.datamodel/@@show.html
 
-+ *webdav.interfaces.ConflictError*
-
-+ *webdav.interfaces.ForbiddenError*
-
-+ *webdav.interfaces.UnprocessableError*
-
-+ *webdav.interfaces.PropertyNotFound*
-
-+ *webdav.interfaces.PreconditionFailed*
-
-+ *webdav.interfaces.FailedDependency*
-
-+ *webdav.interfaces.AlreadyLocked*
-
-.. _WebDAV Data Model: z3c.dav.datamodel/@@show.html
+.. _locking: z3c.dav.locking/@@show.html

Modified: z3c.dav/trunk/src/z3c/dav/TODO.txt
===================================================================
--- z3c.dav/trunk/src/z3c/dav/TODO.txt	2007-06-24 17:59:09 UTC (rev 77012)
+++ z3c.dav/trunk/src/z3c/dav/TODO.txt	2007-06-24 18:09:18 UTC (rev 77013)
@@ -2,22 +2,6 @@
 TODO
 ====
 
-Miscellaneous
-=============
-
-The *zope.webdav* package needs to be split up into *zope.webdav* and
-*zope.app.webdav*. This is because there are a lot of stuff in here that
-is Zope3 specific and when migrating this to Zope2 we don't need them. I
-started this process but gave up after a while. Hence we have the
-z3-configure.zcml file. This should be a basis for *zope.app.webdav*.
-
-We need better integration with Zope3. That includes providing better support
-for caching (ETags), and all the "IF*" headers defined in the HTTP and WebDAV
-specs. Also the exceptions and there views are not neccessarly WebDAV specific
-so they could maybe be moved into there own package. So developers of other
-related packages can re-use them. Note that this will probable require some
-rewrite of the current exceptions if this is ever going to happen.
-
 Error Handling
 --------------
 
@@ -42,10 +26,6 @@
 Locking
 -------
 
-- update the timeout header parsing to support multiple arguments.
-
-- shared lock tokens need testing.
-
 - test locking default timeout - this is an application specific problem. So
   the IDAVLockmanager should be dealing with accepting or rejecting the
   requested timeout.
@@ -53,10 +33,6 @@
 - lock on unmapped urls doesn't work yet. Zope3 will need to be changed
   to get this to work.
 
-- more unit tests. Names on lockingutils.DAVActiveLock,
-  lockingutils.DAVLockdiscovery. In locking the UNLOCK, LOCK method needs
-  testing.
-
 Misc
 ----
 
@@ -70,8 +46,6 @@
 - propfind, proppatch - if any property update, view goes horrible wrong then
   a 500 status code needs to be updated.
 
-- egg support
-
 Finally
 =======
 



More information about the Checkins mailing list