Index: openacs-4/packages/file-storage/tcl/file-storage-dav-procs.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/file-storage/tcl/file-storage-dav-procs.tcl,v
diff -u -r1.12.2.3 -r1.12.2.4
--- openacs-4/packages/file-storage/tcl/file-storage-dav-procs.tcl	20 Sep 2022 12:00:15 -0000	1.12.2.3
+++ openacs-4/packages/file-storage/tcl/file-storage-dav-procs.tcl	20 Sep 2022 12:16:39 -0000	1.12.2.4
@@ -13,13 +13,19 @@
 ad_proc -private fs::impl::fs_object::get {} {
     GET method
 } {
-    return [oacs_dav::impl::content_revision::get]
+    acs_sc::invoke \
+        -contract dav \
+        -operation get \
+        -impl content_revision
 }
 
 ad_proc -private fs::impl::fs_object::head {} {
     HEAD method
 } {
-    return [oacs_dav::impl::content_revision::head]
+    acs_sc::invoke \
+        -contract dav \
+        -operation head \
+        -impl content_revision
 }
 
 ad_proc -private fs::impl::fs_object::put {} {
@@ -83,13 +89,19 @@
 ad_proc -private fs::impl::fs_object::propfind {} {
     PROPFIND method
 } {
-    return [oacs_dav::impl::content_revision::propfind]
+    acs_sc::invoke \
+        -contract dav \
+        -operation propfind \
+        -impl content_revision
 }
 
 ad_proc -private fs::impl::fs_object::delete {} {
     DELETE method
 } {
-    return [oacs_dav::impl::content_revision::delete]
+    acs_sc::invoke \
+        -contract dav \
+        -operation delete \
+        -impl content_revision
 }
 
 ad_proc -private fs::impl::fs_object::mkcol {} {
@@ -125,32 +137,47 @@
 ad_proc -private fs::impl::fs_object::proppatch {} {
     PROPPATCH method
 } {
-    return [oacs_dav::impl::content_revision::proppatch]
+    acs_sc::invoke \
+        -contract dav \
+        -operation proppatch \
+        -impl content_revision
 }
 
 ad_proc -private fs::impl::fs_object::copy {} {
     COPY method
 } {
-    return [oacs_dav::impl::content_revision::copy]
+    acs_sc::invoke \
+        -contract dav \
+        -operation copy \
+        -impl content_revision
 }
 
 ad_proc -private fs::impl::fs_object::move {} {
     MOVE method
 } {
-    return [oacs_dav::impl::content_revision::move]
+    acs_sc::invoke \
+        -contract dav \
+        -operation move \
+        -impl content_revision
 }
 
 
 ad_proc -private fs::impl::fs_object::lock {} {
     LOCK method
 } {
-    return [oacs_dav::impl::content_revision::lock]
+    acs_sc::invoke \
+        -contract dav \
+        -operation lock \
+        -impl content_revision
 }
 
 ad_proc -private fs::impl::fs_object::unlock {} {
     UNLOCK method
 } {
-    return [oacs_dav::impl::content_revision::unlock]
+    acs_sc::invoke \
+        -contract dav \
+        -operation unlock \
+        -impl content_revision
 }
 
 namespace eval fs::impl::dav_put_type {}
Index: openacs-4/packages/oacs-dav/tcl/oacs-dav-procs.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/oacs-dav/tcl/oacs-dav-procs.tcl,v
diff -u -r1.24.2.5 -r1.24.2.6
--- openacs-4/packages/oacs-dav/tcl/oacs-dav-procs.tcl	2 Sep 2021 16:41:00 -0000	1.24.2.5
+++ openacs-4/packages/oacs-dav/tcl/oacs-dav-procs.tcl	20 Sep 2022 12:16:39 -0000	1.24.2.6
@@ -477,7 +477,7 @@
 # this is probably going away, is there such thing as "source"
 # of a folder/collection?
 
-ad_proc oacs_dav::impl::content_folder::get {} {
+ad_proc -private oacs_dav::impl::content_folder::get {} {
     GET DAV method for content folders
     can't get a folder
 } {
@@ -499,7 +499,7 @@
     return [list 409]
 }
 
-ad_proc oacs_dav::impl::content_folder::mkcol {} {
+ad_proc -private oacs_dav::impl::content_folder::mkcol {} {
     MKCOL DAV method for generic content folder
     @author Dave Bauer
 } {
@@ -533,7 +533,7 @@
     return $response
 }
 
-ad_proc oacs_dav::impl::content_folder::copy {} {
+ad_proc -private oacs_dav::impl::content_folder::copy {} {
     COPY DAV method for generic content folder
 } {
     set package_id [oacs_dav::conn package_id]
@@ -600,7 +600,7 @@
     return $response
 }
 
-ad_proc oacs_dav::impl::content_folder::move {} {
+ad_proc -private oacs_dav::impl::content_folder::move {} {
     MOVE DAV method for generic content folder
 } {
     set package_id [oacs_dav::conn package_id]
@@ -689,7 +689,7 @@
     return $response
 }
 
-ad_proc oacs_dav::impl::content_folder::delete {} {
+ad_proc -private oacs_dav::impl::content_folder::delete {} {
     DELETE DAV method for generic content folder
 } {
     set package_id [oacs_dav::conn package_id]
@@ -718,7 +718,7 @@
     return $response
 }
 
-ad_proc oacs_dav::impl::content_folder::propfind {} {
+ad_proc -private oacs_dav::impl::content_folder::propfind {} {
     PROPFIND DAV method for generic content folder
 } {
     set user_id [oacs_dav::conn user_id]
@@ -795,7 +795,7 @@
 
 }
 
-ad_proc oacs_dav::impl::content_folder::proppatch {} {
+ad_proc -private oacs_dav::impl::content_folder::proppatch {} {
     PROPPATCH DAV method for generic content folder
     user-properties are stored in the filesystem by tDAV
     this doesn't do anything until tDAV allows storage of
@@ -811,7 +811,11 @@
     return [list 207 $response]
 }
 
-ad_proc oacs_dav::impl::content_folder::lock {} {
+ad_proc -private oacs_dav::impl::content_folder::put {} {
+    # Just a noop ti implement the full service contract
+}
+
+ad_proc -private oacs_dav::impl::content_folder::lock {} {
     LOCK DAV method for generic content folder
 } {
     set uri [oacs_dav::conn uri]
@@ -836,7 +840,7 @@
     return $response
 }
 
-ad_proc oacs_dav::impl::content_folder::unlock {} {
+ad_proc -private oacs_dav::impl::content_folder::unlock {} {
     UNLOCK DAV method for generic content folder
 } {
     set uri [oacs_dav::conn uri]
@@ -856,7 +860,7 @@
 
 namespace eval oacs_dav::impl::content_revision {}
 
-ad_proc oacs_dav::impl::content_revision::get {} {
+ad_proc -private oacs_dav::impl::content_revision::get {} {
     GET DAV method for generic content revision
     @author Dave Bauer
 } {
@@ -870,7 +874,7 @@
 
 }
 
-ad_proc oacs_dav::impl::content_revision::head {} {
+ad_proc -private oacs_dav::impl::content_revision::head {} {
     GET DAV method for generic content revision
     @author Dave Bauer
 } {
@@ -884,7 +888,7 @@
     cr_write_content -item_id $item_id
 }
 
-ad_proc oacs_dav::impl::content_revision::put {} {
+ad_proc -private oacs_dav::impl::content_revision::put {} {
     PUT DAV method for generic content revision
     @author Dave Bauer
 } {
@@ -959,7 +963,7 @@
 
 }
 
-ad_proc oacs_dav::impl::content_revision::propfind {} {
+ad_proc -private oacs_dav::impl::content_revision::propfind {} {
     PROPFIND DAV method for generic content revision
     @author Dave Bauer
 } {
@@ -996,7 +1000,7 @@
     return $response
 }
 
-ad_proc oacs_dav::impl::content_revision::proppatch {} {
+ad_proc -private oacs_dav::impl::content_revision::proppatch {} {
     PROPPATCH DAV method for generic content revision
     We store all user properties in the filesystem using tDAV for now
     So this is just a stub until we can get everything stored in the
@@ -1016,7 +1020,7 @@
     return [list 207 $response]
 }
 
-ad_proc oacs_dav::impl::content_revision::delete {} {
+ad_proc -private oacs_dav::impl::content_revision::delete {} {
     DELETE DAV method for generic content revision
     @author Dave Bauer
 } {
@@ -1038,7 +1042,7 @@
     return $response
 }
 
-ad_proc oacs_dav::impl::content_revision::copy {} {
+ad_proc -private oacs_dav::impl::content_revision::copy {} {
     COPY DAV method for generic content revision
     @author Dave Bauer
 } {
@@ -1098,7 +1102,7 @@
     return $response
 }
 
-ad_proc oacs_dav::impl::content_revision::move {} {
+ad_proc -private oacs_dav::impl::content_revision::move {} {
     MOVE DAV method for generic content revision
     @author Dave Bauer
 } {
@@ -1171,7 +1175,7 @@
 }
 
 
-ad_proc oacs_dav::impl::content_revision::mkcol {} {
+ad_proc -private oacs_dav::impl::content_revision::mkcol {} {
     MKCOL DAV method for generic content revision
     @author Dave Bauer
 } {
@@ -1181,7 +1185,7 @@
     return $response
 }
 
-ad_proc oacs_dav::impl::content_revision::lock {} {
+ad_proc -private oacs_dav::impl::content_revision::lock {} {
     LOCK DAV method for generic content revision
 } {
     set uri [oacs_dav::conn uri]
@@ -1206,7 +1210,7 @@
     return $response
 }
 
-ad_proc oacs_dav::impl::content_revision::unlock {} {
+ad_proc -private oacs_dav::impl::content_revision::unlock {} {
     UNLOCK DAV method for generic content revision
 } {
     set uri [oacs_dav::conn uri]