Bug 122936

Summary: IResource isLocal and setLocal should be deprecated
Product: [Eclipse Project] Platform Reporter: John Arthorne <john.arthorne>
Component: ResourcesAssignee: John Arthorne <john.arthorne>
Status: RESOLVED FIXED QA Contact:
Severity: normal    
Priority: P3    
Version: 3.2   
Target Milestone: 3.2 M5   
Hardware: PC   
OS: Windows 2000   
Whiteboard:

Description John Arthorne CLA 2006-01-06 12:15:49 EST
Build: I20050103

There is a skeleton of support in the IResource API for the notion of "non-local" resources.  A non-local resource is one with no contents in the local file system. I.e., it exists in the resource tree but not on disk.  In practice this is just a flag on the resource info, and setLocal just flips that flag.  There is no mechanism for fetching contents of non-local resources into the local file system.

To give some history, in the initial technology preview of Eclipse (prior to open sourcing), IResource was much more tightly coupled to a corresponding entity in a code repository.  The idea was that the resource tree structure could be fetched from the repository without contents for quick browsing, and the individual file contents could be lazily fetched from the repository as needed.  This approach was abanded prior to the 1.0 release, but some vestiges remain in the API.

In Eclipse 3.2 it is possible to create resources that are stored diretly in other file systems.  This will likely confuse API clients who notice the old "local" and "non-local" terminology.  All of this old API should be deprecated to make it clear that these concepts are not part of the new flexible workspace API.  A partial list:

IResource.setLocal
IResource.isLocal
IFolder.create(boolean, boolean, IProgressMonitor)

Existing behaviour must continue to be supported for API compatibility, but should be deprecated to discourage future use.
Comment 1 John Arthorne CLA 2006-01-09 16:59:06 EST
Done.