Bug 487946

Summary: Add support for the IRootEObjectProvider necessary for the AQL service allInstances()
Product: [Modeling] Sirius Reporter: Stephane Begaudeau <stephane.begaudeau>
Component: CoreAssignee: Project inbox <sirius.core-inbox>
Status: NEW --- QA Contact:
Severity: enhancement    
Priority: P3 CC: steve.monnier
Version: 3.1.0Keywords: triaged
Target Milestone: ---   
Hardware: PC   
OS: Mac OS X   
Whiteboard:

Description Stephane Begaudeau CLA 2016-02-17 10:28:15 EST
In order to use the AQL service allInstances(), Sirius should give AQL an IRootEObjectProvider during the creation of the interpreter. In the bundle o.e.s.common.acceleo.aql, it should create the AQLSiriusInterpreter using:

public AQLSiriusInterpreter() {
  super();
  this.queryEnvironment = Query.newEnvironmentWithDefaultServices(xRef, rootsProvider);
  ...
}

instead of 

public AQLSiriusInterpreter() {
  super();
  this.queryEnvironment = Query.newEnvironmentWithDefaultServices(xRef);
  ...
}

This IRootEObjectProvider should let AQL know where to look for references. In the use case of Sirius, a first version should maybe look in all the semantic resources of the session (and the package registry? just Ecore.ecore?)
Comment 1 Steve Monnier CLA 2016-02-18 03:40:39 EST
Thanks for your detailed bug report.
We have reproduced this issue and we consider it as valid.
Nevertheless, we have currently not planned to work on it in the following releases.