WebDAV EFS Implementation

This Google Summer of Code 2007 project will provide an EFS implementation for WebDAV to allow Eclipse platform users to use remote WebDAV repositories as mount-points for projects and files. This will benefit any user of Eclipse who wants the flexibility to store their files in this way. Being able to treat remote repositories as if they were local is beneficial to many development groups including web designers, server-application developers, and anyone creating Eclipse plug in update sites. It can also be useful for users who want to share one project between many machines but do not want to use SCM.

Contents

The Project

The project will consist of three primary parts: An EFS implementation, a set of Unit tests and a corresponding test repository, and a WebDAV client.

WebDAV Client Library

This project will not reinvent the wheel by creating a new WebDAV client library. Eclipse's webdav client hasn't been worked on for 2 years and has many shortcomings. The Jakarta Slide Webdav client (http://jakarta.apache.org/slide/webdav-client.html) is an actively maintained project. The advantages of using slide are:

leverage 16 KLOC of tested, maintained code

tested with many different WebDAV servers

https works

alternate authentication schemes such as NTLM

The primary disadvantage is that it's not licensed with the EPL; it's licensed using the apache license. However, the Eclipse Orbit project has been set up to address exactly this type of issue; that is, we could get slide added to Orbit and this should be an ok solution.

We are currently investigating the applicability of Slide to this project.

Deliverables

EFS

The WebDAV EFS implementation *will* support the following operations:

File:

Create

Delete

Upload

Download

Rename

Directory:

Create

Delete

Rename

The WebDAV EFS implementation *may* support the following features:

https

ntlm authentication

If there is a feature you would like to have considered for this implementation please contact us.

Unit Tests

Unit tests, and an accompanying data set, will also be provided to test each of these pieces of functionality. These unit tests are important to ensure that any upstream changes to Slide have not broken the EFS implementation. The tests will also greatly increase the speed with which the EFS implementation can be tested against different DAV servers in the future.

The Code

The source code has been checked into the eclipse-incub project at sf.et (http://sf.net/projects/eclipse-incub). If you'd like to check out the code, it's in cvs.sourceforge.net:/cvsroot/eclipse-incub/org.eclipse.soc.webdav .

Community Notes

The DSDP Target Management Project has a ready-made EFS provider in its Remote System Explorer (RSE). WebDAV could be added below this as an RSE Service probably giving the fastest path to a fairly complete EFS integration including credentials management, remote browse dialog and persistent connection management. At the same time, you could probably learn from how the RSE EFS integration is done. See bug 185921 for more details. We would be very interested in getting an RSE WebDAV Service.