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.
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 | + | 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.