Bug 311859 - [sfs] Implement WebDAV Content Provider
Summary: [sfs] Implement WebDAV Content Provider
Status: RESOLVED FIXED
Alias: None
Product: e4
Classification: Eclipse Project
Component: Resources (show other bugs)
Version: 1.0   Edit
Hardware: All All
: P3 normal (vote)
Target Milestone: ---   Edit
Assignee: Eduard Bartsch CLA
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks: 313152
  Show dependency tree
 
Reported: 2010-05-06 07:40 EDT by Eduard Bartsch CLA
Modified: 2010-09-20 11:31 EDT (History)
6 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Eduard Bartsch CLA 2010-05-06 07:40:27 EDT
Implement a WebDAV Content Provider as an example that untilizes and demostrates SFS capbilities like
- mass update/refresh operations for performance optimization and roundtrip reduction
- content caching and lazy content retrieval
- advanced operations like resource locking/unlocking

The WebDAV content provider should support 
- CRUD operations for WebDAV content
- Basic Authentication with Username/Password
- Exclusive Lock/Unlock of WebDAV resources

The WebDAV content provider will be implemented as part of SFS examples with an option to move it into mainstream later.
Comment 1 Martin Oberhuber CLA 2010-05-06 09:33:20 EDT
Interesting.

As far as I know, there's at least two old legacy WebDAV implementations at Eclipse, both of which use some 3rd party libraries that are not really up-to-date any more. Both efforts are currently stalled.

1.) The old Platform/Team implementation, which AFAIK did its own 
    implementation of the Webdav protocol (which was not exactly standards
    compliant, had its issues and was thus discontinued):
http://dev.eclipse.org/mhonarc/lists/cross-project-issues-dev/msg01040.html

2.) The Google Summer of Code project by Reid Holmes in 2007, which 
    produced a usable EFS implementation but then got stalled due to using
    an outdated Apache Lib for the Webdav back-end:
    http://wiki.eclipse.org/WebDAV_EFS_Implementation
    https://bugs.eclipse.org/bugs/show_bug.cgi?id=185921#c12

Are you planning to do something new from scratch, or try and leverage what already exists? What libraries would you be using for the Webdav back-end?
Comment 2 Eduard Bartsch CLA 2010-05-06 09:55:32 EDT
(In reply to comment #1)
> Interesting.
> As far as I know, there's at least two old legacy WebDAV implementations at
> Eclipse, both of which use some 3rd party libraries that are not really
> up-to-date any more. Both efforts are currently stalled.
> 1.) The old Platform/Team implementation, which AFAIK did its own 
>     implementation of the Webdav protocol (which was not exactly standards
>     compliant, had its issues and was thus discontinued):
> http://dev.eclipse.org/mhonarc/lists/cross-project-issues-dev/msg01040.html
> 2.) The Google Summer of Code project by Reid Holmes in 2007, which 
>     produced a usable EFS implementation but then got stalled due to using
>     an outdated Apache Lib for the Webdav back-end:
>     http://wiki.eclipse.org/WebDAV_EFS_Implementation
>     https://bugs.eclipse.org/bugs/show_bug.cgi?id=185921#c12
> Are you planning to do something new from scratch, or try and leverage what
> already exists? What libraries would you be using for the Webdav back-end?

Martin, thanks for bringing the topics in.

My first intention is to validate SFS concepts by implementing adapters (content providers) for various storages and use cases. If SFS and adapters prove to be usable, my hope is to make them productive quality and gain adoption.

For using 3rd party libraries, I have already looked at available alternatives (Jackrabbit, Slide). I am aware about complications with using 3rd party libs. After some attempts to use them, I have opted to use the plain Apache HTTP client 3.x(http://hc.apache.org/httpclient-3.x/) that is already available with e4 installation and provided some utility classes that parse WebDAV content and handle WebDAV-specific HTTP methods. The fraction of WebDAV spec needed for the SFS usecase is rather small so that it seems to be the best option for me.

I have just submitted the first implementation so that you may take a look if you have time.
Comment 3 Eduard Bartsch CLA 2010-09-20 11:31:39 EDT
Changes are released with v20100819-1010.

Further improvements should be done by opening new bugs.