Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Initial version of a Model Execution Protocol framework for GEMOC #169

Open
wants to merge 8 commits into
base: master
Choose a base branch
from

Conversation

dvojtise
Copy link
Contributor

@dvojtise dvojtise commented May 12, 2020

This PR contributes some reusable elements to implement a Model Execution Protocol (Debug Adapter Protocol) in GEMOC

This first PR adds:

  • a plugin offering a printstream that allow to redirect the stream if it comes from a given thread (note: this should be used later in the messaging system too)
  • a maven project (org.eclipse.gemoc.executionframework.mep) providing the base classes of a MEP server. It mainly provides abstract classes that specific engines must implement.
    This project is intended to run in a pure maven build. It uses maven dependencies instead of plugin/manifest (ie. it doesn't use tycho) as tycho dependencies and maven dependencies cannot be built in the same reactor, the pom are in specific folders (named pomfirst)

This PR comes with eclipse-gemoc/gemoc-studio#207 and eclipse-gemoc/gemoc-studio-execution-java#7

dvojtise and others added 3 commits May 12, 2020 11:24
Signed-off-by: Didier Vojtisek <[email protected]>
implements breakpoints

Signed-off-by: Pierre Jeanjean <[email protected]>
@ebousse
Copy link
Contributor

ebousse commented May 13, 2020

very nice!

Question: how does an engine have to deal with this novelty? Looking at the diff I see a new launcher and a server, which I suppose will start a chosen execution engine and await orders from an MEP client. But what are these "abstract classes that specific engines must implement"?

@dvojtise
Copy link
Contributor Author

dvojtise commented May 13, 2020

Other PR are on the way with an example for K3 FSM 😉
roughly: every engine offering such protocol need a special implementation. Currently, this is not fully aligned with existing engine (pb with eclipse extension point and how to offer the "debugger addon" in pure java application).

This work is a starting point for further discussions (about deployment, pure java vs eclipse based app, addons via extension point or another dependency injection, some concern about required/important addons (debug, trace that are useful/required on the server side) versus optional addons (most of the time on the client side)) this should probably be discussed on the dev mailing list...

Signed-off-by: Didier Vojtisek <[email protected]>
these pom are used to recreate a more reliable dependency tree of a
subset of gemoc components when used from pure maven project

Signed-off-by: Didier Vojtisek <[email protected]>
@dvojtise
Copy link
Contributor Author

  • a subset of GEMOC project now have a "pomfirst" subfolder that allows to recreate a more reliable dependency tree using maven dependencies (it recreates the dependencies between gemoc projects)

@dvojtise dvojtise changed the title Initial version of Model Execution Protocol framework for GEMOC Initial version of a Model Execution Protocol framework for GEMOC Jun 12, 2020
@dvojtise
Copy link
Contributor Author

dvojtise commented Jul 23, 2020

for archive:
here is an overview of the current state in this PR (actually, I plan many changes in order to move multidimentional trace view in a web page)

image

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants