Category Archives: Build

Removing P2 from RCP

Recently I was struggling with a problem having to do with the headless build of my RCP application.

For some reason the P2 update function was being included in the build application, even though I never specified it as a requirement for the feature or plug-in.

The result was, when the user clicked on the Installation Details button on the applications about box, the tabs for “Installed Software” and “Installation History” were shown … but they were both empty.

After a lot of web searching I was unable to find a way to exclude the P2 feature & plug-in’s from my application.

My suspicion is that one of the other plug-in’s or feature’s that I’m using has p2 as a requirement.

Including a JRE in a headless build

There appears to be a known issue in the headless build facility that results in a built RCP product not having a JRE (even though the product configuration indicates there should be one).

If you do an export from the Eclipse UI, you do get the JRE included.

After a fair amount of digging I figured out how to resolve this problem.

First … you need to have your product based on features.

Next, modify your features build.properties file to include the following line …

root.win32.win32.x86.folder.jre=absolute:${java.home}/

This will cause the generated build script for the feature to copy the JRE that is executing the compile into the jre directory of the product.

Obviously this entry is specific to Windows 32bit compiles.

Export RPC — File In Use

I was trying to use Eclipse 3.6 to manually export a RPC using on a Win7 x64 system but kept getting the following error:

C:\Users\myuserid\workspace\.metadata\.plugins\org.eclipse.pde.core\temp\org.eclipse.pde.container.feature\build.xml:103: Failed to copy C:\eclipse\configuration\org.eclipse.equinox.app\.manager\.tmp31587.instance to c:\test-app\eclipse\win32.win32.x86\eclipse\jre\configuration\org.eclipse.equinox.app\.manager\.tmp31587.instance due to The process cannot access the file because another process has locked a portion of the file

The file .tmp31587.instance was indeed locked … apparently by the eclipse instance that I was currently using.

So it appeared that the export function was trying to copy a file from the live Eclipse instance.

My solution was to move the configuration directory for the live eclipse instance to my personal home directory.

The eclipse product was installed in C:\eclipse … so I copied “C:\eclipse\configuration” to “C:\User\myuserid\eclipse\configuration” and then changed the shortcut I use to launch eclipse to include the parameter “-configuration C:\Users\myuserid\eclipse\configuration”.

Now, when I launch eclipse, and export the RPC … it doesn’t try to copy a file that’s in use, since the configuration is no longer in the eclipse application directory.