Notice: This Wiki is now read only and edits are no longer possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.
Equinox/p2/Reusing Platform Metadata
This page outlines the current shape of the metadata for the "org.eclipse.platform.ide" product. This product is a subset of the Eclipse SDK. The SDK adds JDT, PDE, CVS and Help, but everything that requires special configuration exists in the base platform. This makes the platform ideal for general reuse.
The current RC1 metadata for org.eclipse.platform.ide looks something like this:
IU Name | Provided Contents/Actions | |||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
org.eclipse.platform.ide | addRepository : add default repositories mdkir : create the dropins folder | |||||||||||||||||||
|
Using org.eclipse.platform.ide As-Is
In general, the org.eclipse.platform.ide is not attractive for reuse in other products as it includes product specific branding and settings. However, in the special case of products (like EPP) that look the same as eclipse but change the default eclipse.product, then we could reuse org.eclipse.platform.ide directly. The epp.product file would specify a program argument -product which would override the entry in the config.ini file. As well, because org.eclipse.platform.ide includes launcher, we should set the product build to not include launchers.
This would be done using a p2.inf file which should be placed beside the product file. The p2.inf file should also tell pde.build not to generate defaults CUs for start levels, because we will already get start levels from the platform.ide.
builder/build.properties : includeLaunchers=false epp.product Program Arguments: -product epp.package.cpp Include features : CDT, etc... p2.inf #tell pde.build not to generate start levels org.eclipse.pde.build.append.startlevels=false #add requirement on org.eclipse.platform.ide requires.1.namespace=org.eclipse.equinox.p2.iu requires.1.name=org.eclipse.platform.ide requires.1.range=[3.5.0.I20090513-2000,3.5.0.I20090513-2000] requires.1.greedy=true
Proposed Modifications
We propose that the IU toolingorg.eclipse.platform.ide.configuration be made more generally reusable. Currently, it contains the following product specific settings:
- config.ini settings: osgi.splashPath, eclipse.application,eclipse.product
- All program and vm arguments are arguably product specific, but -showsplash org.eclipse.platform is especially so.
We propose that these product specific setting be moved into the org.eclipse.platform.ide IU, leaving the configuration IU as more generally reusable.