| Summary: | Make e4 rcp feature self-sufficient | ||
|---|---|---|---|
| Product: | [Eclipse Project] Platform | Reporter: | Brian de Alwis <bsd> |
| Component: | Releng | Assignee: | John Arthorne <john.arthorne> |
| Status: | RESOLVED FIXED | QA Contact: | |
| Severity: | normal | ||
| Priority: | P3 | CC: | dany.eudes, john.arthorne, Lars.Vogel, Mike_Wilson, pwebster, rajeshupadhyay, ralf, remy.suen, tjwatson |
| Version: | 4.2 | ||
| Target Milestone: | 4.2 M5 | ||
| Hardware: | All | ||
| OS: | All | ||
| Whiteboard: | |||
| Bug Depends on: | 361877 | ||
| Bug Blocks: | |||
| Attachments: | |||
|
Description
Brian de Alwis
Created attachment 206423 [details]
Patch to org.eclipse.sdk-feature
This is a patch against org.eclipse.sdk-feature/features/org.eclipse.rcp/feature.xml in the R4_HEAD branch that moves most of the platform requirements into the org.eclipse.e4.rcp feature.
Created attachment 206424 [details]
Patch to platform.ui's features/org.eclipse.e4.rcp/feature.xml
Move the required bundles and features into this feature. Instead of including the EMF bundles individually, I included the org.eclipse.emf.core and org.eclipse.emf.ecore bundles; although they *may* pull in a few additional bundles, it should shield us from changes in their implementation. I think.
(In reply to comment #2) > Move the required bundles and features into this feature. Instead of including > the EMF bundles individually, I included the org.eclipse.emf.core and > org.eclipse.emf.ecore bundles; although they *may* pull in a few additional > bundles, it should shield us from changes in their implementation. I think. -1 on the EMF change. We just switched from including EMF to requiring it at the request of the EMF team. It is quite important for their consumer community to have this flexibility. See bug 356644 for details. Created attachment 206540 [details] Patch to platform.ui's features/org.eclipse.e4.rcp/feature.xml (revised) (In reply to comment #3) > -1 on the EMF change. We just switched from including EMF to requiring it at > the request of the EMF team. It is quite important for their consumer community > to have this flexibility. See bug 356644 for details. Oops, makes sense — I hadn't realized features now have <requires>. Reverted that change and backed out the inadvertent line-ending changes. The downside to not using includes is that products still have to include the org.eclipse.emf.common and org.eclipse.emf.ecore features. At least PDE doesn't cause them to be included when running from a .product specification in my tests. The final list of required bundles is as follows. The CSS + Batik bundles could arguably be put into a separate org.eclipse.e4.rcp.css feature. com.ibm.icu javax.annotation javax.inject javax.xml org.apache.batik.css org.apache.batik.util org.apache.batik.util.gui org.eclipse.core.commands org.eclipse.core.contenttype org.eclipse.core.databinding org.eclipse.core.databinding.beans org.eclipse.core.databinding.observable org.eclipse.core.databinding.property org.eclipse.core.expressions org.eclipse.core.jobs org.eclipse.core.runtime org.eclipse.e4.core.commands org.eclipse.e4.core.contexts org.eclipse.e4.core.di org.eclipse.e4.core.di.extensions org.eclipse.e4.core.services org.eclipse.e4.ui.bindings org.eclipse.e4.ui.css.core org.eclipse.e4.ui.css.swt org.eclipse.e4.ui.css.swt.theme org.eclipse.e4.ui.di org.eclipse.e4.ui.model.workbench org.eclipse.e4.ui.services org.eclipse.e4.ui.widgets org.eclipse.e4.ui.workbench org.eclipse.e4.ui.workbench.renderers.swt org.eclipse.e4.ui.workbench.renderers.swt.cocoa org.eclipse.e4.ui.workbench.swt org.eclipse.e4.ui.workbench3 org.eclipse.equinox.app org.eclipse.equinox.common org.eclipse.equinox.concurrent org.eclipse.equinox.ds org.eclipse.equinox.event org.eclipse.equinox.launcher org.eclipse.equinox.launcher org.eclipse.equinox.launcher.cocoa.macosx org.eclipse.equinox.launcher.cocoa.macosx org.eclipse.equinox.launcher.cocoa.macosx.x86_64 org.eclipse.equinox.launcher.gtk.aix.ppc org.eclipse.equinox.launcher.gtk.aix.ppc64 org.eclipse.equinox.launcher.gtk.linux.ppc64 org.eclipse.equinox.launcher.gtk.linux.s390 org.eclipse.equinox.launcher.gtk.linux.s390x org.eclipse.equinox.launcher.gtk.linux.x86 org.eclipse.equinox.launcher.gtk.linux.x86_64 org.eclipse.equinox.launcher.gtk.solaris.sparc org.eclipse.equinox.launcher.gtk.solaris.x86 org.eclipse.equinox.launcher.win32.win32.x86 org.eclipse.equinox.launcher.win32.win32.x86_64 org.eclipse.equinox.preferences org.eclipse.equinox.registry org.eclipse.equinox.simpleconfigurator org.eclipse.equinox.util org.eclipse.jface org.eclipse.jface.databinding org.eclipse.osgi org.eclipse.osgi.services org.eclipse.swt org.eclipse.swt.cocoa.macosx org.eclipse.swt.cocoa.macosx org.eclipse.swt.cocoa.macosx.x86_64 org.eclipse.swt.gtk.aix.ppc org.eclipse.swt.gtk.aix.ppc64 org.eclipse.swt.gtk.hpux.ia64_32 org.eclipse.swt.gtk.linux.ppc64 org.eclipse.swt.gtk.linux.s390 org.eclipse.swt.gtk.linux.s390x org.eclipse.swt.gtk.linux.x86 org.eclipse.swt.gtk.linux.x86_64 org.eclipse.swt.gtk.solaris.sparc org.eclipse.swt.gtk.solaris.x86 org.eclipse.swt.win32.win32.x86 org.eclipse.swt.win32.win32.x86_64 org.w3c.css.sac org.w3c.dom.smil org.w3c.dom.svg *** Bug 365289 has been marked as a duplicate of this bug. *** *** Bug 365289 has been marked as a duplicate of this bug. *** I wasn't able to apply the patches as they were (potentially to many changes). Brian, could you please take another crack at them? PW Created attachment 207949 [details]
Revised patch to org.eclipse.sdk-feature/features/org.eclipse.rcp
Revised patch against HEAD
And I've pushed up a revised branch for eclipse.platform.ui.git to http://git.eclipse.org/c/platform/eclipse.platform.ui.git/log/?h=bdealwis/bug/362147-feature-split I made one change: I also included the Equinox console and the Felix gogo shell bundles. Hi Paul, I had applied all these patches and tried to running, but still I am getting same "Handler service cannot be null" problem. Previously I had created the bug with "https://bugs.eclipse.org/bugs/show_bug.cgi?id=365289" details. Can you please help me how I can make progress? My launch configuration is: eclipse.buildId=M20110912-1510 java.version=1.6.0_12 java.vendor=Sun Microsystems Inc. BootLoader constants: OS=win32, ARCH=x86, WS=win32, NL=en_US Framework arguments: -verbose Command-line arguments: -os win32 -ws win32 -arch x86 -verbose -console -consoleLog -console -consoleLog -clean The plugins are working on eclipse platform plugins 3.2 but After updating platform plugins our product launch throwing this exception. Is it possible that there any guide to upgrade from eclipse 3.2 to 4.1.1 buildID M20110912-1510 Thanks. Rajesh (In reply to comment #10) > > > The plugins are working on eclipse platform plugins 3.2 but After updating > platform plugins our product launch throwing this exception. Is it possible > that there any guide to upgrade from eclipse 3.2 to 4.1.1 buildID > M20110912-1510 you must delete your launch config and then re-create it from a feature based product, if you are using these patches. For more help with your specific problem, please post to the E4 forum at http://www.eclipse.org/forums/ PW Can this applied to master? Would be nice to have a working feature for e4 RCP applications? John, could you go through and vet the org.eclipse.e4.rcp feature is the e4 equivalent of the 3.x org.eclipse.rcp feature, and 4.x org.eclipse.rcp simply includes that and adds the extra IWorkbench RCP bundles? PW Brian I have a couple of questions. Since org.eclipse.rcp has been migrated to Git I wasn't able to apply that patch, but I went through the process manually and I want to confirm that we end up with only the following bundles in org.eclipse.rcp: org.eclipse.help org.eclipse.rcp org.eclipse.ui org.eclipse.ui.workbench org.eclipse.update.configurator Also, your patch seems to have added org.eclipse.equinox.concurrent which wasn't in either feature before. Is there a real dependency on that somewhere? Pushed org.eclipse.e4.rcp change to master: http://git.eclipse.org/c/platform/eclipse.platform.ui.git/commit/?id=ad5c5a7a6568b7a6a7bf7aeea68af2373e895d20 Pushed org.eclipse.rcp change to R4_HEAD: http://git.eclipse.org/c/platform/eclipse.platform.releng.git/commit/?h=R4_HEAD&id=bad52f1eadf45f5193496752f59e879150427650 We'll need a test build to verify. Thanks John, that was fast! (In reply to comment #14) > I went through the process manually > and I want to confirm that we end up with only the following bundles in > org.eclipse.rcp: > > org.eclipse.help > org.eclipse.rcp > org.eclipse.ui > org.eclipse.ui.workbench > org.eclipse.update.configurator That's right. > Also, your patch seems to have added org.eclipse.equinox.concurrent which > wasn't in either feature before. Is there a real dependency on that somewhere? It's a real dependency: org.eclipse.equinox.concurrent is depended upon by both org.eclipse.e4.core.services and org.eclipse.e4.ui.workbench. My test cases were the E4 Contacts demo (once configured to only specify the org.eclipse.e4.rcp feature; requires creating a trivial org.eclipse.e4.demo.contacts.feature feature) and the RCP Mail example (once configured to use the org.eclipse.rcp feature). > (In reply to comment #14) > > Also, your patch seems to have added org.eclipse.equinox.concurrent which > > wasn't in either feature before. Is there a real dependency on that somewhere? > > It's a real dependency: org.eclipse.equinox.concurrent is depended upon by both > org.eclipse.e4.core.services and org.eclipse.e4.ui.workbench. I have opened bug 369006 to look at this. This looks like an experiment that never went anywhere and I can't find any platform code using it. I'd like to consider removing it rather than adding a new bundle to our RCP stack that we aren't really using. I changed the e4 Contacts Demo to be feature-based to help identify missing bundles in the future. http://git.eclipse.org/c/platform/eclipse.platform.ui.git/commit/?id=113de722707193caf9943d1802f52c2b62afe68a Looks like this patch was missing the addons bundle from org.eclipse.e4.rcp. None of my tests found this because I guess there is no direct dependency on it. Anyway Paul has fixed it up. All released. |