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

Rule executor: alter the Engine API instead of using (yet another) extension point? #191

Open
ebousse opened this issue Apr 12, 2021 · 0 comments

Comments

@ebousse
Copy link
Contributor

ebousse commented Apr 12, 2021

The recent changes proposed by @d-leroy in the framework included a new extension point for providing rule executors to the studio:
https://github.com/eclipse/gemoc-studio-modeldebugging/blob/d680471162969a81a9d14e0e567c48d8bd307a2a/framework/execution_framework/plugins/org.eclipse.gemoc.executionframework.event.manager/plugin.xml#L7

A rule executor provided in this fashion is then used by the event manager in order to run execution rules on request:
https://github.com/eclipse/gemoc-studio-modeldebugging/blob/6f79e8103687669ddb830d245b2792a9921e8e14/framework/execution_framework/plugins/org.eclipse.gemoc.executionframework.event.manager/src/org/eclipse/gemoc/executionframework/event/manager/IntegrationFacade.java

This architectural choice by @d-leroy has the benefit to avoid modifying the IExecutionEngine interface, which would then require all execution engines consequently.

However, I believe it has two drawbacks:
(1) when executing a model, we already know which metaprog approach we are using through the engine object, therefore IMHO it would be very logical to ask the engine directly for a rule executor instead of fetching it through some other way.
(2) it introduces yet another extension point in the GEMOC Studio.

I'm opening this issue mostly to keep this situation in mind for a possible future breaking evolution of the IExecutionEngine interface, which would be the perfect opportunity to also introduce changes benefiting the event manager (among other changes).

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

No branches or pull requests

1 participant