My only suggest regarding debugging is to look at the content.xml file 
generated by the build and make sure that it contains the expected IUs.
(ie the existence of the configure.net.beaconcontroller.logging.bridge IU 
and a dependency from the product IU to it).

This will at least let you know if there were problems with the p2.inf.  I 
believe that if there are typos/problems in this file then it ends up 
getting ignored.

One potential problem here may be the use of $version$ in the requirements 
from the configure IU to the bundle:
units.0.hostRequirements.1.name=net.beaconcontroller.logging.bridge
units.0.hostRequirements.1.range=[$version$,$version$]
units.0.hostRequirements.1.greedy=false
units.0.requires.1.name=net.beaconcontroller.logging.bridge
units.0.requires.1.range=[$version$,$version$]
units.0.requires.1.greedy=false

Here, the $version$ will be replaced with the version of the product, this 
may be different from the version of the bundle you are referring to. 
These ranges should match the version on the 
net.beaconcontroller.logging.bridge bundle, you may need to directly write 
something like [3.8.0, 3.8.1)

-Andrew


From:   David Erickson <[email protected]>
To:     P2 developer discussions <[email protected]>
Date:   06/29/2012 02:18 PM
Subject:        [p2-dev] Debugging p2.inf matching
Sent by:        [email protected]



Hi all-
I am building a product (and also hoping to be able to launch the
product within Eclipse) and trying to use p2.inf within a feature to
control the start level for certain bundles.  However the built
product's config.ini is not reflecting these changes and I am
wondering what the best way to find out why this is not working would
be (debug logs, actual debugging, etc).  Any help would be
appreciated.  I'm also embedding my p2.inf, nearly direct copy and
paste from (http://wiki.eclipse.org/Equinox/p2/Setting_Start_Levels)
with the bundle's name changed to the one I am trying to start:

#create a requirement on the fragment we are creating
requires.0.namespace=org.eclipse.equinox.p2.iu
requires.0.name=configure.net.beaconcontroller.logging.bridge
requires.0.range=[$version$,$version$]
requires.0.greedy=true

#create a IU fragment named configure.org.example.bundle
units.0.id=configure.net.beaconcontroller.logging.bridge
units.0.version=$version$
units.0.provides.1.namespace=org.eclipse.equinox.p2.iu
units.0.provides.1.name=configure.net.beaconcontroller.logging.bridge
units.0.provides.1.version=$version$
units.0.instructions.install=org.eclipse.equinox.p2.touchpoint.eclipse.installBundle(bundle:${artifact});
units.0.instructions.uninstall=org.eclipse.equinox.p2.touchpoint.eclipse.uninstallBundle(bundle:${artifact});
units.0.instructions.unconfigure=org.eclipse.equinox.p2.touchpoint.eclipse.setStartLevel(startLevel:-1);
\

org.eclipse.equinox.p2.touchpoint.eclipse.markStarted(started:false);
units.0.instructions.configure=org.eclipse.equinox.p2.touchpoint.eclipse.setStartLevel(startLevel:1);
\

org.eclipse.equinox.p2.touchpoint.eclipse.markStarted(started:true);
units.0.hostRequirements.1.namespace=osgi.bundle
units.0.hostRequirements.1.name=net.beaconcontroller.logging.bridge
units.0.hostRequirements.1.range=[$version$,$version$]
units.0.hostRequirements.1.greedy=false
units.0.hostRequirements.2.namespace=org.eclipse.equinox.p2.eclipse.type
units.0.hostRequirements.2.name=bundle
units.0.hostRequirements.2.range=[0.0.0,2.0.0)
units.0.hostRequirements.2.greedy=false
units.0.requires.1.namespace=osgi.bundle
units.0.requires.1.name=net.beaconcontroller.logging.bridge
units.0.requires.1.range=[$version$,$version$]
units.0.requires.1.greedy=false

Thanks in advance-
David
_______________________________________________
p2-dev mailing list
[email protected]
https://dev.eclipse.org/mailman/listinfo/p2-dev


_______________________________________________
p2-dev mailing list
[email protected]
https://dev.eclipse.org/mailman/listinfo/p2-dev

Reply via email to