[Checkins] SVN: z3c.dav/trunk/src/z3c/dav/ COPY, MOVE and MKCOL don't require any XML processing of their bodies so use

Michael Kerrin michael.kerrin at openapp.ie
Sun May 13 14:39:51 EDT 2007


Log message for revision 75724:
  COPY, MOVE and MKCOL don't require any XML processing of their bodies so use
  the default HTTP request / publication for these methods.
  

Changed:
  U   z3c.dav/trunk/src/z3c/dav/configure.zcml
  U   z3c.dav/trunk/src/z3c/dav/copymove.py
  U   z3c.dav/trunk/src/z3c/dav/mkcol.py

-=-
Modified: z3c.dav/trunk/src/z3c/dav/configure.zcml
===================================================================
--- z3c.dav/trunk/src/z3c/dav/configure.zcml	2007-05-13 18:29:16 UTC (rev 75723)
+++ z3c.dav/trunk/src/z3c/dav/configure.zcml	2007-05-13 18:39:50 UTC (rev 75724)
@@ -7,11 +7,15 @@
   <!--
       Support for integrating the protocol request handlers found in
       the webdav package with the Zope3 publisher.
+
+      The MKCOL, COPY, and MOVE methods are plain HTTP methods with no
+      need for XML processing of there request bodies, so use the default
+      HTTPRequestFactory method for them.
     -->
   <publisher
      name="WEBDAV"
      factory=".publisher.WebDAVRequestFactory"
-     methods="PROPFIND PROPPATCH MKCOL LOCK UNLOCK COPY MOVE"
+     methods="PROPFIND PROPPATCH LOCK UNLOCK"
      priority="30"
      />
 
@@ -27,16 +31,19 @@
 
   <adapter
      factory=".mkcol.MKCOL"
+     provides="zope.interface.Interface"
      name="MKCOL"
      />
 
   <adapter
      factory=".copymove.COPY"
+     provides="zope.interface.Interface"
      name="COPY"
      />
 
   <adapter
      factory=".copymove.MOVE"
+     provides="zope.interface.Interface"
      name="MOVE"
      />
 

Modified: z3c.dav/trunk/src/z3c/dav/copymove.py
===================================================================
--- z3c.dav/trunk/src/z3c/dav/copymove.py	2007-05-13 18:29:16 UTC (rev 75723)
+++ z3c.dav/trunk/src/z3c/dav/copymove.py	2007-05-13 18:39:50 UTC (rev 75724)
@@ -23,6 +23,7 @@
 
 from zope import interface
 from zope import component
+import zope.publisher.interfaces.http
 from zope.copypastemove.interfaces import IObjectCopier, IObjectMover
 from zope.traversing.api import traverse, getRoot
 from zope.traversing.interfaces import TraversalError
@@ -32,8 +33,8 @@
 import z3c.dav.interfaces
 
 class Base(object):
-    interface.implements(z3c.dav.interfaces.IWebDAVMethod)
-    component.adapts(interface.Interface, z3c.dav.interfaces.IWebDAVRequest)
+    component.adapts(interface.Interface,
+                     zope.publisher.interfaces.http.IHTTPRequest)
 
     def __init__(self, context, request):
         self.context = context

Modified: z3c.dav/trunk/src/z3c/dav/mkcol.py
===================================================================
--- z3c.dav/trunk/src/z3c/dav/mkcol.py	2007-05-13 18:29:16 UTC (rev 75723)
+++ z3c.dav/trunk/src/z3c/dav/mkcol.py	2007-05-13 18:39:50 UTC (rev 75724)
@@ -15,13 +15,13 @@
 """
 __docformat__ = 'restructuredtext'
 
-from zope import interface
 from zope import component
 from zope.filerepresentation.interfaces import IWriteDirectory
 from zope.filerepresentation.interfaces import IDirectoryFactory
 import zope.event
 from zope.lifecycleevent import ObjectCreatedEvent
 import zope.app.http.interfaces
+import zope.publisher.interfaces.http
 
 import z3c.dav.interfaces
 
@@ -31,6 +31,7 @@
     unmapped urls.
 
       >>> from cStringIO import StringIO
+      >>> import zope.interface
       >>> from zope import component
       >>> from zope.publisher.browser import TestRequest
       >>> from zope.app.http.put import NullResource
@@ -79,7 +80,7 @@
     new collection object) so again this operation is forbidden.
 
       >>> class WriteDirectory(object):
-      ...    interface.implements(IWriteDirectory)
+      ...    zope.interface.implements(IWriteDirectory)
       ...    component.adapts(IFolder)
       ...    def __init__(self, context):
       ...        self.context = context
@@ -104,7 +105,7 @@
     collection.
 
       >>> class DirectoryFactory(object):
-      ...    interface.implements(IDirectoryFactory)
+      ...    zope.interface.implements(IDirectoryFactory)
       ...    component.adapts(IFolder)
       ...    def __init__(self, context):
       ...        pass
@@ -147,9 +148,8 @@
       >>> zope.event.subscribers.remove(eventLog)
 
     """
-    interface.implements(z3c.dav.interfaces.IWebDAVMethod)
     component.adapts(zope.app.http.interfaces.INullResource,
-                     z3c.dav.interfaces.IWebDAVRequest)
+                     zope.publisher.interfaces.http.IHTTPRequest)
 
     def __init__(self, context, request):
         self.context = context



More information about the Checkins mailing list