Skip to content

offer an improved generic modelIdentifier and associated debug services in GEMOC framework #131

Open
@dvojtise

Description

@dvojtise

Several debug services offered by the simulation and model animation framework rely on the concept of ModelIdentifier.

Having different ids for this modelIdentifier allows, for example, to get a presentation in the debug stack that is specific to an engine. This also ensures to get the current breakpoint only for a given engine.

For this reason, the current engines (java, moccl and ale) uses different ids. (actually, ale is reusing id of the java engine to the cost of introducing an unwanted dependency to it ! ) This is making sense if the displayed information in the stack are different for each of these engines. But this is achieved with some coding complexity cost: in the plugin.xml declaring the launchconfiguration for the engine, but also in the debugService class for any Sirius design in the language workbench (ex: https://github.com/eclipse/gemoc-studio/blob/6fc7270df6bd2e633ac29a4c331012d41974c857/official_samples/K3FSM/language_workbench/org.eclipse.gemoc.example.k3fsm.design/src/org/eclipse/gemoc/example/k3fsm/design/services/FsmDebugServices.java#L38) if a sirius .design is used by several engines, the service must be duplicated (and the action in the .design must be duplicated too)

However, now, the trace metamodel is being used for both concurrent and sequential based engines a generic presentation is probably possible.
It would be useful to offer such generic services in the GEMOC framework (to not be confused with debug and model animation framework )
image for engines accepting to share the generic modelIdentifier.
such as generic presentation, generic breakpoint

This would get several benefits for engines sharing the same modelIdentifier:

  • most engine implementations would be simplified. (can share some classes such as DebugModelPresentation and SourceLocator)
  • the toggleBreakpoint sirius action will be general to all engines sharing the same modelIdentifier (instead of been applicable to only a given engine)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions