Community
Participate
Working Groups
The overall objective of this task concerns the definition of a framework for execution and debugging of models in the context of Papyrus. This includes aspects related to the control of a model execution (e.g., suspending/resuming execution after a breakpoint has been encountered) as well as to observing the state of the executed model at runtime (e.g., emphasizing a graphical element corresponding to a model element on which execution has suspended, retrieving and displaying any state information about the runtime manifestation of this model element). This framework is called Moka. The basic idea underlying this framework is that Eclipse already defines a powerful Debug API, which must be used as a basis for satisfying execution and debugging needs in the context of Papyrus. The Eclipse Debug API is connected to a Debug perspective, which provides a template for controlling executions (e.g., suspend, resume and terminate buttons from the tool bar) and observing the state of an execution (e.g., with the debug tree view, showing processes, threads and corresponding stack frames). Moka shall implement a generic contribution to the Eclipse Debug API, where elements to be executed are models instead of programs. It shall provide an extension point for registering particular execution engines, with some integration facilities for the case where these execution engines are themselves implemented as Eclipse plug-ins. Moka shall ease connection of an execution engine with the Eclipse Debug UI, by including the implementation of a generic communication protocol between the Eclipse UI and the actual execution engine registered through the extension point. Moka shall also include some additional facilities, including defining/launching launch configurations, defining and visualizing breakpoints, and emphasizing a graphical element in a diagram (opening the diagram if needed) according to some suspend events emitted by the execution engine.
r 10869 - First version commited in sandbox/Moka
r 10914 - Adjustements for management of multi-threaded executions
r 10936 - Further adjustements for management of multi-threaded executions
r 11479 - Simple (but efficient!) optimization in AnimationUtils.getDiagrams(semanticElement)