Hi Sergiu,
On Thu, Nov 27, 2008 at 11:11 AM, Sergiu Dumitriu <sergiu(a)xwiki.com> wrote:
Asiri Rathnayake wrote:
Hello Devs,
In webdav view of xwiki, a wiki page (document) is represented by a
webdav
collection resource (somewhat like a directory).
This collection resource
is
comprised of wiki.txt, wiki.xml, attachments
& child pages. As you can
see,
there is a mismatch between these two concepts:
without wiki.txt &
wiki.xml
(children), a wiki page (the parent) cannot
exist, but this is the
otherway
around in a filesystem like structure.
So a question arises, in webdav space what does it mean to delete a wiki
page ?
1. We can treat deleting wiki.txt and/or wiki.xml as deleting the whole
page. But deleting the parent when only the children were asked to be
deleted is wrong. And most of the webdav clients go insane.
2. We can prohibit wiki.txt & wiki.xml being deleted (i.e. throw an
exception). But this would prohibit users from deleting pages on some
clients because they use a recursive delete procedure (i.e. delete
children
first and then delete the parent). When deleting
children fails, the
whole
operation fails.
3. We can trick the clients to believe that the delete was a success
(repport AOK) and continue like nothing went wrong. This way a recursive
delete will succeed. But if the client re-request the resource just to
make
sure the delete was a success, the deleted
wiki.xml and wiki.txt will
appear
again. Some clients indeed behave like this and
they fail. This is the
current approach we have taken.
4. We can put wiki.txt & wiki.xml inside the HttpSession object the first
time we initialize a particular resource. This way, the deletes will
succeed
and even if the client re-validates the delete,
those child resources
will
not appear again. This approach seems to prevent
all of the above
mentioned
problems but again, we're using a hack. Also,
this implies that a page
(dav
collection) can exist without wiki.txt &
wiki.xml.
I voting in favour of the 4th option. Do you see any other way to get
around
this mismatch ?
I don't like either option. Are you sure there isn't any other way? Some
WebDAV properties?
--
Sergiu Dumitriu
http://purl.org/net/sergiu/
_______________________________________________
devs mailing list
devs(a)xwiki.org
http://lists.xwiki.org/mailman/listinfo/devs