eclipse / gemoc-studio-execution-ale

Gemoc studio execution ale
0 stars 7 forks source link

Incorrect management of ale engine registration for use in odesign queries #44

Closed dvojtise closed 4 years ago

dvojtise commented 4 years ago

Bug description

In GEMOC, we use Ale Sirius service in order to create layers dedicated to animation and debug (using ale: as expression language in fields accepting expression see left part of the following screenshot)

The registration is currently done only in the ALE launcher (https://github.com/eclipse/gemoc-studio-execution-ale/blob/4b086be62c645e241f892c4ee7d1c0b7b06f28b1/plugins/org.eclipse.gemoc.ale.interpreted.engine.ui/src/org/eclipse/gemoc/ale/interpreted/engine/ui/launcher/Launcher.java#L66)

The current way of dealing with engine is not satisfying since it doesn't really deal with multiple running ALE engines at the same time. (a cleanup of previous engines is done before launching a new one, so only one engine is valid)

Additionally, since Sirius 6.3.x (was working differently with sirius 6.1.3 ) when no engine is registered, the ale: query is handled by org.eclipse.sirius.common.tools.internal.interpreter.DefaultInterpreterProvider that uses org.eclipse.sirius.common.tools.internal.interpreter.DefaultConverter . this converter now returns true for these unsupported ale: query

In edition mode, the diagram ends up with wrong results such as the one in the figure below (in this FSM, all states are considered as current state) (cf. https://github.com/gemoc/ale-lang/issues/150 )

Expected behavior

Screeshot

image