-
Notifications
You must be signed in to change notification settings - Fork 228
Impl #2402 - Migrate model processors from extension point to OSGi DS #2403
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
Conversation
|
This pull request changes some projects for the first time in this development cycle. An additional commit containing all the necessary changes was pushed to the top of this PR's branch. To obtain these changes (for example if you want to push more changes) either fetch from your fork or apply the git patch. Git patchFurther information are available in Common Build Issues - Missing version increments. |
Test Results 1 821 files ±0 1 821 suites ±0 2h 5m 7s ⏱️ + 6m 38s For more details on these failures, see this check. Results for commit e4152aa. ± Comparison against base commit 908db0f. ♻️ This comment has been updated with latest results. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks for this one the change itself looks sound, but if I start an SDK from my workspace with it the start-up fails:
org.eclipse.e4.core.di.InjectionException: Unable to process "BindingService.manager": no actual value was found for the argument "BindingManager".
at org.eclipse.e4.core.internal.di.InjectorImpl.reportUnresolvedArgument(InjectorImpl.java:462)
at org.eclipse.e4.core.internal.di.InjectorImpl.resolveRequestorArgs(InjectorImpl.java:453)
at org.eclipse.e4.core.internal.di.InjectorImpl.internalInject(InjectorImpl.java:128)
at org.eclipse.e4.core.internal.di.InjectorImpl.internalMake(InjectorImpl.java:386)
at org.eclipse.e4.core.internal.di.InjectorImpl.make(InjectorImpl.java:312)
at org.eclipse.e4.core.contexts.ContextInjectionFactory.make(ContextInjectionFactory.java:203)
at org.eclipse.ui.internal.Workbench$31.runWithException(Workbench.java:2337)
at org.eclipse.ui.internal.StartupThreading$StartupRunnable.run(StartupThreading.java:35)
at org.eclipse.swt.widgets.Synchronizer.syncExec(Synchronizer.java:183)
at org.eclipse.ui.internal.UISynchronizer.syncExec(UISynchronizer.java:133)
at org.eclipse.swt.widgets.Display.syncExec(Display.java:4883)
at org.eclipse.ui.internal.StartupThreading.runWithoutExceptions(StartupThreading.java:93)
at org.eclipse.ui.internal.Workbench.initializeDefaultServices(Workbench.java:2331)
at org.eclipse.ui.internal.Workbench.init(Workbench.java:1714)
at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2825)
at org.eclipse.ui.internal.Workbench.lambda$3(Workbench.java:632)
at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:339)
at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:546)
at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:173)
at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:175)
at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:208)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:143)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:109)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:439)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:271)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:568)
at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:662)
at org.eclipse.equinox.launcher.Main.basicRun(Main.java:598)
at org.eclipse.equinox.launcher.Main.run(Main.java:1441)
at org.eclipse.equinox.launcher.Main.main(Main.java:1414)
My first guess is that ModelAssembler somehow registers contributions through OSGi services differently. I already tried to process services before extensions, but that didn't help. I can further look into this, but probably not before next week-end.
|
And regarding your remark in #2396 (comment)
That's right, but using it explicitly was a suggestion from @laeubi to ensure that services don't get implemented 'accidentally' if for example later another interface is implemented that's not intended as service. And I think that's reasonable. |
Its actually a bit different and why I think actually specify it always is good on the long term:
Other case:
So actually if one relies on the default, it means one must check each time something is refactored there, because of this I simply always add it explicitly so its always clear and less prone to accidental changes. e.g. PDE also gives an error if the component does not implement the declared service (anymore). |
|
For the service attribute discussion, well from the maintenance point of view I understand this. Fine for me. And actually necessary to fix the issue. About the issue, well we now have a startup order issue. The I see the following two errors in the logs: I have now added a Condition service to describe the activation order dependency. With the extension points this was done by registering the extensions in the correct oder in the plugin.xml. |
...les/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/BindingToModelProcessor.java
Outdated
Show resolved
Hide resolved
.../org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/CommandAndContextCondition.java
Outdated
Show resolved
Hide resolved
4fcd57c to
0d89707
Compare
HannesWell
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thank you for the update and sorry for the late reply.
The change looks good and worked well in my testing.
But please squash your three commits into one with a commit message covering the resulting change, there is no need to effectively capture the review discussion in the git-history (you remove the version bump and let the bot add it again).
Then this is ready from my side.
86ea152 to
741f8bc
Compare
Signed-off-by: Dirk Fauth <dirk.fauth@googlemail.com>
11b81fd to
e4152aa
Compare
HannesWell
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thank you for the updates and this change in general.
The code looks good, now only the build has to succeed.
|
Test failure it's unrelated, submitting. Thanks again! |
No description provided.