Eclipse Platform Operation Participation

The purpose of this document is to present details of the solutions for the operation participation scenarios presented in Enabling Logical Model Integration in the Eclipse Platform.

Physical to Logical

In Eclipse, there can typically be many different model spaces. Many of these can be considered layers on top of the Platform resource model, in the sense that the elements that constitute a model are persisted in Platform resources. When operations are launched from model elements or are performed by model tooling, consistency of the model can be maintained. However, given the presence of multiple models and multiple layers, it is always possible that operations are launched from elsewhere (i.e. the tooling of other models) and are not aware of all the models that could be affected. For instance, deleting a file from the Resource Navigator may corrupt a higher level model that was persisted, at least partially, in that file. In this case, all the model tooling can do is make a best effort at cleaning up and notify the user of any inconsistencies that may exist.

It would be beneficial if model tooling could participate in operations that could potentially corrupt a model. This participation could take many forms:

There are several complicating factors:

  1. The set of resource operations that can corrupt a model needs to be identified.
  2. At what level should the participation take place.
  3. There may be multiple models interested in a single resource.
  4. Augmenting an operation may result in further operations that again need to go through the participation process

 

Status

Here is the status of this work as of 3.1 M5

Open Issues

Here are the list of open issues: