Make henshin.interpreter's dependency on eclipse.debug.core optional#4
Make henshin.interpreter's dependency on eclipse.debug.core optional#4HannesWell wants to merge 2 commits into
Conversation
|
@dstrueber could you please have a look at this and tell what's your preferred approach? |
|
Thanks for this PR! Making the dependency optional sounds good to me, but I wonder if @mtttichy (who lead the development of the debugging functionality) has any concerns about this. |
Great. As far as I can oversee it, the types from |
|
Thanks for your work on Henshin! That is much appreciated. I personally would prefer a clean architectural solution to the problem. So i probably prefer the second solution. The first one could lead to unintended and difficult to debug problems for users, right? Another option could be to simply revert the debugging commits. As i dont have any time to work on Henshin in the next few years and currently no one in my group uses henshin, i let you decide on the way forward. |
Theoretically yes, but in practice I would assume that these cases are rare (but I cannot guarantee that they are impossible).
If strict API stability isn't a concern I would suggest to move the debug functionality into a separate Plugin named |
|
hmm.. one needs to check the feasibility of your split proposal. I am not sure whether this is indeed possible. It could be that the debugging classes (e.g. |
|
My hope for making the import of org.eclipse.debug.core optional was that it would only limit the debugging functionality, not the core interpreter functionality, if the plugin is not loaded. In that case, it would be feasible to just print out/display a warning in case a user who doesn't have the optional plugin loaded wants to use debugging. However, given that the debugging classes are deeply wired into the core interpreter functionality, I'm becoming more skeptical if this is feasible. |
|
I'll take a look at it, if it's feasible and check potential implications. But first I'll work on a verification build (#5) so that we can see immediately if everything compiles. |
This avoids the need for the dictated MatchGenerator class.
f5a3f42 to
7116a81
Compare
This avoids allows to remove the dependency of henshin.interpreter on eclipse.debug.core.
7116a81 to
99b3461
Compare
I have now update this PR to implement this proposal and moved all Interpreter Debug related to a new plugin named
This would also be a solution, which should be similar to this, except that what is now (with this PR) is A third option would be to, instead of introducing a new plugin, to just move all interpreter-debug classes into I personally would consider just moving the debug facility into the interpreter.ui plugin the most simple solution and therefore prefer it. But we are also not using the UI, so I cannot tell how others think about it. |
@dstrueber, @mtttichy could please let me know what's your opinion about this so I can adapt the PR accordingly? |
|
@dstrueber, @mtttichy could you please provide an update on the pending questions? |
The (transitive) dependency closure of the
org.eclipse.debug.coreplugin is quite large and contains heavy-weight plugins likeorg.eclipse.core.resources, which one wants to avoid if possible. At the same time a great 'core' part of the content oforg.eclipse.emf.henshin.interpretercan be used without it perfectly fine, e.g. if one doesn't use the Henshin Interpreter Debug facility.If that's the case and one doesn't use any of the plugins mentioned above otherwise, having them in a runtime without actually using it is often not desired.
Therefore this PR proposes to make the dependency optional in order to allow avoiding
org.eclipse.debug.coreand it's dependencies entirely.An alternative and a bit saver solution would be to move the part of the
henshin.interpreterplugin that doesn't needorg.eclipse.debug.coreinto a separate plugin, e.g.henshin.interpreter.coreon whichhenshin.interpreterdepends and which it reexports. This way those that already requirehenshin.interpreter, shouldn't see a difference.