Jump to: navigation, search

Difference between revisions of "WebDAV EFS Implementation"

m
(Added link to GoC page)
Line 1: Line 1:
This 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.
+
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.
  
 
== The Project ==
 
== The Project ==

Revision as of 03:02, 4 May 2007

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.

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.

Schedule

04/30: Confirm WebDAV client library.

05/31: Initial unit tests, test data set, and test environment complete.

06/22: Initial implementation work complete.

07/06: Initial implementation tested, bugfixes complete. Tag for first evaluation.

07/27: Remainder of functionality implemented.

08/17: All unit tests pass, code tagged for final evaluation.