I am trying to create product definition and not sure if I am creating it correctly. Product definition lives in a feature that has dependencies on the plugins that make up the product. In the dependencies section of product definition I include only the feature that it lives in. If I try to launch product like that it fails with this error:
!SESSION Thu Nov 18 10:20:52 EST 2010 ------------------------------------------
!ENTRY org.eclipse.equinox.launcher 4 0 2010-11-18 10:20:52.041
!MESSAGE Exception launching the Eclipse Platform:
at java.security.AccessController.doPrivileged(Native Method)
at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java: 546)
So I started adding different features as dependencies, o.e.equinox.executable, o.e.platform and even o.e.jdt and o.e.gef. If add these, plus o.e.dtp and o.e.emf that my plugins depend on then product launches fine. But I think that this is wrong - why do I need to add any of these if I have target platform that defines all of these dependencies. I tried to read some articles about product definition but could not find anything other than simple rcp examples. Can someone please help me understand what am I doing wrong here?
Richard Adams Messages: 77 Registered: July 2009 Location: Edinburgh
Your target platform contains all the plugins you need to compile against at development time. The product definition has to include ALL the plugins that a self-contained, deployed application will need at runtime. These plugins will include:
a) your own plugins particular to your app
b) Core eclipse plugins required for all Eclipse RCP apps (org.eclipse.rcp feature)
c) Other eclipse /3rd party plugins
So, if you have a single feature, all those plugins need to be included in that feature definition, and that single feature added to the prduct definition.
Possibly you may find it better to have 2 features - 1 'core' feature containing all basic Eclipse plugins, and 1 'application' feature which would contain your own plugins. Your product would then contain those 2 features. This will make it easier to bundle and deploy updates to your software if you use the update mechanism.