Jump to: navigation, search

Difference between revisions of "Eclipse File Service APIs Compared"

 
Line 13: Line 13:
 
* No callbacks or other "watch" facilities
 
* No callbacks or other "watch" facilities
 
* Supports remote file encodings different from local
 
* Supports remote file encodings different from local
 +
* RSE implementation does persistent caching of remote files
  
 
== Eclipse Filesystem (EFS) API ==
 
== Eclipse Filesystem (EFS) API ==
Line 28: Line 29:
 
* URI has been criticized to be heavy-weight (but is only needed to specify the filesystem root, not necessarily the siblings)
 
* URI has been criticized to be heavy-weight (but is only needed to specify the filesystem root, not necessarily the siblings)
 
* Registered via extension point - problematic if multiple different implementations for the same access scheme exist, e.g. two implementations for "ftp:" access scheme in URI
 
* Registered via extension point - problematic if multiple different implementations for the same access scheme exist, e.g. two implementations for "ftp:" access scheme in URI
 +
* API for file caching during the current Eclipse session
  
 
== Team/Target Management API ==
 
== Team/Target Management API ==
Line 36: Line 38:
 
== ECF fileshare API ==
 
== ECF fileshare API ==
  
* asynchronous
+
* [http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.ecf/plugins/org.eclipse.ecf.fileshare/src/org/eclipse/ecf/fileshare/IFileShareContainer.java?rev=HEAD&cvsroot=Technology_Project&content-type=text/vnd.viewcvs-markup viewcvs: IFileShare]
 +
* asynchronous send and receive with events
 +
*

Revision as of 05:11, 29 May 2006

This page compares features and use cases for remote file access APIs that are currently found in Eclipse. This document is under construction, not finished yet.

RSE Files API

  • viewcvs: IFileService.java
  • viewcvs: IHostFile.java
  • Supports remote move, remote copy operations
  • Categorization of remote files, including support for symbolic links (derived classes of IHostFile)
  • Use Strings as canonical pathes (with '/' file separator)
  • Very lightweight and simple to implement since only Strings and two interfaces
  • Synchronous operations for upload, download (with IProgressMonitor, suitable for jobs)
  • No callbacks or other "watch" facilities
  • Supports remote file encodings different from local
  • RSE implementation does persistent caching of remote files

Eclipse Filesystem (EFS) API

  • viewcvs: IFileStore.java
  • Overview on bug 106176 plan: provide more flexible workspaces
  • Existing sample implementations for ZIP and FTP file systems
  • Fully integrated with Platform Resources, allows transparent access to remote files
  • Fully abstract notion of remote pathes through URI for the root, plus parent/child relationships for the siblings
  • Supports remote move, remote copy operations
  • Synchronous operations for upload, download (with IProgressMonitor, suitable for jobs)
  • Originally written for performance optimizations on the local file system (through native calls), plus fully abstract access to remote file stores like databases
  • No notion of symbolic links or other advanced attributes
  • No callbacks or other "watch" facilities
  • URI has been criticized to be heavy-weight (but is only needed to specify the filesystem root, not necessarily the siblings)
  • Registered via extension point - problematic if multiple different implementations for the same access scheme exist, e.g. two implementations for "ftp:" access scheme in URI
  • API for file caching during the current Eclipse session

Team/Target Management API

  • Will be dropped in favor of EFS, according to the Platform/Team group.
  • Will then provide FTP and WebDAV implementations for EFS

ECF fileshare API