Search code examples
javaconfigurationeclipse-rcposgiproduct

Custom config.ini in Eclipse RCP product


My eclipse RCP (3.7) application is currently in a good shape, in which product can be exported successfully for multiple platforms and runs just fine. What I need is to change some properties in config.ini file, in particular osgi.instance.area.default and osgi.configuration.area.

In the configuration tab of eclipse product editor, I check Use an existing config.ini file and select the config.ini I created inside the same project hosting the product (and the core feature) definition.

To create the custom config.ini, I just took the one generated in a previous export, and added above properties.

What happens is that after exporting the product, config.ini is still auto-generated in configuration/config.ini, without my edits. What am I missing?

This is how my product definition looks like:

<?xml version="1.0" encoding="UTF-8"?>
<?pde version="3.5"?>

<product name="MyApp" id="it.myapp.product" application="it.myapp.application" version="1.0.0.qualifier" useFeatures="true" includeLaunchers="true">

   <configIni use="default">
      <linux>/it.myapp.app/config.ini</linux>
      <macosx>/it.myapp.app.app/config.ini</macosx>
      <solaris>/it.myapp.app.app/config.ini</solaris>
      <win32>/it.myapp.app/config.ini</win32>
   </configIni>

   <launcherArgs>
      <programArgs>-nl it</programArgs>
      <vmArgsMac>-XstartOnFirstThread -Dorg.eclipse.swt.internal.carbon.smallFonts</vmArgsMac>
   </launcherArgs>

   <windowImages />

   <splash
      location="it.myapp"
      startupProgressRect="6,378,485,13"
      startupMessageRect="7,397,445,22"
      startupForegroundColor="000000" />
   <launcher name="myapp">[...]</launcher>

   <vm>
   </vm>

   <plugins>
      <plugin id="com.ibm.icu"/>
      [...]
      <plugin id="org.sat4j.pb"/>
   </plugins>

   <features>
      <feature id="it.myapp.feature"/>
   </features>

   <configurations>
      <plugin id="it.myapp" autoStart="false" startLevel="5" />
      <plugin id="org.eclipse.core.runtime" autoStart="true" startLevel="4" />
      <plugin id="org.eclipse.equinox.common" autoStart="true" startLevel="2" />
      <plugin id="org.eclipse.equinox.ds" autoStart="true" startLevel="2" />
      <plugin id="org.eclipse.equinox.simpleconfigurator" autoStart="true" startLevel="1" />
   </configurations>

</product>

Solution

  • You are not missing anything - this just does not work. I experienced the same. You can try upgrading to a more recent version of Eclipse which hopefully has this function working.

    See: https://bugs.eclipse.org/bugs/show_bug.cgi?id=284732

    I suggest to work around this by using root-properties:

    Eclipse RCP root-properties