Hi Ludovic and all,
I have completed refactoring xwiki-webdav code base.
*Benefits:*
1. Code is easy to read & understand (still missing javadoc though).
2. Increased modularity.
3. Very easy to extend (Add new views, types etc).
*Features :*
1. True parent-child navigations is possible (wasn't possible before).
2. Add / Remove child pages into / from pages.
3. Edit Wiki content of pages.
4. Delete child pages / Attachments.
5. (Adding attachments is one step ahead - need 1.6 core)
6. Add / Remove pages into / from spaces.
7. Add / Remove spaces - partially done.
Ludovic, please have a look at the new code and let me know what you think
:)
*Missing :*
1. Copy / Move operations.
2. Locking & Versionning.
*Questions / Concerns :*
1. What should be the content-length of collection resources (currrently 0)
2. Is it meaning full to have GET / HEAD methods on collection resources (as
this would mean downloading a directory hierarchy, which is not possible
AFAIK)
3. LIBRARY_VIEW : I didn't implement this view (yet) because i don't
understand how we can upload a directory hierarchy into a server as
mentioned on the
design<http://dev.xwiki.org/xwiki/bin/view/Design/WebDAVService>ce>.
Can someone please explain what exactly 'uploading a directory' means ?
4. Deleting collection resources seems to present few complications :
i) Some clients (nautilus) uses a recursive delete procedure. Some clients
(dav explorer) does not allow deleting collection resources.
ii) If a page is deleted recursively, all child pages are deleted before the
parent is removed :(
5. attachments / orphans views, should we allow pages to be added / deleted
on this views ?
*What's Next :*
I will start to write test cases for xwiki-webdav using jakarta
slide<http://jakarta.apache.org/slide/>for next week to come (but i
don't have much of an idea what it would be
like).
It would be nice to have some comments on the current code base and possibly
answers to above questions :)
Thanks.
- Asiri