Tycho, Maven and p2.inf

June 4, 2012 | 2 min Read

Today I spent some time on the RAP Tools build which is based on Tycho. The problem that I tried to solve had to do with our recent ID renaming of the RAP Tools feature to a more appropriate name,org.eclipse.rap.tooling is now called org.eclipse.rap.tools.

Usually p2 is able to update seamlessly from one installable unit to another installable unit with a higher version number, but in this case we have to change the ID of the installable unit during the upgrade. In order to enable p2 to upgrade to a different installable unit ID it is necessary to tweak the metadata a bit. Easy? Yes, this can be achieved by adding some instructions to a p2.inf file (more possible instructions can be found in the Eclipse Wikiand in the Eclipse Help).

update.id = org.eclipse.rap.tooling.feature.group update.range = 0.0.0 update.severity = 0 update.description = Update RAP Tools feature with old ID.

Unfortunately it didn´t work. After a while I tried to export the feature manually from my IDE, et voilà, this time it worked. Then I thought about the differences between my local PDE export and the Tycho build, searched through Bugzilla and found a small, but very important hint: In order to tell Tycho that it has to use this p2.inf file, it needs to be added to the build.properties includes:

bin.includes = feature.xml,\ ..., \ p2.inf

Small but important difference to the PDE build.