Jump to: navigation, search

Difference between revisions of "Eclipse File Service APIs Compared"

 
(One intermediate revision by the same user not shown)
Line 1: Line 1:
 
This page compares features and use cases for remote file access APIs that are currently found in Eclipse.
 
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.'''
 
'''This document is under construction, not finished yet.'''
  
== RSE Files API ==
+
== Eclipse Remote File APIs ==
 +
 
 +
=== RSE Files API ===
  
 
* [http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.tm.rse/plugins/org.eclipse.rse.services/src/org/eclipse/rse/services/files/IFileService.java?rev=HEAD&cvsroot=DSDP_Project&content-type=text/vnd.viewcvs-markup viewcvs: IFileService.java]
 
* [http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.tm.rse/plugins/org.eclipse.rse.services/src/org/eclipse/rse/services/files/IFileService.java?rev=HEAD&cvsroot=DSDP_Project&content-type=text/vnd.viewcvs-markup viewcvs: IFileService.java]
Line 15: Line 18:
 
* RSE implementation does persistent caching of remote files
 
* RSE implementation does persistent caching of remote files
  
== Eclipse Filesystem (EFS) API ==
+
=== Eclipse Filesystem (EFS) API ===
  
 
* [http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.core.filesystem/src/org/eclipse/core/filesystem/IFileStore.java?rev=HEAD&content-type=text/vnd.viewcvs-markup viewcvs: IFileStore.java]
 
* [http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.core.filesystem/src/org/eclipse/core/filesystem/IFileStore.java?rev=HEAD&content-type=text/vnd.viewcvs-markup viewcvs: IFileStore.java]
Line 31: Line 34:
 
* API for file caching during the current Eclipse session
 
* API for file caching during the current Eclipse session
  
== Team/Target Management API ==
+
=== Team/Target Management API ===
  
 
* Will be dropped in favor of EFS, according to the Platform/Team group.
 
* Will be dropped in favor of EFS, according to the Platform/Team group.
 
* Will then provide FTP and WebDAV implementations for EFS
 
* Will then provide FTP and WebDAV implementations for EFS
  
== ECF fileshare API ==
+
=== ECF fileshare API ===
  
 
* [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]
 
* [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
 
* asynchronous send and receive with events
*
+
 
 +
== RSE and Remote Files APIs ==
 +
 
 +
* Currently, RSE uses the RSE files API on its backend
 +
* Allows to present whatever backend implementation as an EFS on its frontend
 +
* Eventually, RSE could also accept EFS providers on its Files backend. The value-add of RSE over plain EFS would then be
 +
** persistent caching
 +
** access to remote resources outside the workspace
 +
** connection and filter management
 +
*** selection of channels
 +
*** password/keyring management
 +
** association of shell and other channels with the files channel

Latest revision as of 04:45, 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.

Eclipse Remote File APIs

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

RSE and Remote Files APIs

  • Currently, RSE uses the RSE files API on its backend
  • Allows to present whatever backend implementation as an EFS on its frontend
  • Eventually, RSE could also accept EFS providers on its Files backend. The value-add of RSE over plain EFS would then be
    • persistent caching
    • access to remote resources outside the workspace
    • connection and filter management
      • selection of channels
      • password/keyring management
    • association of shell and other channels with the files channel