Skip to main content

Notice: This Wiki is now read only and edits are no longer possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.

Jump to: navigation, search

E4/Resources/Semantic File System/Requirements

This page captures a list of requirements that have lead to implementation of SFS.

  1. It shall be possible to selectively map/unmap non-file-based content that is coming from a remote location (that is named remote repository later in this list) into Eclipse workspace. The content shall be mapped as resources (IFile) in order to provide read/write access to remote content. A standardized repository-independent API shall be provided to do mapping/unmapping.
  2. It shall be possible to address remote content via URL, URI or other means including a (pluggable) algorithmic mapping between workspace resource path and remote URL/URI.
  3. It shall be possible to plug in a communication protocol handler that communicates with the source of remote repository. Default implementation shall support REST protocol (GET/PUT) via HTTP.
  4. It shall be possible to mix content from different remote repositories within one Eclipse project or folder hierarchy.
  5. Standardized repository-independent API shall be introduced to provide ability to create/delete resources in remote repository. It shall be possible to provide repository- or content-specific adapters that are capable of handling creation/deletion in repository- or content-specific way.
  6. Standardized repository-independent API shall be introduced to provide ability to checkout/lock/unlock resources in remote repository. It shall be possible to provide repository- or content-specific adapters that are capable of handling checkout/locking in repository- or content-specific way.
  7. In order to provide an acceptable performance when working with remote repositories, it shall be possible to cache resource content and state locally. An API to control caching behavor and to refresh cached content shall be provided.
  8. It shall be possible to virtualize the file system including an Eclipse project itself (or hide it from the end user) in order to support RCP scenarios for non-developers.
  9. It shall be possible to handle composite resources that consist of multiple files/folders where an operation like checkout, map, unmap, create, delete, lock/unlock etc affects all parts (i.e. files) of a composite resource.
  10. It shall be possible to obtain a (MIME) content type for a resource from remote repository. It shall be possible to define mappings between MIME types and Eclipse content types in order to enable content type detection without using file extensions.

Back to the top