eclipse / gemoc-studio-modeldebugging

gemoc-studio-modeldebugging
Eclipse Public License 1.0
6 stars 15 forks source link

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

Open ebousse opened 3 years ago

ebousse commented 3 years ago

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).