I have the follow pseudo-feature:
<features name="my-feature" xmlns="
http://karaf.apache.org/xmlns/features/v1.3.0"; xmlns:xsi="
http://www.w3.org/2001/XMLSchema-instance";
 xsi:schemaLocation="http://karaf.apache.org/xmlns/features/v1.3.0
http://karaf.apache.org/xmlns/features/v1.3.0";><feature name="C"
version="${project.version}" start-level="25" install="auto">    <bundle
start-level="25">...BundleC1...</bundle></feature>
<feature name="A" version="${project.version}" start-level="30"
install="auto">    <feature prerequisite="true">C</feature>    <bundle
start-level="30">...BundleA1...</bundle></feature>
<feature name="B" version="${project.version}" start-level="35"
install="auto">    <feature prerequisite="true">C</feature>    <bundle
start-level="35">...BundleB1...</bundle></feature>
C is independantA depends on CB depends on C
In this example the bundle 'BundleB1' imports wrong major version of
'BundleC1' and we get the "missing requirement" error (as expected).
However if i log into the karaf console and run 'feature:list' i will see
that C is Started, A is Uninstalled and B is Uninstalled.
I expect A to be Started since it only has dependencies to C. A will start
fine if i comment out the entire C feature or if i afterwards run
'feature:install A'
If i put each of these three features in seperate feature.xml files i get
the expected outcome of C+A as Started and B as Uninstalled.
What am i doing wrong?
Am i missunderstanding how the prerequisite attribute works? As a sidenote;
if i skip the prerequisite attribute all together, no feature will get
installed whatsover...

Reply via email to