Skip to main content

Notice: this Wiki will be going read only early in 2024 and edits will no longer be possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.

Jump to: navigation, search

Difference between revisions of "WebDAV EFS Implementation"

m (Schedule)
m
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.
 +
 
== The Project ==
 
== The Project ==
  
The goal of this project is to provide an EFS implementation for WebDAV. The primary reason for this is to enable Eclipse to treat projects on remote servers as if they are local.
+
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 ==
 
== Deliverables ==
  
The WebDAV EFS implementation will support the following operations:
+
'''EFS'''
 +
 
 +
The WebDAV EFS implementation *will* support the following operations:
  
 
* '''File''':
 
* '''File''':
Line 17: Line 34:
 
** Delete
 
** Delete
 
** Rename
 
** 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.
 
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.

Revision as of 12:15, 24 April 2007

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.

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.

Back to the top