[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Newsgroup Home]
[news.eclipse.technology.equinox] Re: p2 detecting newly installed bundles

It seems the problem I'm having is that the plugin is not actually getting installed. I can see that from the p2 perspective it's installed. The feature I'm installing appears in the UI as installed and appears in the P2 profile as installed, along with it's plugin. However, in the plugins/features directory of my product, the feature and plugin are not present. Nor is the plugin in the bundles.info.

Any idea where to start debugging this?

Below is the excerpt from the profile that refers to the plugin:

<unit id='com.oaklandsw.transform.feature.data.edifact.07b.feature.jar' version='2.7.1'>
<update id='com.oaklandsw.transform.feature.data.edifact.07b.feature.jar' range='[0.0.0,2.7.1)' severity='0'/>
<properties size='3'>
<property name='org.eclipse.equinox.p2.name' value='EDIFACT 07B'/>
<property name='org.eclipse.equinox.p2.description' value='[Enter Feature Description here.]'/>
<property name='org.eclipse.equinox.p2.description.url' value='http://www.example.com/description'/>
</properties>
<provides size='3'>
<provided namespace='org.eclipse.equinox.p2.iu' name='com.oaklandsw.transform.feature.data.edifact.07b.feature.jar' version='2.7.1'/>
<provided namespace='org.eclipse.equinox.p2.eclipse.type' name='feature' version='1.0.0'/>
<provided namespace='org.eclipse.update.feature' name='com.oaklandsw.transform.feature.data.edifact.07b' version='2.7.1'/>
</provides>
<filter>
(org.eclipse.update.install.features=true)
</filter>
<artifacts size='1'>
<artifact classifier='org.eclipse.update.feature' id='com.oaklandsw.transform.feature.data.edifact.07b' version='2.7.1'/>
</artifacts>
<touchpoint id='org.eclipse.equinox.p2.osgi' version='1.0.0'/>
<touchpointData size='1'>
<instructions size='1'>
<instruction key='zipped'>
true
</instruction>
</instructions>
</touchpointData>
<licenses size='1'>
<license url='http://www.example.com/license'>
[Enter License Description here.]
</license>
</licenses>
<copyright url='http://www.example.com/copyright'>
[Enter Copyright Description here.]
</copyright>
</unit>



And here is the part that has (I'm guessing) where the plugins should be located:


<properties size='6'>
<property name='org.eclipse.equinox.p2.cache' value='/d/build/transform/build/kits/transform12-kits/linux.gtk.x86'/>
<property name='org.eclipse.equinox.p2.flavor' value='tooling'/>
<property name='org.eclipse.equinox.p2.roaming' value='true'/>
<property name='org.eclipse.update.install.features' value='true'/>
<property name='org.eclipse.equinox.p2.environments' value='osgi.ws=gtk,osgi.os=linux,osgi.arch=x86'/>
<property name='org.eclipse.equinox.p2.installFolder' value='/d/build/transform/build/kits/transform12-kits/linux.gtk.x86'/>
</properties>




I have installed my application as part of my build with the p2 director like this:

<exec executable="${baseLocation}/eclipse" failonerror="true" timeout="900000">
<arg line="-application org.eclipse.equinox.p2.director.app.application" />
<arg line="-nosplash" />
<arg line="--launcher.suppressErrors" />
<arg line="-consoleLog" />
<arg line="-flavor ${p2.flavor}" />
<arg line="-installIU com.oaklandsw.transform.feature.product${productNumber}.feature.group" />
<arg line="-version ${oaklandswVersion}" />
<arg line="-p2.os ${confOs}" />
<arg line="-p2.ws ${confGui}" />
<arg line="-p2.arch ${confArch}" />
<arg line="-roaming" />
<arg line="-profile OSDTProfile" />
<arg line="-profileProperties org.eclipse.update.install.features=true" />
<arg line="-metadataRepository ${p2.metadata.repo}" />
<arg line="-artifactRepository ${p2.artifact.repo}" />
<arg line="-destination ${builder}/${buildLabel}/${collectingFolder}-kits/${confOutDir}" />
<arg line="-bundlepool ${builder}/${buildLabel}/${collectingFolder}-kits/${confOutDir}" />
<arg line="-vmargs" />
<arg line="-Declipse.p2.data.area=${builder}/${buildLabel}/${collectingFolder}-kits/${confOutDir}/p2" />
</exec>






Francis Upton (News) wrote:
My RCP application is using the p2 software update manager, and that appears to be working fine. I want to detect when a bundle has been installed so that I make take some actions.

I have tried to figure out how to make BundleWatcher work and been so far unsuccessful, I try registering it with the HookRegistry only to be informed that the HookRegistry is read only. And even if I get this working, I'm not sure it will show the install event.

Is there some way I can see a bundle as it's installed (dynamically)?

Thanks,

Francis



--
*new* Common Navigator Framework section in:
   3.4RC4 Platform Plugin Developer Guide (Programmer's Guide)
http://help.eclipse.org/ganymede/topic/org.eclipse.platform.doc.isv/guide/cnf.htm
http://dev.eclipse.org/blogs/francis
http://wiki.eclipse.org/Common_Navigator_Framework
http://wiki.eclipse.org/Common_Navigator_Framework_Use_Cases


You have brains in your head. You have feet in your shoes. - Dr Seuss, Oh the Places You'll Go