saros
saros copied to clipboard
Rework resource implementation to make it project/reference point based
The current server implementation works mainly based on workspaces. All resources belong to a workspace. The direct child directories of the workspace are seen as the shared project/reference point.
The resulting logic matches the behavior of the current resource concept (with the assumption that there are not nested projects) but not the design. The basic resource concept of Saros is that each resource belongs to a project/reference point. The workspace metaphor was taken from the Eclipse implementation does not apply to all IDEs (e.g. if they support nested projects).
This was made more apparent with the recent resource interface cleanup which resulted in the Server working more directly on the resource implementations instead of the interfaces as it relies on methods removed as part of the cleanup. See #953 and #976.
The server resource implementation should be reworked to adhere to the project/reference point concept. The concept of a workspace that contains all projects/reference points (but not necessarily as direct children) can still be used, but should be an internal implementation detail instead of the central concept.