Skip to main content

Notice: this Wiki will be going read only early in 2024 and edits will no longer be possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.

Jump to: navigation, search

Difference between revisions of "Equinox/p2/Reusing Platform Metadata"

< Equinox‎ | p2
(Using org.eclipse.platform.ide As-Is)
 
(4 intermediate revisions by one other user not shown)
Line 19: Line 19:
 
| org.eclipse.p2.user.ui.feature.group
 
| org.eclipse.p2.user.ui.feature.group
 
| The features and bundles that make up p2
 
| The features and bundles that make up p2
 +
|-
 +
| org.eclipse.rcp.configuration.feature.group
 +
| Eclipse branded launchers with appropriate requirements on the launcher fragments as well as CUs for setting <tt>-startup</tt> and <tt>--launcher.library</tt>.
 
|-
 
|-
 
| toolingorg.eclipse.configuration
 
| toolingorg.eclipse.configuration
Line 50: Line 53:
 
<br>
 
<br>
 
==Using org.eclipse.platform.ide As-Is ==
 
==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 <tt>-product</tt> which would override the entry in the config.ini file.
+
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 <tt>-product</tt> 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 [[Equinox/p2/Engine/Touchpoint Instructions#Authoring touchpoint data|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.
 
This would be done using a [[Equinox/p2/Engine/Touchpoint Instructions#Authoring touchpoint data|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.
 
<pre>
 
<pre>
 +
builder/build.properties : includeLaunchers=false
 
epp.product
 
epp.product
 
   Program Arguments: -product epp.package.cpp
 
   Program Arguments: -product epp.package.cpp
Line 70: Line 74:
 
==Proposed Modifications==
 
==Proposed Modifications==
  
 
+
We propose that the IU <tt>toolingorg.eclipse.platform.ide.configuration</tt> be made more generally reusable.  Currently, it contains the following product specific settings:
[[Category:Equinox p2|Reusing Platform Metadata]]
+
We propose the the IU <tt>toolingorg.eclipse.platform.ide.configuration</tt> be made more generally reusable.  Currently, it contains the following product specific settings:
+
 
*config.ini settings: osgi.splashPath, eclipse.application,eclipse.product
 
*config.ini settings: osgi.splashPath, eclipse.application,eclipse.product
 
* All program and vm arguments are arguably product specific, but <tt>-showsplash org.eclipse.platform</tt> is especially so.
 
* All program and vm arguments are arguably product specific, but <tt>-showsplash org.eclipse.platform</tt> is especially so.
 
We propose that these product specific setting be moved into the <tt>org.eclipse.platform.ide</tt> IU, leaving the configuration IU as more generally reusable.
 
We propose that these product specific setting be moved into the <tt>org.eclipse.platform.ide</tt> IU, leaving the configuration IU as more generally reusable.
 +
 +
==Links==
 +
*[[Equinox/p2/Engine/Touchpoint_Instructions| Touchpoint Instructions]]
 +
*[https://bugs.eclipse.org/bugs/show_bug.cgi?id=276125 Bug 276125 - Structure configuration metadata for reuse]
 +
 +
 +
 +
[[Category:Equinox p2|Reusing Platform Metadata]]

Latest revision as of 18:51, 14 May 2009

Under update for 3.5

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
org.eclipse.platform.feature.group The features and bundles that make up the platform
org.eclipse.p2.user.ui.feature.group The features and bundles that make up p2
org.eclipse.rcp.configuration.feature.group Eclipse branded launchers with appropriate requirements on the launcher fragments as well as CUs for setting -startup and --launcher.library.
toolingorg.eclipse.configuration Set osgi.instance.area.default=@user.home/workspace (os != macosx)
toolingorg.eclipse.configuration.macosx Set osgi.instance.area.default=@user.home/Documents/workspace (os == macosx)
toolingorg.eclipse.platform.ide.configuration
toolingorg.eclipse.platform.ide.config.[ws.os.arch] Properties for config.ini

osgi.bundles.defaultStartLevel
osgi.splashPath
eclipse.application
eclipse.product
eclipse.buildId

toolingorg.eclipse.platform.ide.ini.[ws.os.arch] Entries for the launcher .ini file

program: -showplash org.eclipse.platform --launcher.XXMaxPermSize 256m
vm: -Xmx40m -Xmx256m

tooling[ws.os.arch][bundle-id] Start level information for individual bundles


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.

Links

Back to the top